minecraft.wiki-mirror/wiki_backup/Module-Video.txt
2024-12-20 08:07:18 -05:00

47 lines
1.4 KiB
Text

local p = {}
local i18n = {
trackCategory = '[[Category:Pages with%s videos]]',
services = { -- when video embeded with a new service provider, add it here
youtube = ' YouTube',
youtubeplaylist = ' YouTube',
vimeo = ' Vimeo',
bilibili = ' Bilibili',
}
}
function p.genVideo( provider, id, width, height, align, caption, urlArgs )
if not id then
return nil
end
provider = provider and provider:lower() or 'youtube'
local dimensions = tonumber( width ) or 425
height = tonumber( height )
if height then
dimensions = dimensions .. 'x' .. height
end
if urlArgs then
return mw.getCurrentFrame():callParserFunction{ name = '#ev', args = { provider, id = id, dimensions = dimensions, alignment = align, description = caption, urlArgs = urlArgs } }
else
return mw.getCurrentFrame():extensionTag{ name = provider, content = id, args = { dimensions = dimensions, alignment = align, description = caption } }
end
end
function p.main( f )
local args = f
if f == mw.getCurrentFrame() then
args = require( 'Module:ProcessArgs' ).merge( true )
end
local result = p.genVideo( args.provider, args[ 1 ], args[ 2 ], args[ 3 ], args.align, args.caption, args.urlargs )
if result then
--result = mw.html.create( 'div' ):wikitext( result )
if not args.nocat then
result = tostring( result ) .. i18n.trackCategory:format( i18n.services[ args.provider and args.provider:lower() or '' ] or '' )
end
end
return result
end
return p