打开主菜单
首页
随机
登录
设置
关于Arcaea中文维基
免责声明
搜索
查看“Module:Sandbox/ChartConstant”的源代码
←
Module:Sandbox/ChartConstant
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
local p = {} local chartConstantList = require("Module:LoadJson").ChartConstant() local songlist = require("Module:LoadJson").Songlist() local function cv() local list = {} for i,k in pairs(songlist['songs']) do list[k['id']] = { k['title_localized']['en'], k["date"], nil, nil } if k["difficulties"][4] then if k["difficulties"][4]["title_localized"] then list[k['id']][3] = k["difficulties"][4]["title_localized"]["en"] end if k["difficulties"][4]["date"] then list[k['id']][4] = k["difficulties"][4]["date"] end end end return list end local specialSongNameConverter = {} specialSongNameConverter["#1f1e33"]="#1f1e33" specialSongNameConverter["AI[UE]OON"]="AI[UE]OON" function p.main() local list = {} local name local cvList = cv() for i, k in pairs(chartConstantList) do if k[2] or k[3] or k[4] then name = cvList[i][1] end local link = name if specialSongNameConverter[name] then link = specialSongNameConverter[name] end if k[2] and tonumber(k[2]['constant'])>=8 and not(k[2]['old']) then table.insert(list, { i, name, k[2]['constant'], "PRS", link, cvList[i][2] }) end if k[3] and tonumber(k[3]['constant'])>=8 and not(k[3]['old']) then table.insert(list, { i, name, k[3]['constant'], "FTR", link, cvList[i][2] }) end if k[4] and tonumber(k[4]['constant'])>=8 and not(k[4]['old']) then if cvList[i][3] then name = cvList[i][3] end if cvList[i][4] then table.insert(list, { i, name, k[4]['constant'], "BYD", link, cvList[i][4] }) else table.insert(list, { i, name, k[4]['constant'], "BYD", link, cvList[i][2] }) end end end -- make lists local result = {} local mid_result = {} result[11], result[12] = {}, {} mid_result[11], mid_result[12] = {}, {} for s, k in pairs(list) do if not(mid_result[k[3]]) then mid_result[k[3]]={} end if k[3]>=11 then if k[3]>=12 then table.insert(mid_result[12], k) else table.insert(mid_result[11], k) end else table.insert(mid_result[k[3]], k) end end -- sort songs local diffConverter = { PRS=2, FTR=3, BYD=4 } for s, k in pairs(mid_result) do table.sort(k, function (a, b) if not(a[3]==b[3]) then return a[3]>b[3] end return a[6]<b[6] --[=[ if not(diffConverter[a[4]]==diffConverter[b[4]]) then return diffConverter[a[4]]>diffConverter[b[4]] else return string.upper(a[2])<string.upper(b[2]) end ]=] end) end -- use template for s, k in pairs(mid_result) do if s<11 then if not(result[s]) then result[s]={} end for n, m in pairs(k) do table.insert(result[s],mw.getCurrentFrame():expandTemplate { title = 'User:DrLee_lihr/sandbox/组排单元', args = { m[2], m[1], m[4], link=m[5] } } ) end else if s<12 then for n, m in pairs(k) do table.insert(result[11],mw.getCurrentFrame():expandTemplate { title = 'User:DrLee_lihr/sandbox/组排单元', args = { m[2], m[1], m[4], CC = string.format("%.1f", m[3]), link=m[5] } } ) end else for n, m in pairs(k) do table.insert(result[12],mw.getCurrentFrame():expandTemplate { title = 'User:DrLee_lihr/sandbox/组排单元', args = { m[2], m[1], m[4], CC = string.format("%.1f", m[3]), link=m[5] } } ) end end end end -- sort constants local sortTable = {} for i,k in pairs(result) do table.insert(sortTable, {i, k}) end table.sort(sortTable, function(a,b) return a[1] > b[1] end) -- add head and end local finText = "<div class='notaninfobox dstable'>\n" for i,k in ipairs(sortTable) do if k[1] == 11 or k[1] == 12 then finText = finText .. "<div class='ds'>"..k[1].."</div>\n" finText = finText .. "<div class='number'>"..mw.getCurrentFrame():expandTemplate { title = '组排列', args = { ['高度']="154px" } } ..table.concat(k[2])..mw.getCurrentFrame():expandTemplate { title = '组排列-end' }.."</div>\n" else finText = finText .. "<div class='ds'>"..string.format("%.1f", k[1]).."</div>\n" finText = finText .. "<div class='number'>"..mw.getCurrentFrame():expandTemplate { title = '组排列' } ..table.concat(k[2])..mw.getCurrentFrame():expandTemplate { title = '组排列-end' }.."</div>\n" end end finText = finText .. "</div>" return finText end return p
本页使用的模板:
Module:Sandbox/ChartConstant/doc
(
查看源代码
)
返回
Module:Sandbox/ChartConstant
。