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