Модуль:Videogallery old 🔗
-- Module for replacing of combination of EmbedVideo-ext + my Ev-template with more faster lua-implementation -- Test page: http://emwikitest.sphynkx.org.ua/Sandbox/Videogallery -- v.1: Supported services are YouTube, RuTube, EMTube, OK -- v.2: Added optional collapsibility.
local p = {} -- p stands for package
function get_embed(u)
if string.match(u,'youtube') then id = string.gsub(u,'.*youtube.com%/watch%?v%=(.*)','%1')
return '
'
elseif string.match(u,'emtube') then id = string.gsub(u,'.*emtube.-/watch%?v%=(.*)','%1')
return '
'
elseif string.match(u,'rutube') then id = string.gsub(u,'.*rutube.ru%/video/(.*)/','%1')
return '
' else return '
'
end
end
--format final code with iframe
function format_embed(d, u, t, c)
e=get_embed(u)
return ''..e..d..'
'..' ['..u..' '..t..']
'..c
end
function p.videos( frame )
local vidlist = frame.args['VIDEOS']
local vidlist_rows = frame.args['VIDEO_ROWS']
local vidlist_border = frame.args['VIDEO_BORDER']
local collapsed = frame.args['COLLAPSED']=='1' and ' mw-collapsed' or
local collapseHead = frame.args['COLLAPSIBLE']=='1' and frame:preprocess('') or
local collapseBody = frame.args['COLLAPSIBLE']=='1' and frame:preprocess('') or
local collapseEnd = frame.args['COLLAPSIBLE']=='1' and frame:preprocess('') or
-- escape STAR sign inside the text, that is not a list identifier vidlist=string.gsub(vidlist,'([^\n])%*', '%1*') vidcnt=1 vidtable = {} for i in string.gmatch(vidlist, '%*[^\*]*') do
i=string.gsub(i,'%*(.-)%[(.-) (.-)%](.*)', format_embed)
tr_start = math.fmod( vidcnt, vidlist_rows ) == 1 and '' or "" tr_end = math.fmod( vidcnt, vidlist_rows ) == 0 and '' or "" table.insert(vidtable, tr_start..''..i..''..tr_end)
vidcnt=vidcnt+1 end
-- here i reused as identifier of nonempty videogallery (for setting of category) i = (vidcnt>1) and "" or ""
return collapseHead .. table.getn(vidtable) .. ' videos' .. collapseBody .. '
' .. frame:preprocess(table.concat(vidtable)) .. ''.. i .. collapseEnd
end
return p