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 <= r do
while l < r do
local index = math.floor((l + r) / 2)
local m = math.floor((l + r) / 2)
if dDate == dates[index] then
if dates[m] < dDate then
return versions.name[index]
l = m + 1
elseif dDate < dates[index] then
r = index - 1
else
else
l = index + 1
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))