置顶公告:【置顶】关于临时开启评论区所有功能的公告(2022.10.22) | 【置顶】关于本站Widget恢复使用的公告
  • 你好~!欢迎来到萌娘百科镜像站!如需查看或编辑,请联系本站管理员注册账号。
  • 本镜像站和其他萌娘百科的镜像站无关,请注意分别。

Module:Sandbox/一位史蒂夫

贴贴♀百科,万娘皆可贴的百科全书!转载请标注来源页面的网页链接,并声明引自贴贴百科。内容不可商用。
跳到导航 跳到搜索
Template-info.svg 模块文档  [查看] [编辑] [历史] [刷新]

这里是一位史蒂夫[更多]讨论页贡献上传历史封禁及历史被删贡献移动日志巡查日志用户权限及日志用户查核的模块测试页面。

目前模块测试被用于:

模块子页面:

local luaq = require("Module:Luaq") -- 加载查询模块。
local module = {}
local data = mw.text.jsonDecode(mw.title.new("Module:UserGroup/data"):getContent())

function table.indexof(t, item)
    for i, v in ipairs(t) do
        if v == item then return i end
    end
    return 0
end

local UserGroupInfo = function(group, frame)
    local parent = frame:getParent()
    if parent and parent:getTitle() == "Template:UserGroup" then
        frame = parent
    end
    if frame.args["Count"] then
        return #group
    else
        local list = {}
        for key, val in ipairs(group) do
            if mw.text.trim(val) ~= "" then
                local user = config[val]
                if (user) then
                    table.insert(list,
                        frame:preprocess(user.prefix or "")..
                        frame:expandTemplate{ title = "User", args = { val } }..
                        frame:preprocess(user.postfix or "")
                    )
                else
                    table.insert(list, frame:expandTemplate{ title = "User", args = { val } })
                end
            end
        end
        return table.concat(list, " • ")
    end
end
--[==[
动态生成用以展示某一用户组成员列表的模块导出函数,
生成操作支持的用户组同[[Module:UserGroup/data]]中明确列举出的用户组,没有列举出的将不会支持。
在调用模块时,仍然可以使用{{#invoke|UserGroup|【用户组的代号】}},旧代码可不做修改。
  ]==]
for gname, g in pairs(data) do
    module[gname] = function(frame)
        return UserGroupInfo(g, frame)
    end
end
--[[
由于行政员默认拥有管理员用户组,因此在显示时需要去重。
  ]]
function module.vote_count(frame)
    local filter = mw.text.trim(frame.args[1] or "")
    local groups = getGroups(filter) -- 获取要求和的用户组列表
    if groups == nil or #groups == 0 then return 0 end
    return adjust + luaq.iasQuery(groups)
        :select(check_vote)
        :sum(function(x, y) return { x[1] + y[1] } end) -- 求和
end
return module