Module:ArtistSong
可在Module:ArtistSong/doc创建此模块的帮助文档
p={}
local CAL = mw.loadJsonData 'User:Economy666/ComplexArtistsList.json'
local multiId = mw.loadJsonData 'Template:Transition.json'.multiId
local mad = require 'Module:AnotherData'
local function readList()
local pickList = {}
local pickListBYD = {}
for _, song in ipairs(mad.listOf('songs', 'mobile')) do
local artist = song.artist
pickList[song.id] = song.artist
if song.difficulties[4] and song.difficulties[4].artist and song.difficulties[4].artist~=artist then
local bydArtist = song['difficulties'][4]['artist']
pickListBYD[song['id']] = bydArtist
end
end
for _, song in ipairs(mad.listOf('songs', 'ns')) do
if not pickList[song.id] and not multiId[song.id] then
pickList[song.id] = song.artist
if song.difficulties[4] and song.difficulties[4].artist then
bydArtist = song['difficulties'][4]['artist']
pickListBYD[song['id']] = bydArtist
end
end
end
return pickList, pickListBYD
end
local function convertPick(pickList, pickListBYD)
convertList = {}
for _id,_ in pickList do
local artist = pickList[_id]
if not convertList[artist] then convertList[artist] = {} end
if not convertList[artist].normal then convertList[artist]['normal'] = {} end
table.insert(convertList[artist]['normal'], _id)
end
for _id,_ in pickListBYD do
local artist = pickListBYD[_id]
if not convertList[artist] then convertList[artist] = {} end
if not convertList[artist].beyond then convertList[artist]['beyond'] = {} end
table.insert(convertList[artist]['beyond'], _id)
end
return convertList
end
local function genList(convertList)
local function cate(cArtist, artist)
local artist = artist or cArtist
if singleList[artist] then singleList[artist] = {} end
if convertList[cArtist].beyond then
if not singleList[artist].beyond then singleList[artist]['beyond'] = {} end
for _,i in pairs(convertList[cArtist]['beyond']) do
table.insert(singleList[artist]['beyond'],i)
end
end
if convertList[cArtist].normal then
if not singleList[artist].normal then singleList[artist]['normal'] = {} end
for _,i in pairs(convertList[cArtist]['normal']) do
table.insert(singleList[artist]['normal'],i)
end
end
end
singleList = {}
for cArtist in convertList do
if CAL[cArtist] then
for text in CAL[cArtist] do
if text.link then
artist = text['link']
cate(cArtist,artist)
end
end
else
cate(cArtist)
end
end
return singleList
end
function p.main()
local rl, rlb = readList()
return genList(convertPick2(rl, rlb))
end
return p