Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Module:Song video

From Sekaipedia
Revision as of 04:30, 30 October 2021 by ChaoticShadow (talk | contribs)

Documentation for this module may be created at Module:Song video/doc

local getArgs   = require('Module:Arguments').getArgs
local utils     = require('Module:Utilities')

local p = {}

local function makeVideo(frame, type, link)
	local video = mw.html.create('div')
		:css({
			['flex'] = '1 1 320px',
			['text-align'] = 'center',
			['min-width'] = '320px'
		})
	
	if type and (type == 'youtube' or type == 'file') and link then
		if type == 'file' then
			video:wikitext('[[File:' .. link .. '|320px]]')
		else
			video:wikitext(frame:extensionTag{ 
				name = 'youtube',
				args = { width = "320", height= "180" },
				content = link
			})
		end
	else
		video:wikitext(utils.editIfNil(nil))
	end
	
	return video
end

function p.main(frame)
	local args = getArgs(frame)
	
	
	local root = mw.html.create('div')
		:css({
			['display'] = 'inline-grid',
			['margin-right'] = '10px',
			['margin-bottom'] = '10px'
		})
	
	local header = root:tag('div')
		:css({
			['border-radius'] = '6px',
			['background-color'] = '#FFA900',
			['font-weight'] = 'bold',
			['text-align'] = 'center',
			['margin-bottom'] = '5px',
			['padding'] = '5px'
		})
		:wikitext('Hard Preview')
		:done()
	
	local body = root:tag('div')
		:css({
			['display'] = 'flex',
			['flex-wrap'] = 'wrap',
			['gap'] = '5px'
		})

	local video = makeVideo(frame, args['type'], args['link'])
	
	local infoHeaderCss = {
		['border-radius'] = '6px',
		['background-color'] = '#a7ee75',
		['padding'] = '5px 10px'
	}
	local infoCellCss = {
		['padding'] = '5px'
	}
	
	local info = mw.html.create('div')
		:css({
			['display'] = 'grid',
			['grid-template-columns'] = '1fr 1fr',
			['grid-auto-rows'] = 'min-content',
			['gap'] = '5px'
		})
		:tag('div')
			:css(infoHeaderCss)
			:wikitext('Release Date')
			:done()
		:tag('div')
			:css(infoCellCss)
			:wikitext('2021/08/18')
			:done()
		:tag('div')
			:css(infoHeaderCss)
			:wikitext('Illustrator')
			:done()
		:tag('div')
			:css(infoCellCss)
			:wikitext('Sidu')
			:done()
		:tag('div')
			:css(infoHeaderCss)
			:wikitext('Movie')
			:done()
		:tag('div')
			:css(infoCellCss)
			:wikitext('Lye')
			:done()
		
	body:node(video)
	body:node(info)
	
	return tostring(root)
end

return p
Cookies help us deliver our services. By using our services, you agree to our use of cookies.