1,014
个编辑
Economy666(讨论 | 贡献) 小 (谱师排序) |
Economy666(讨论 | 贡献) 小 (排序) |
||
第271行: | 第271行: | ||
end | end | ||
return wikiText | return wikiText | ||
end | |||
local ratingSortMemory ={} | |||
local function ratingSort(rating) | |||
local findInMemory = ratingSortMemory[rating] | |||
if findInMemory then return findInMemory end | |||
local num | |||
if string.find(rating, '+') then | |||
num = tonumber(string.match(rating,'%d+'))*2 +1 | |||
else | |||
num = tonumber(rating)*2 | |||
end | |||
ratingSortMemory[rating] = num | |||
return num | |||
end | |||
local sectionCode = {unknown = 0, free = 1, archive = 2, mainstory = 3, sidestory = 4, collab = 5, single = 6} | |||
function sort_fun(a, b) | |||
a, b = a.sort, b.sort | |||
for i = 1, 3 do | |||
local d = a[i] - b[i] | |||
if d ~= 0 then return d < 0 end | |||
end | |||
return false | |||
end | |||
local function getSongSort(songs) | |||
local songSort = {} | |||
for songid, diff in pairs(songs) do | |||
local packItem = mad.packQueryWrap(queryMO(songid, 'set'), 'mobile') | |||
local sortLevel = ratingSort(queryMO(songid, 'ftrRating')) | |||
table.insert(songSort, {id=songid,sort={sectionCode[packItem['section']], packItem['numero'], sortLevel}}) | |||
end | |||
table.sort(songSort, sort_fun) | |||
return songSort | |||
end | end | ||
第295行: | 第329行: | ||
} | } | ||
-- for designer,songs in pairs(singleList) do | -- for designer,songs in pairs(singleList) do | ||
-- local testTable={} | |||
local commonText = '' | local commonText = '' | ||
for _,designer in ipairs(desiredOrder) do | for _,designer in ipairs(desiredOrder) do | ||
local songs = singleList[designer] or {} | local songs = singleList[designer] or {} | ||
local songSort = getSongSort(songs) | |||
commonText = commonText .."\n==".. designer.."==\n" | commonText = commonText .."\n==".. designer.."==\n" | ||
commonText = commonText .. head | commonText = commonText .. head | ||
for | for _,data in ipairs(songSort) do | ||
songid = data.id | |||
commonText = commonText .. songUnit(songid) | commonText = commonText .. songUnit(songid) | ||
end | end | ||
commonText = commonText .. '|}' | commonText = commonText .. '|}' | ||
singleList[designer]=nil | singleList[designer]=nil | ||
-- testTable[designer] = songSort | |||
end | end | ||
local | local rare = { | ||
" | "Kero", | ||
" | " écologie" | ||
} | } | ||
local rareText = '\n==已确认的其他谱师名义及相关曲目名单==\n' | |||
for _,designer in ipairs(rare) do | |||
local songs = singleList[designer] or {} | |||
local songSort = getSongSort(songs) | |||
rareText = rareText .."\n===".. designer.."===\n" | |||
rareText = rareText .. head | |||
for _,data in ipairs(songSort) do | |||
rareText = rareText .. songUnit(songid) | |||
end | |||
rareText = rareText .. '|}' | |||
end | |||
-- local uncommon = { | |||
-- "-chartaesthesia-", | |||
-- "moonquay", | |||
-- "石樂", | |||
-- "絶滅", | |||
-- "én", | |||
-- "与主线剧情相关的特殊名义", | |||
-- "其他未确认谱师名义" | |||
-- } | |||
local uncommonText = '\n==未采用常驻谱师名义的曲目名单及所用名义==\n' | local uncommonText = '\n==未采用常驻谱师名义的曲目名单及所用名义==\n' | ||
for | for designer,songs in pairs(singleList) do | ||
local songs | local songSort = getSongSort(songs) | ||
uncommonText = uncommonText .."\n===".. designer.."===\n" | uncommonText = uncommonText .."\n===".. designer.."===\n" | ||
uncommonText = uncommonText .. head | uncommonText = uncommonText .. head | ||
for | for _,data in ipairs(songSort) do | ||
uncommonText = uncommonText .. songUnit(songid) | uncommonText = uncommonText .. songUnit(songid) | ||
end | end | ||
第328行: | 第382行: | ||
end | end | ||
-- return tableToString(testTable) | |||
-- return tableToString( | |||
return commonText..rareText..uncommonText | return commonText..rareText..uncommonText | ||
end | end | ||
return p | return p |
个编辑