Module:沙盒/Economy666/Memory Archive mobile

来自Arcaea中文维基
< Module:沙盒
Economy666讨论 | 贡献2024年6月27日 (四) 16:29的版本 (创建页面,内容为“local mad = require 'Module:AnotherData' local songlist = mad.listOf 'songs' local p = {} function p.main(frame) local dot = frame:expandTemplate {title = '·'} local categories = {'poprec', 'partner', 'original', 'variety', 'musicgames'} local getCategory = {} for i = 1, 5 do getCategory[categories[i]] = i end local songs = {} for i = 1, 5 do songs[i] = {mobile = {}} end for i, v in ipairs(songlist…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

可在Module:沙盒/Economy666/Memory Archive mobile/doc创建此模块的帮助文档

local mad = require 'Module:AnotherData'
local songlist = mad.listOf 'songs'

local p = {}
function p.main(frame)
    local dot = frame:expandTemplate {title = '·'}
    local categories = {'poprec', 'partner', 'original', 'variety', 'musicgames'}
    local getCategory = {}
    for i = 1, 5 do
        getCategory[categories[i]] = i
    end
    
    local songs = {}
    for i = 1, 5 do
        songs[i] = {mobile = {}}
    end
    
    for i, v in ipairs(songlist) do
        if v.set == 'single' then
            local cate = getCategory[v.category]
            songs[cate].mobile[#songs[cate].mobile + 1] = v
        end
    end
    
    local categoryNames = {'流行/推荐', '搭档', '原创', '综合', '音乐游戏'}
    local final = {}
    for i, v in pairs(frame.args) do
        final[i] = v
    end

    function expand(t)
        local res = ''
        for i, v in ipairs(t) do
            if i ~= 1 then
                res = res .. dot
            end
            res = res .. '[[' .. mad.linkTitle(v) .. ']]'
        end
        return res
    end

    for i = 1, 5 do
        local list = ''
        local first = true
        if #songs[i].mobile ~= 0 then
            if not first then list = list .. dot end
            list = list .. expand(songs[i].mobile)
            first = false
        end
        final['group' .. i] = categoryNames[i]
        final['list' .. i] = list
    end
    
    return frame:expandTemplate{title = '曲目索引', args = final}
end
return p