缺氧 wiki 编辑团队提示:注册账号并登录后体验更佳,且可通过参数设置定制优化您的浏览体验!

该站点为镜像站点,如果你想帮助这个由玩家志愿编辑的 wiki 站点,请前往原站点参与编辑,
同时欢迎加入编辑讨论群 851803695 与其他编辑者一起参与建设!

全站通知:

模块:表格/版本维护

来自缺氧WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索

此模块的文档可以在模块:表格/版本维护/doc创建

-- 游戏版本/维护
local p = {}
local utils = require([[Module:Utils]])
local vData = require([[Module:Data/版本]])
local vPagesData = require([[Module:Data/版本/页面改动‎]])
local pagesVersions = mw.loadData([[Module:Data/PagesVersions]])
local moduleVersion = require([[Module:游戏版本]])
local tb = require([[Module:表格]])
local date = require('Module:Dev/Date')
local getArgs = require('Module:Dev/Arguments').getArgs
local fstr = mw.ustring.format -- shortcut for formattig a string

-- test by: =p._main{"可能包含过时信息的页面"}
function p._main(args)
    local out = {}
    local cat = args[1]
    for _, page in ipairs(pagesVersions) do
        local chosen = false
        for _, c in ipairs(mw.text.split(page.cats, ", ", true)) do
            if c == cat then
                chosen = true
                break
            end
        end

        if chosen then
            local build = moduleVersion.getBuild(page.versionArgs)
            local buildPage = vData[build] and fstr("[[%s]]", vData[build].page) or build
            local updates = {}
            local isSO = type(page.versionArgs.ex) == "string" and
                             page.versionArgs.ex:upper() == "SO"
            local pageLog = vPagesData[page.title]
            if pageLog ~= nil then
                for _, entry in ipairs(pageLog) do
                    local matchEx = isSO and entry.so or entry.base
                    if matchEx and entry.build > build then
                        table.insert(updates, fstr("[[%s]]", entry.page))
                    end
                end
            end
            table.insert(out, {
                fstr("[[%s]]", page.title), buildPage,
                fstr("%.2f", date(page.editBefore):spandays()),
                table.concat(updates, " • ")
            })
        end
    end

    return tb.table(out, args)
end
function p.main(frame) return p._main(getArgs(frame)) end

return p