Module:DesignerSong:修订间差异

添加1,025字节 、​ 2024年7月25日 (星期四)
排序
(谱师排序)
(排序)
第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 songid,diff in pairs(songs) do
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 uncommon = {
local rare = {
   "-chartaesthesia-",
   "Kero",
   "moonquay",
   " écologie"
   "石樂",
   "絶滅",
   "én",
   "与主线剧情相关的特殊名义",
   "其他未确认谱师名义"
}
}
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 _,designer in ipairs(uncommon) do
for designer,songs in pairs(singleList) do
local songs = singleList[designer] or {}
local songSort = getSongSort(songs)
uncommonText = uncommonText .."\n===".. designer.."===\n"
uncommonText = uncommonText .."\n===".. designer.."===\n"
uncommonText = uncommonText .. head
uncommonText = uncommonText .. head
for songid,diff in pairs(songs) do
for _,data in ipairs(songSort) do
uncommonText = uncommonText .. songUnit(songid)
uncommonText = uncommonText .. songUnit(songid)
end
end
第328行: 第382行:
end
end
local rareText = '\n==已确认的其他谱师名义及相关曲目名单==\n'
-- return tableToString(testTable)
for designer,songs in pairs(singleList) do
 
local songs = singleList[designer] or {}
rareText = rareText .."\n===".. designer.."===\n"
rareText = rareText .. head
for songid,diff in pairs(songs) do
rareText = rareText .. songUnit(songid)
end
rareText = rareText .. '|}'
end
-- for i,ii in pairs(songDiffDesigner) do
-- text = text .. songUnit(i)
-- end
-- return tableToString(bydAppendInfo) .. tableToString(songDiffDesigner)
-- return tableToString(bydAppendInfo)
-- return list1
return commonText..rareText..uncommonText
return commonText..rareText..uncommonText
end
end


return p
return p
1,014

个编辑