Module:ChartConstant:修订间差异
小 (use new data mod) |
小 (合并detail) |
||
第74行: | 第74行: | ||
return tostring(text) | return tostring(text) | ||
end | |||
local function constantFormat(a) | |||
if not a then return ' ' end | |||
local sCC = ('%.1f'):format(a.constant) | |||
if a.old then | |||
return tostring(mw.html.create 'span':addClass 'old-constant':wikitext(sCC)) | |||
else | |||
return sCC | |||
end | |||
end | |||
function p.detail() | |||
local mSong = {} | |||
for _, song in ipairs(mad.listOf 'songs') do | |||
mSong[song.id] = song | |||
end | |||
-- ns待补充 | |||
local datas = {} | |||
-- CD: constant data | |||
for id, songCD in pairs(mw.text.jsonDecode(mw.title.new('ChartConstant.json', 'Template'):getContent())) do | |||
local song = mSong[id] | |||
local query = mad.songQueryWrap(song) | |||
local data = {query.linkTitle} | |||
local rowData = {data = data, sort = {(songCD[query.bydDate and 3 or 4] or songCD[3]).constant * 10, song.date}} | |||
table.insert(datas, rowData) | |||
for i = 1, 4 do | |||
table.insert(data, constantFormat(songCD[i])) | |||
end | |||
end | |||
table.sort(datas, function(a, b) | |||
a, b = a.sort, b.sort | |||
if a[1] == b[1] then return a[2] < b[2] end | |||
return a[1] > b[1] | |||
end) | |||
local texts = {} | |||
local template = '|-\n|[[%s]]' .. ('||%s'):rep(4) | |||
for _, value in ipairs(datas) do | |||
table.insert(texts, template:format(unpack(value.data))) | |||
end | |||
return table.concat(texts, '\n') | |||
end | end | ||
return p | return p |