跳转到内容
开关侧边栏
搜索
创建账号
个人工具
创建账号
登录
导航
首页
最近更改
随机页面
玩法条目
界面
机制
旅程
Rating
解歌系统
版本更新日志
列表条目
定数表
曲目列表
曲包列表
曲师列表
谱师列表
画师列表
徽章列表
友情链接
Arcaea中文维基
工具
链入页面
相关更改
特殊页面
页面信息
查看“Module:Songtable”的源代码
模块
讨论
English
阅读
查看源代码
查看历史
更多
阅读
查看源代码
查看历史
←
Module:Songtable
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
local p = {} local data = require("模块:Rotaeno Data") local getArgs = require('Module:Arguments').getArgs function toInteger(num) local a, b = math.modf(num) if b >= 0.7 and num >= 10 then return tostring(a).."+" else return tostring(a) end end function packName(name) if string.find(name, "%[") then return name else return "[["..name.."]]" end end function makeInvokeFunc(funcName) return function(frame) local args = getArgs(frame) return p[funcName](args) end end p.main = makeInvokeFunc('_main') function p._main(args) --生成HTML的主函数 -- 从参数或者页面名称读取曲目名称 local songName if args['曲名'] then songName = args['曲名'] else songName = 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 if args['id'] then query = data.singleSongInformation(args['id'], "id") else query = data.singleSongInformation(songName, "name") end -- 如果没有来源一栏的话,图片合并行的数量减少 local imageRowspan if query("source") then imageRowspan = 13 else imageRowspan = 12 end -- 分类表 local cat = {} -- 拼html,因为内容比较简单,就不像arcaeawiki一样写数据table了。 local box = mw.html.create("table"):addClass("rotable") if args["曲名"] then box:tag("tr"):tag("th"):wikitext(args["曲名"]):attr("colspan", "6") else box:tag("tr"):tag("th"):wikitext(query("title")):attr("colspan", "6") end if args["曲名语言表"] then box:tag("tr"):tag("th"):wikitext(args["曲名语言表"]):attr("colspan", "6") elseif query("title-list") then box:tag("tr"):tag("th"):wikitext(query("title-list")):attr("colspan", "6") end if args["id"] then box:tag("tr"):addClass("rotable-title"):tag("th"):wikitext("曲目信息"):attr("colspan", "5") :done():tag("td"):wikitext("[[File:Songs_"..args["id"]..".png|256px]]"):attr("rowspan", imageRowspan) :css("height", "256px"):css("width", "256px") elseif query("id") then box:tag("tr"):addClass("rotable-title"):tag("th"):wikitext("曲目信息"):attr("colspan", "5") :done():tag("td"):wikitext("[[File:Songs_"..query("id")..".png|256px]]"):attr("rowspan", imageRowspan) :css("height", "256px"):css("width", "256px") else box:tag("tr"):addClass("rotable-title"):tag("th"):wikitext("曲目信息"):attr("colspan", "5") :done():tag("td"):wikitext("未指定图片"):attr("rowspan", imageRowspan) :css("height", "256px"):css("width", "256px") end if args["曲包"] then box:tag("tr"):tag("td"):wikitext("曲包"):done():tag("td"):wikitext(packName(args["曲包"])):attr("colspan", "4") table.insert(cat, "[[分类:"..args["曲包"].."曲包曲目]]") else box:tag("tr"):tag("td"):wikitext("曲包"):done():tag("td"):attr("colspan", "4") end if args["曲师"] then box:tag("tr"):tag("td"):wikitext("曲师"):done():tag("td"):wikitext(args["曲师"]):attr("colspan", "4") else box:tag("tr"):tag("td"):wikitext("曲师"):done():tag("td"):wikitext(query("artist")):attr("colspan", "4") end if args["画师"] then box:tag("tr"):tag("td"):wikitext("画师"):done():tag("td"):wikitext(args["画师"]):attr("colspan", "4") else box:tag("tr"):tag("td"):wikitext("画师"):done():tag("td"):wikitext(query("JacketDesigner")):attr("colspan", "4") end -- 来源有可能没有 if args["来源"] or query("source") then if args["来源"] then box:tag("tr"):tag("td"):wikitext("来源"):done():tag("td"):wikitext(args["来源"]):attr("colspan", "4") else box:tag("tr"):tag("td"):wikitext("来源"):done():tag("td"):wikitext(query("source")):attr("colspan", "4") end end box:tag("tr"):tag("td"):wikitext("时长"):done():tag("td"):wikitext(args["时长"]):attr("colspan", "4") box:tag("tr"):addClass("rotable-title"):tag("th"):wikitext("谱面信息"):attr("colspan", "5") if args["谱师"] then box:tag("tr"):tag("td"):wikitext("谱师"):done():tag("td"):wikitext(args["谱师"]):attr("colspan", "4") else box:tag("tr"):tag("td"):wikitext("谱师"):done():tag("td"):wikitext(query("ChartDesigner")):attr("colspan", "4") end box:tag("tr"):tag("td"):wikitext("难度"):done() :tag("td"):wikitext("难度I"):css("color", "#43a047"):done() :tag("td"):wikitext("难度Ⅱ"):css("color", "#1565c0"):done() :tag("td"):wikitext("难度Ⅲ"):css("color", "#e65100"):done() :tag("td"):wikitext("难度Ⅳ"):css("color", "#ab47bc") if args["难度I等级"] and args["难度I等级"] and args["难度III等级"] and args["难度IV等级"] then box:tag("tr"):tag("td"):wikitext("等级"):done() -- 删除小数 :tag("td"):wikitext(args["难度I等级"]):done() :tag("td"):wikitext(args["难度II等级"]):done() :tag("td"):wikitext(args["难度III等级"]):done() :tag("td"):wikitext(args["难度IV等级"]) table.insert(cat, "[[分类:等级I中"..args["难度I等级"].."级曲目]]") table.insert(cat, "[[分类:等级II中"..args["难度II等级"].."级曲目]]") table.insert(cat, "[[分类:等级III中"..args["难度III等级"].."级曲目]]") table.insert(cat, "[[分类:等级IV中"..args["难度IV等级"].."级曲目]]") else if query("rating1") then box:tag("tr"):tag("td"):wikitext("等级"):done() -- 删除小数 :tag("td"):wikitext(toInteger(query("rating1"))):done() :tag("td"):wikitext(toInteger(query("rating2"))):done() :tag("td"):wikitext(toInteger(query("rating3"))):done() :tag("td"):wikitext(toInteger(query("rating4"))) if query("title") then table.insert(cat, "[[分类:等级I中"..toInteger(query("rating1")).."级曲目]]") table.insert(cat, "[[分类:等级II中"..toInteger(query("rating2")).."级曲目]]") table.insert(cat, "[[分类:等级III中"..toInteger(query("rating3")).."级曲目]]") table.insert(cat, "[[分类:等级IV中"..toInteger(query("rating4")).."级曲目]]") end end end box:tag("tr"):tag("td"):wikitext("Note数量"):done() :tag("td"):wikitext(args["难度I物量"]):done() :tag("td"):wikitext(args["难度II物量"]):done() :tag("td"):wikitext(args["难度III物量"]):done() :tag("td"):wikitext(args["难度IV物量"]) box:tag("tr"):tag("td"):wikitext("更新时间"):done():tag("td"):wikitext(args["更新时间"]):attr("colspan", "4") if args["更新时间"] then table.insert(cat, "[[分类:时间"..args["更新时间"].."更新的曲目]]") end box:tag("tr"):tag("td"):wikitext("更新版本"):done():tag("td"):wikitext(args["更新版本"]):attr("colspan", "4") if args["更新版本"] then table.insert(cat, "[[分类:版本"..args["更新版本"].."更新的曲目]]") end return tostring(box)..table.concat(cat) end return p
本页使用的模板:
Module:Songtable/doc
(
查看源代码
)
返回
Module:Songtable
。