模組:ArticleAlertGrouping
外观
因Alertlivebot暂无法自定义各类通告的顺序,本模组可作为权宜工具,在另一页面上生成按有序排列的工作流。
用法
[编辑]{{#invoke:ArticleAlertGrouping|main|<条目通告页面名>|workflows=<期望的工作流序列代码>}}
模组workflow_names
表中的代码定义未经校订,因此可能出现输入正确工作流代码却无法显示内容情况。此时修正模组即可。
例子
[编辑]按删除(CSD,VFD,COPYVIO,TRANS,DRV
)、批判性问题(FAME,SUB
)、保护与合并(PP,MM,MV,SPLIT
)的顺序排列WikiProject:电子游戏/条目状态通告/首页报告。
代码:
<div style="border: 1px dotted black; padding: .5em; width: 95%; margin: auto;">
<div style="text-align:center; background-color:#EEEEEE;">📰 '''[[WikiProject:电子游戏/条目状态通告/首页|条目状态通告]]'''</div>
<div style="-moz-column-width:30em; column-width:30em; font-size:90%;">{{#invoke:ArticleAlertGrouping|main|WikiProject:电子游戏/条目状态通告/首页|workflows=CSD,VFD,COPYVIO,TRANS,DRV,FAME,SUB,PP,MM,MV,SPLIT}}</div>
{{ArticleAlertbot/foot|WikiProject:电子游戏/条目状态通告/首页}}
[[Category:订阅条目通告的专题]]
</div>
效果
📰 条目状态通告
- 小小作品
- 2025-01-31:神眷之力被日期20220626(讨论 | 貢獻)移除了小小作品标记
- 保护
- 2025-02-06:和平精英已被Manchiu(讨论 | 貢獻)保护 (log)
- 2025-01-31:任天堂Switch已被Manchiu(讨论 | 貢獻)保护 (log)
- 2025-01-28:任天堂Switch 2已被Manchiu(讨论 | 貢獻)保护 (log)
- 合并
- 2025-02-20:自走棋被Nostalgiacn(讨论 | 貢獻)建议将電子鬥蛐蛐合并到本页
- 2025-02-20:電子鬥蛐蛐被Nostalgiacn(讨论 | 貢獻)建议合并到自走棋
- 移动请求
- 2025-02-19:任天堂(香港)的移动请求正在讨论
- 2025-02-19:台灣任天堂已被Ericliu1912(讨论 | 貢獻)结束了移动请求 ➡️ 讨论存档
- 2025-02-19:任天堂(台灣)已被Ericliu1912(讨论 | 貢獻)移动到台灣任天堂 (log)
- 2025-01-29:Wikipedia:命名常规 (电子游戏)已被Iokseng(讨论 | 貢獻)移动到Wikipedia:命名常规/电子游戏 (log)
require('strict')
local getArgs = require('Module:Arguments').getArgs
local p = {}
function p.main(frame)
local args = getArgs(frame)
return p._main(args)
end
function p._main(args)
local workflow_names = {
COPYVIO = '侵权',
CSD = '快速删除',
DRV = '存废复核',
DYK = '新条目推荐',
FA = '特色内容',
FAME = '关注度',
GA = '优良条目',
IFD = '档案存废讨论',
ITN = '新闻动态候选',
MM = '合并',
MV = '移动请求',
NOZH = '非中文内容',
PP = '保护',
PR = '同行评审',
RFC = '正在讨论的条目',
SPLIT = '拆分',
SUB = '小小作品',
TFC = '今日首页特色内容',
TGA = '今日首页优良条目',
TRANS = '迁移到其他计划',
VFD = '页面存废',
}
local wikitext = mw.title.new(args[1]):getContent()
local source_by_worksflow = {}
local pos_start, pos_end = 0, 0
while true do
pos_start = mw.ustring.find(wikitext,'\n;', pos_end + 1)
if pos_start == nil then break end
pos_end = mw.ustring.find(wikitext, '\n[^*]', pos_start + 1)
local text = mw.ustring.sub(wikitext, pos_start, pos_end)
local _pos_start = mw.ustring.find(text, ';')
local _pos_end = mw.ustring.find(text, '\n', _pos_start + 1)
local key = mw.ustring.sub(text, _pos_start + 1 , _pos_end - 1)
local value = mw.ustring.sub(text, _pos_end + 1)
source_by_worksflow[key] = value
end
local enabled_workflows = mw.text.split( args.workflows, '%s*,%s*' )
local ret = {}
for _, v in ipairs(enabled_workflows) do
local workflow_title = workflow_names[v]
if source_by_worksflow[workflow_title] ~= nil then
table.insert(ret, '; ' .. workflow_title .. '\n' .. source_by_worksflow[workflow_title])
end
end
return mw.getCurrentFrame():preprocess(table.concat( ret, '\n' ))
end
return p