跳到内容

Module:DesignerSong:修订间差异

添加2,416字节 、​ 2024年7月25日 (星期四)
补充信息;bydAppend(lasteternity)
(《合并同类项》)
(补充信息;bydAppend(lasteternity))
第15行: 第15行:
local queryNS = data.allSongInformation("id", "ns")
local queryNS = data.allSongInformation("id", "ns")
local diffList = {'PST', 'PRS', 'FTR', 'BYD', 'ETR'}
local diffList = {'PST', 'PRS', 'FTR', 'BYD', 'ETR'}
local bydAppend = {[284]='last'}


local songDiffDesigner={}
local songDiffDesigner={}
local specialDesigner ={}
local specialDesigner ={}
local LinkedDesignerList={}
local LinkedDesignerList={}
local bydAppendInfo={}
local function readList()
local function readList()
local function linkDesigner(designer, songid)
local function linkDesigner(designer, songid)
第29行: 第32行:
local pickList = {}
local pickList = {}
    local mobileList = {}
    local mobileList = {}
    for _, song in ipairs(mad.listOf('songs', 'mobile')) do
    
    songDiffDesigner[song.id]={}
   local listMO = mad.listOf('songs', 'mobile')
  
   for index, id in pairs(bydAppend) do
bydAppendInfo[id] = listMO[index].difficulties[4]
bydAppendInfo[id].id=listMO[index].id
end
  
   for index, song in ipairs(listMO) do
    local songid = song.id
   songDiffDesigner[songid]={}
    local lastDesigner=nil
    local lastDesigner=nil
    local sameCount = 0
    local sameCount = 0
    local num = 0
    local num = 0
    for _,level in ipairs(song.difficulties) do
   local songDiffList = song.difficulties
   if bydAppendInfo[songid] then table.insert(songDiffList,bydAppendInfo[songid]) end
   if not bydAppend[index] then
    for _,level in ipairs(songDiffList) do
    local designer = level.chartDesigner
    local designer = level.chartDesigner
    local diff = level.ratingClass
    local diff = level.ratingClass
第42行: 第57行:
   pickList[designer] = {}
   pickList[designer] = {}
   end
   end
   if not pickList[designer][song.id] then
   if not pickList[designer][songid] then
   pickList[designer][song.id] = {}
   pickList[designer][songid] = {}
   end
   end
   pickList[designer][song.id][diffList[diff+1]]=true
   pickList[designer][songid][diffList[diff+1]]=true
   mobileList[song.id]=true
   mobileList[songid]=true
   table.insert(songDiffDesigner[song.id], {diffList[diff+1], linkDesigner(designer, song.id)})
   table.insert(songDiffDesigner[songid], {diffList[diff+1], linkDesigner(designer, songid)})
   if specialSong[song.id] then
   if specialSong[songid] then
   specialDesigner[designer]=true
   specialDesigner[designer]=true
   end
   end
   lastDesigner=designer
   lastDesigner=designer
   else
   else
   sameCount=sameCount+1
   sameCount=sameCount+1
   table.insert(songDiffDesigner[song.id], {diffList[diff+1], nil})
   table.insert(songDiffDesigner[songid], {diffList[diff+1], nil})
   songDiffDesigner[song.id][num-sameCount+1][3]=sameCount+1
   songDiffDesigner[songid][num-sameCount+1][3]=sameCount+1
   end
   end
   num=num+1
   num=num+1
   end
    end
    end
    end
    end
第75行: 第91行:
--   end
--   end
--   pickList[designer][song.id][diffList[diff+1]]=true
--   pickList[designer][song.id][diffList[diff+1]]=true
--   table.insert(songDiffDesigner[song.id], {diffList[diff+1], linkDesigner(designer, song.id)})
--   table.insert(songDiffDesigner[song.id].data, {diffList[diff+1], linkDesigner(designer, song.id)})
--   if specialSong[song.id] then
--   if specialSong[song.id] then
--   specialDesigner[designer]=true
--   specialDesigner[designer]=true
第82行: 第98行:
--   else
--   else
--   sameCount=sameCount+1
--   sameCount=sameCount+1
--   table.insert(songDiffDesigner[song.id], {diffList[diff+1], nil})
--   table.insert(songDiffDesigner[song.id].data, {diffList[diff+1], nil})
--   songDiffDesigner[song.id][num-sameCount+1][3]=sameCount+1
--   songDiffDesigner[song.id].data[num-sameCount+1][3]=sameCount+1
--   end
--   end
--   num=num+1
--   num=num+1
第89行: 第105行:
-- end
-- end
   --  end
   --  end
 
-- for appendId, id in pairs(bydAppend) do
-- for _,data in ipairs(songDiffDesigner[appendId]) do
-- if data[1] == 'BYD' then
-- table.insert(songDiffDesigner[id].append, data)
-- end
-- end
-- songDiffDesigner[appendId] = nil
-- end
return pickList
return pickList
end
end
第170行: 第196行:
    toPrint = toPrint .. string.rep(" ", indent) .. "}"
    toPrint = toPrint .. string.rep(" ", indent) .. "}"
    return toPrint
    return toPrint
end
local function songTitle(id,byd)
local display
local title = queryMO(id, 'title') or queryNS(id, 'title')
if byd then
display = queryMO(id, 'bydSongName')
-- 如果有新的ns独占byd曲目再使用
-- display = queryMO(id, 'bydSongName') or queryNS(id, 'bydSongName') or 'cant find BYD'
if not display then
return nil
end
else
display = title
end
local res = trans.songNameToDisplayName[title]
if res then return res..'|'..display end
res = trans.sameName[title]
if res then return res[id]..'|'..display end
if title then return title..'|'..display
else return nil end
end
local function songPack(id)
local packid,plat,isNS
-- if queryNS(id, 'set') then
-- packid = queryNS(id, 'set')
-- plat = 'ns'
-- isNS = 1
if queryMO(id, 'set') then
packid = queryMO(id, 'set')
else
return nil
end
local packName = trans.packName[packid] or mad.packQueryWrap(packid, plat).name
local packLink = CL.packLink(packName,1,isNS)
return packLink
end
local frame = mw.getCurrentFrame()
local function color(diff, text)
return frame:expandTemplate{ title = "color", args = {diff, text} }
end
end


第179行: 第247行:


local function songUnit(songid,text)
local function songUnit(songid,text)
if not songDiffDesigner[songid] then return '' end
    local data = songDiffDesigner[songid]
    local data = songDiffDesigner[songid]
    local pack = ''
   local name = songTitle(songid)
   local nameBYD = {songTitle(songid,true)}
   table.insert(nameBYD, bydAppendInfo[songid] and songTitle(bydAppendInfo[songid].id))
    local pack = songPack(songid)
    local wikiText = ''
    local wikiText = ''
    local rowspan = '|rowspan='.. #data ..'|'
   local rowspanSong = nameBYD and ('|rowspan='.. #data-#nameBYD ..'|') or ('|rowspan='.. #data ..'|')
    wikiText = wikiText .. '|-\n'..rowspan ..songid ..'\n'
    local rowspan ='|rowspan='.. #data ..'|'
    wikiText = wikiText .. '|-\n'..rowspanSong ..'[['..name..']]'..'\n'
    wikiText = wikiText .. rowspan ..pack ..'\n'
    wikiText = wikiText .. rowspan ..pack ..'\n'
   local j = 1
    for num, i in ipairs(data) do
    for num, i in ipairs(data) do
    local diffFormat = '| '..(i[1] or '')
   if nameBYD[1] and i[1] == 'BYD' then
   wikiText = wikiText ..'|'..'[['..(nameBYD[1] or '')..']]'..'\n'
   -- j = j + 1
   end
    local diffFormat = '| '..(i[1] and color(i[1], i[1]) or '')
    local designerFormat = i[3] and '||rowspan='.. i[3] ..'|' ..i[2]  or (i[2] and '||'..i[2] or '')
    local designerFormat = i[3] and '||rowspan='.. i[3] ..'|' ..i[2]  or (i[2] and '||'..i[2] or '')
      wikiText = wikiText .. diffFormat ..designerFormat..'\n'
      wikiText = wikiText .. diffFormat ..designerFormat..'\n'
    if num == 1 then
    wikiText = wikiText .. (num == 1 and rowspan .. (text or '')..'\n' or '')
   wikiText = wikiText..rowspan .. (text or '')..'\n'
   end
    wikiText = wikiText .. '|-\n'
    wikiText = wikiText .. '|-\n'
    end
    end
第213行: 第289行:
-- text = text .. songUnit(i)
-- text = text .. songUnit(i)
-- end
-- end
-- return tableToString(songDiffDesigner)
-- return tableToString(bydAppendInfo) .. tableToString(songDiffDesigner)
-- return tableToString(bydAppendInfo)
-- return list1
-- return list1
1,014

个编辑