Module:沙盒/Chronowar/partnertable
可在Module:沙盒/Chronowar/partnertable/doc创建此模块的帮助文档
local getArgs = require('Module:Arguments').getArgs
local link = require('Module:Link')._link
local getData = require("Module:data")
local p = {}
function timeCov(t)
return os.date("(%Y/%m/%d)", t)
end
function dateCov(v,d,t,type)
if not(v and d) then return nil end
local box,a,b,c = mw.html.create( 'div' ),mw.html.create( 'div' ),mw.html.create( 'div' ),mw.html.create( 'div' )
box:addClass( "date-box" )
a:wikitext(t)
if type=="arg"
then
b:wikitext(v..'<br>'..'('..tostring(d)..')')
else
b:wikitext('v'..v..'<br>'..tostring(timeCov(d)))
end
box:wikitext(tostring(a))
:wikitext(tostring(b))
:wikitext(tostring(c))
return tostring(box)
end
function labelText(text,class)
local span = mw.html.create( 'span' )
span:addClass( 'label-text' )
span:wikitext(text)
return tostring(span)
end
function getImage(id,all,pst,prs,ftr,byd,second,normalJacketArgs,bydJacketArgs,normalJacketData,bydJacketData,bydyes,type)
local container,tab=mw.html.create('div'),mw.html.create('div')
local tab1,tab2,tab3,part1,part2,part3,jacket1,jacket2
container:addClass( 'container' )
tab:attr( 'id','tab-'..type ) tab:addClass( 'img-tab' )
local normalJacket,bydJacket
if normalJacketArgs
then
if bydJacketArgs
then
normalJacket,bydJacket=normalJacketArgs,bydJacketArgs
else
normalJacket,bydJacket=normalJacketArgs,normalJacketArgs
end
else
if normalJacketData=="" or normalJacketData==nil
then
normalJacket,bydJacket='未知','未知'
else
normalJacket,bydJacket=link({'画师',tostring(normalJacketData)}),link({'画师',tostring(bydJacketData)})
end
end
if pst and prs and ftr
then
tab1,tab2,tab3,part1,part2,part3=mw.html.create('div'),mw.html.create('div'),mw.html.create('div'),mw.html.create('div'),mw.html.create('div'),mw.html.create('div')
tab1:wikitext('Past') tab2:wikitext('Present') tab3:wikitext('Future')
tab1:addClass('img-tab-part pst') tab2:addClass('img-tab-part prs') tab3:addClass('img-tab-part ftr')
tab:wikitext(tostring(tab1)) tab:wikitext(tostring(tab2)) tab:wikitext(tostring(tab3))
container:wikitext(tostring(tab))
part1:wikitext('[[文件:'..pst..'|256px|none]]'..labelText('画师')..normalJacket) part2:wikitext('[[文件:'..prs..'|256px|none]]'..labelText('画师')..normalJacket) part3:wikitext('[[文件:'..ftr..'|256px|none]]'..labelText('画师')..normalJacket)
part1:addClass('tab-text-'..type) part2:addClass('tab-text-'..type) part3:addClass('active tab-text-'..type)
container:wikitext(tostring(part1)) container:wikitext(tostring(part2)) container:wikitext(tostring(part3))
return tostring(container)
end
if byd
then
tab1,tab2,part1,part2=mw.html.create('div'),mw.html.create('div'),mw.html.create('div'),mw.html.create('div')
tab1:wikitext('Normal') tab2:wikitext('Beyond')
tab1:addClass('img-tab-part normal') tab2:addClass('img-tab-part byd')
tab:wikitext(tostring(tab1)) tab:wikitext(tostring(tab2))
container:wikitext(tostring(tab))
part1:wikitext('[[文件:'..all..'|256px|none]]'..labelText('画师')..normalJacket) part2:wikitext('[[文件:'..byd..'|256px|none]]'..labelText('画师')..tostring(bydJacket))
part1:addClass('active tab-text-'..type) part2:addClass('tab-text-'..type)
container:wikitext(tostring(part1)) container:wikitext(tostring(part2))
return tostring(container)
end
if second
then
tab1,tab2,part1,part2=mw.html.create('div'),mw.html.create('div'),mw.html.create('div'),mw.html.create('div')
tab1:wikitext('第一曲绘') tab2:wikitext('第二曲绘')
tab1:addClass('img-tab-part normal') tab2:addClass('img-tab-part normal')
tab:wikitext(tostring(tab1)) tab:wikitext(tostring(tab2))
container:wikitext(tostring(tab))
part1:wikitext('[[文件:'..all..'|256px|none]]'..labelText('画师')..normalJacket) part2:wikitext('[[文件:'..second..'|256px|none]]'..labelText('画师')..normalJacket)
part1:addClass('active tab-text-'..type) part2:addClass('tab-text-'..type)
container:wikitext(tostring(part1)) container:wikitext(tostring(part2))
return tostring(container)
end
if id and bydyes
then
tab1,tab2,part1,part2=mw.html.create('div'),mw.html.create('div'),mw.html.create('div'),mw.html.create('div')
tab1:wikitext('Normal') tab2:wikitext('Beyond')
tab1:addClass('img-tab-part normal') tab2:addClass('img-tab-part byd')
tab:wikitext(tostring(tab1)) tab:wikitext(tostring(tab2))
container:wikitext(tostring(tab))
part1:wikitext('[[文件:Songs '..id..'.jpg|256px|none]]'..labelText('画师')..normalJacket) part2:wikitext('[[文件:Songs '..id..' byd.jpg|256px|none]]'..labelText('画师')..tostring(bydJacket))
part1:addClass('active tab-text-'..type) part2:addClass('tab-text-'..type)
container:wikitext(tostring(part1)) container:wikitext(tostring(part2))
return tostring(container)
end
if id
then
return '<div>[[文件:Songs '..id..'.jpg|256px|none]]'..labelText('画师')..normalJacket..'</div>'
end
return '<div>[[文件:'..all..'|256px|none]]'..labelText('画师')..normalJacket..'</div>'
end
function re0()
return nil
end
function p.main(frame)
local args = getArgs(frame)
return p._main(args)
end
function p._main(args)
local category=''
local data,dataNs
local argsLength = 0
for _,_ in pairs(args) do argsLength=argsLength+1 end
if argsLength>=16
then
data,dataNs=re0,getData.getNS(args['曲名'])
else
data,dataNs=getData.getMobile(args['曲名']),getData.getNS(args['曲名'])
end
local byd
if args['Beyond等级'] or data('bydRating') then byd=true else byd=false end
local imageA=getImage(data('id'),args['图片'],args['Past曲绘'],args['Present曲绘'],args['Future曲绘'],args['Beyond曲绘'],args['第二曲绘图片'],args['画师'],args['Beyond画师'],data('ftrJacketDesigner'),data('bydJacketDesigner'),byd,'a')
local imageB=getImage(data('id'),args['图片'],args['Past曲绘'],args['Present曲绘'],args['Future曲绘'],args['Beyond曲绘'],args['第二曲绘图片'],args['画师'],args['Beyond画师'],data('ftrJacketDesigner'),data('bydJacketDesigner'),byd,'b')
local infoList={
[1]={
args['曲名'],data('title'),{ ['id']='title' }
}
}
local box = mw.html.create( 'div' )
--样式控制
box:addClass( "songbox" )
if byd then box:addClass( "byd" ) end
if dataNs('side')==1 or args['侧']=='1' then box:addClass( "conflict" ) else box:addClass( "light" ) end
if args['更新版本NS'] or dataNs('id')
then
box:addClass( "ns-box" )
if not( dataNs('pstChange') or dataNs('prsChange') or dataNs('ftrChange') ) --(or byd) -- bdy单独分栏禁用
then
box:addClass( "ns-same" )
end
end
if args['Beyond更新版本'] and args['Beyond更新时间'] then box:addClass( 'mobile-byd-date' ) end
if args['曲名']=='Tempestissimo' then box:addClass( 'ns-byd-date' ) box:addClass( 'ns-date-span' ) end
if not(args['更新版本'] or args['更新时间'] or data('id')) then box:addClass( 'no-mobile' ) end
--表格生成
local boxList={}
for i,o in ipairs(infoList) do
boxList[i] = mw.html.create( 'div' )
boxList[i]
:attr( infoList[i][3] )
:cssText( infoList[i][4] )
if infoList[i][1]
then
boxList[i]:wikitext( infoList[i][1] )
else
boxList[i]:wikitext( infoList[i][2] )
end
box:wikitext(tostring(boxList[i]))
end
return tostring(box)..category
end
return p