Module:DesignerSong:修订间差异

添加636字节 、​ 2024年7月25日 (星期四)
《合并同类项》
(test table)
(《合并同类项》)
第31行: 第31行:
    for _, song in ipairs(mad.listOf('songs', 'mobile')) do
    for _, song in ipairs(mad.listOf('songs', 'mobile')) do
    songDiffDesigner[song.id]={}
    songDiffDesigner[song.id]={}
    local lastDesigner=''
    local lastDesigner=nil
    local sameCount=1
    local sameCount = 0
   local num = 0
    for _,level in ipairs(song.difficulties) do
    for _,level in ipairs(song.difficulties) do
    local designer = level.chartDesigner
    local designer = level.chartDesigner
    local diff = level.ratingClass
    local diff = level.ratingClass
    -- if lastDesigner ~= designer then
    if lastDesigner ~= designer then
   sameCount = 0
   if not pickList[designer] then
   if not pickList[designer] then
   pickList[designer] = {}
   pickList[designer] = {}
第46行: 第48行:
   mobileList[song.id]=true
   mobileList[song.id]=true
   table.insert(songDiffDesigner[song.id], {diffList[diff+1], linkDesigner(designer, song.id)})
   table.insert(songDiffDesigner[song.id], {diffList[diff+1], linkDesigner(designer, song.id)})
   -- songDiffDesigner[song.id]={diffList[diff+1], linkDesigner(designer, song.id)}
   if specialSong[song.id] then
   if specialSong[song.id] then
   specialDesigner[designer]=true
   specialDesigner[designer]=true
   end
   end
   lastDesigner=designer
   lastDesigner=designer
   -- else
   else
   -- sameCount=sameCount+1
   sameCount=sameCount+1
   -- local theTable = diffList[diff+1-sameCount]
   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
   -- if theTable then
   end
   -- songDiffDesigner[song.id][theTable]=sameCount
   num=num+1
   -- end
   -- end
    end
    end
    end
    end
    
    
   for _, song in ipairs(mad.listOf('songs', 'ns')) do
  --  for _, song in ipairs(mad.listOf('songs', 'ns')) do
     if not mobileList[song.id] and not multiId[song.id] then
  --    if not mobileList[song.id] and not multiId[song.id] then
for _,level in ipairs(song.difficulties) do
-- for _,level in ipairs(song.difficulties) do
   local designer = level.chartDesigner
--  local designer = level.chartDesigner
   local diff = level.ratingClass
--  local diff = level.ratingClass
   if not pickList[designer] then
--  if lastDesigner ~= designer then
   pickList[designer] = {}
--  sameCount = 0
   end
--   if not pickList[designer] then
   if not pickList[designer][song.id] then
--   pickList[designer] = {}
   pickList[designer][song.id] = {}
--   end
   end
--   if not pickList[designer][song.id] then
   pickList[designer][song.id][diffList[diff+1]]=true
--   pickList[designer][song.id] = {}
   if specialSong[song.id] then
--   end
   specialDesigner[designer]=true
--   pickList[designer][song.id][diffList[diff+1]]=true
   end
--   table.insert(songDiffDesigner[song.id], {diffList[diff+1], linkDesigner(designer, song.id)})
   end
--   if specialSong[song.id] then
end
--   specialDesigner[designer]=true
   end
--   end
--   lastDesigner=designer
--   else
--   sameCount=sameCount+1
--   table.insert(songDiffDesigner[song.id], {diffList[diff+1], nil})
--   songDiffDesigner[song.id][num-sameCount+1][3]=sameCount+1
--   end
--   num=num+1
--  end
-- end
  --  end
return pickList
return pickList
end
end
第169行: 第178行:
head = head .. '! width="20%" style="position:-webkit-sticky;position:sticky;top:0px;" |备注 \n'
head = head .. '! width="20%" style="position:-webkit-sticky;position:sticky;top:0px;" |备注 \n'


local function songUnit(songid)
local function songUnit(songid,text)
    local data = songDiffDesigner[songid]
    local data = songDiffDesigner[songid]
    local pack = ''
    local pack = ''
    local text = ''
    local wikiText = ''
    text = text .. '|-\n|rowspan='.. #data ..'|'..songid ..'\n'
    local rowspan = '|rowspan='.. #data ..'|'
    text = text .. '|rowspan='.. #data ..'|'..pack ..'\n'
   wikiText = wikiText .. '|-\n'..rowspan ..songid ..'\n'
    for _, i in ipairs(data) do
    wikiText = wikiText .. rowspan ..pack ..'\n'
    -- local row = 'rowspan="2"|'
    for num, i in ipairs(data) do
     text = text .. '| '.. (i[1] or '') ..' || '.. (i[2] or '') .. '\n'
    local diffFormat = '| '..(i[1] or '')
    text = text .. '|-\n'
   local designerFormat = i[3] and '||rowspan='.. i[3] ..'|' ..i[2]  or (i[2] and '||'..i[2] or '')
     wikiText = wikiText .. diffFormat ..designerFormat..'\n'
    if num == 1 then
   wikiText = wikiText..rowspan .. (text or '')..'\n'
   end
   wikiText = wikiText .. '|-\n'
    end
    end
    return text
    return wikiText
end
end


第187行: 第201行:
pickList = readList()
pickList = readList()
singleList = genList(pickList)
singleList = genList(pickList)
local text =''
local wikiText =''
for designer,songs in pairs(singleList) do
for designer,songs in pairs(singleList) do
text = text .."'''".. designer.."'''\n"
wikiText = wikiText .."'''".. designer.."'''\n"
text = text .. head
wikiText = wikiText .. head
for songid,diff in pairs(songs) do
for songid,diff in pairs(songs) do
text = text .. songUnit(songid)
wikiText = wikiText .. songUnit(songid)
end
end
text = text .. '|}'
wikiText = wikiText .. '|}'
end
end
-- for i,ii in pairs(songDiffDesigner) do
-- for i,ii in pairs(songDiffDesigner) do
第202行: 第216行:
-- return list1
-- return list1
return text
return wikiText
end
end


return p
return p
1,014

个编辑