Module:沙盒/盐棋/Sandbox:修订间差异
小 (version support) |
小 (version support) |
||
第10行: | 第10行: | ||
local versions = {date = {}, name = {}} | local versions = {date = {}, name = {}} | ||
local function verQuery(mDate) | local function verQuery(mDate) | ||
local dDate = tonumber(lang:formatDate('Ynj', '@' .. mDate)) | local dDate = tonumber(lang:formatDate('Ynj', '@' .. mDate)) - 1 | ||
local dates = versions.date | local dates = versions.date | ||
local l, r = 1, #dates | local l, r = 1, #dates | ||
while l < | while l < r do | ||
local | local m = math.floor((l + r) / 2) | ||
if | if dates[m] < dDate then | ||
l = m + 1 | |||
else | else | ||
r = m | |||
end | end | ||
end | end | ||
return | return versions.name[l] | ||
end | end | ||
第59行: | 第57行: | ||
table.insert(row, input '时长' or ' - ') | table.insert(row, input '时长' or ' - ') | ||
if plat ~= 'ns' then | if plat ~= 'ns' then | ||
local version = input '收录版本' or verQuery(song.date) | local version = input '收录版本' or verQuery(song.date) or '?' | ||
table.insert(row, song.version .. '.' .. version) | table.insert(row, song.version .. '.' .. version) | ||
end | end | ||
第88行: | 第86行: | ||
function p.mobile(frame) | function p.mobile(frame) | ||
for record in mw.text.gsplit(frame.args.versions) do | for record in mw.text.gsplit(frame.args.versions, '%s') do | ||
local date, name = record:match '(%d+):(.*)' | local date, name = record:match '(%d+):(.*)' | ||
table.insert(versions.date, tonumber(date)) | table.insert(versions.date, tonumber(date)) |