Module:SongConstant:修订间差异

来自Rotaeno中文维基
无编辑摘要
(IV-α)
 
(未显示2个用户的2个中间版本)
第19行: 第19行:
      songName = args['曲名']
      songName = args['曲名']
    else
    else
      songName = mw.getCurrentFrame():preprocess("{{FULLPAGENAME}}")
      songName = mw.text.decode(mw.getCurrentFrame():preprocess("{{FULLPAGENAME}}"))
    end
    end


第31行: 第31行:
    local box = mw.html.create("table"):addClass("rotable")
    local box = mw.html.create("table"):addClass("rotable")


    box:tag("tr"):tag("th"):wikitext("难度I"):done()
-- 如果有alpha难度,表格要多一列。
       :tag("th"):wikitext("难度II"):done()
local alpha = query("ratingA")
       :tag("th"):wikitext("难度III"):done()
       :tag("th"):wikitext("难度IV"):done():done()
    local tag = box:tag("tr"):tag("th"):wikitext("难度I"):done()
     :tag("tr"):tag("td"):wikitext(query("rating1")):done()
       :tag("th"):wikitext("难度II"):done()
       :tag("td"):wikitext(query("rating2")):done()
       :tag("th"):wikitext("难度III"):done()
       :tag("td"):wikitext(query("rating3")):done()
       :tag("th"):wikitext("难度IV"):done()
       :tag("td"):wikitext(query("rating4"))
   if alpha then tag:tag("th"):wikitext("难度IV-α"):done() end
  
   if args["难度I曲目定数"] and args["难度II曲目定数"] and args["难度III曲目定数"] and args["难度IV曲目定数"] and (not alpha and args["难度IV_Alpha曲目定数"])
   then
   tag = box:tag("tr"):tag("td"):wikitext(args["难度I曲目定数"]):done()
       :tag("td"):wikitext(args["难度II曲目定数"]):done()
       :tag("td"):wikitext(args["难度III曲目定数"]):done()
       :tag("td"):wikitext(args["难度IV曲目定数"]):done()
   if alpha then tag:tag("td"):wikitext(args["难度IV_Alpha曲目定数"]):done() end
else
   tag = box:tag("tr"):tag("td"):wikitext(query("rating1")):done()
       :tag("td"):wikitext(query("rating2")):done()
       :tag("td"):wikitext(query("rating3")):done()
       :tag("td"):wikitext(query("rating4")):done()
   if alpha then tag:tag("td"):wikitext(query("ratingA")):done() end
end


    return box
    return box

2024年7月28日 (日) 14:38的最新版本

可在Module:SongConstant/doc创建此模块的帮助文档

local p = {}

local data = require("模块:Rotaeno Data")

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

function makeInvokeFunc(funcName)
    return function(frame)
        local args = getArgs(frame)
        return p[funcName](args)
    end
end

p.main = makeInvokeFunc('_main')

function p._main(args)
    local songName
    if args['曲名'] then
        songName = args['曲名']
    else
        songName = mw.text.decode(mw.getCurrentFrame():preprocess("{{FULLPAGENAME}}"))
    end

    -- 如果是从页面名读取的,那可能因为mediawiki限制导致页面名和曲名不符。如果有这个转换规则的话,使用转换JSON进行转换。
    local covList = mw.text.jsonDecode(mw.getCurrentFrame():expandTemplate{ title = 'Transition.json' })["displayNameToSongName"]
    if covList[songName] then songName = covList[songName] end

    -- 生成查找函数。
    local query = data.singleSongInformation(songName, "name")

    local box = mw.html.create("table"):addClass("rotable")

	-- 如果有alpha难度,表格要多一列。
	local alpha = query("ratingA")
	
    local tag = box:tag("tr"):tag("th"):wikitext("难度I"):done()
            		:tag("th"):wikitext("难度II"):done()
            		:tag("th"):wikitext("难度III"):done()
            		:tag("th"):wikitext("难度IV"):done()
    if alpha then tag:tag("th"):wikitext("难度IV-α"):done() end
    
    if args["难度I曲目定数"] and args["难度II曲目定数"] and args["难度III曲目定数"] and args["难度IV曲目定数"] and (not alpha and args["难度IV_Alpha曲目定数"])
    then
	    tag = box:tag("tr"):tag("td"):wikitext(args["难度I曲目定数"]):done()
	            :tag("td"):wikitext(args["难度II曲目定数"]):done()
	            :tag("td"):wikitext(args["难度III曲目定数"]):done()
	            :tag("td"):wikitext(args["难度IV曲目定数"]):done()
	    if alpha then tag:tag("td"):wikitext(args["难度IV_Alpha曲目定数"]):done() end
	else
	    tag = box:tag("tr"):tag("td"):wikitext(query("rating1")):done()
	            :tag("td"):wikitext(query("rating2")):done()
	            :tag("td"):wikitext(query("rating3")):done()
	            :tag("td"):wikitext(query("rating4")):done()
	    if alpha then tag:tag("td"):wikitext(query("ratingA")):done() end
	end

    return box

end

return p