Module:曲师列表:修订间差异

Admin​(留言 | 贡献)
两段式映射:马甲别名优先注册(避免与显示名/写法冲突)
Admin​(留言 | 贡献)
新增「未确认名义」段(中文键改为字符串键,修正语法);曲师列表计入 special
第33行: 第33行:
if type(m) == 'table' and m['显示名'] then
if type(m) == 'table' and m['显示名'] then
for _, a in ipairs(m['马甲'] or {}) do alias[parse.norm(a)] = m['显示名'] end
for _, a in ipairs(m['马甲'] or {}) do alias[parse.norm(a)] = m['显示名'] end
end
end
for _, u in pairs(data['未确认名义'] or {}) do          -- 第三段: 主名义未确认的马甲
if type(u) == 'table' and u['名义'] then
local dn = u['名义']
local e = { ['显示名'] = dn, ['马甲'] = {}, ['_未确认'] = true }
extra[parse.norm(dn)] = e
alias[parse.norm(dn)] = dn
end
end
end
end
第129行: 第137行:
local data, err = validator.load(DATA_TITLE)
local data, err = validator.load(DATA_TITLE)
if not data then return nil, err end
if not data then return nil, err end
return data.songs
local all = {}
for _, s in ipairs(data.songs or {}) do all[#all + 1] = s end
for _, s in ipairs(data.special or {}) do all[#all + 1] = s end  -- 站长要求: special(石墩子)也计入曲师列表
return all
end
end


第160行: 第171行:
or intros[key] or intros[norm(m['显示名'] or pt.base)] or '',
or intros[key] or intros[norm(m['显示名'] or pt.base)] or '',
sort = m['排序键'] or '',
sort = m['排序键'] or '',
unconfirmed = m['_未确认'] or false,
unconfirmed = m['_未确认'] or false,
songs = {},
songs = {},
}
}
第187行: 第200行:
-- 曲目数实时统计(替代此前映射表里无法维护的 _曲目数)
-- 曲目数实时统计(替代此前映射表里无法维护的 _曲目数)
table.insert(out, '<div style="font-size:92%;color:#555">共 ' .. "'''" .. #a.songs .. "'''" .. ' 首曲目</div>')
table.insert(out, '<div style="font-size:92%;color:#555">共 ' .. "'''" .. #a.songs .. "'''" .. ' 首曲目</div>')
if a.unconfirmed then
table.insert(out, '<div style="font-size:92%;color:#b45309">主名义待确认</div>')
end
if a.intro ~= '' then
if a.intro ~= '' then
table.insert(out, a.intro)
table.insert(out, a.intro)