Перейти к содержанию

Модуль:Видеоролик

Материал из LemonCraft Wiki

Для документации этого модуля может быть создана страница Модуль:Видеоролик/doc

local p = {}

local i18n = {
	trackCategory = '[[Категория:Страницы с видеороликами%s]]',
	services = {	-- если нужно встроить видео с нового сервиса, добавьте его сюда
		youtube = ' 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( 'Модуль:ProcessArgs' ).merge( true )
	end
	
	local result = p.genVideo( args['сервис'], args[ 1 ], args[ 2 ], args[ 3 ], args['выравн'], args['описание'], args['адрес'] )
	if result then
		result = mw.html.create( 'div' ):wikitext( result )
		if not args['некат'] then
			result = tostring( result ) .. i18n.trackCategory:format( i18n.services[ args['сервис'] and args['сервис']:lower() or '' ] or '' )
		end
	end
	
	return result
end

return p