机器人(Bots) 是维护团队的重要工具,能够轻松执行从日常维护到复杂一次性更新的各种重复性任务。机器人编辑贡献了维基超过 8% 的内容更新量 —— 所有这些编辑若通过手动操作会非常繁琐。
目前有五个机器人账户:
- Archeb.bot(由 Archeb 操控)
- Lilydjwg.bot(由 Lilydjwg 操控)
- Prince213.bot(由 Prince213 操控)
- RivuletCedar.bot(由 RivuletCedar 操控)
- Y7n05h.bot(由 Y7n05h 操控)
软件
机器人使用 MediaWiki API 与维基服务器通信。维基媒体基金会开发了许多使用此 API 的机器人,但它们通常不够通用,无法在其他维基上工作,甚至可能与我们的风格指南冲突。因此,我们一直在开发专用于 ArchWiki 的机器人工具,这些工具在外界评估时也存在同样的缺陷。
Wiki Monkey
Wiki Monkey 项目的目标是通过直接在网页浏览器中增强维基页面来促进高效编辑。它以用户脚本形式运行,允许在条目编辑页面半自动执行重复性任务,或在分类、链入页面等条目列表页面全自动执行任务。Wiki Monkey 还添加了最近更改和新页面过滤器等辅助工具。详情请参阅文档。
通过 Wiki Monkey 机器人界面进行的编辑会标记 wiki-monkey
标签,可在最近更改列表中过滤查看。
wiki-scripts
wiki-scripts 项目包含许多基于 MediaWiki API 小型类库抽象开发的 Python 脚本。这些脚本的用途涵盖从无需编辑维基的信息收集到执行复杂的自动化编辑(详见#任务描述)。
通过 wiki-scripts 进行的编辑(无论是自动还是交互模式)会标记 wiki-scripts
标签,可在最近更改列表中过滤查看。
任务
本节描述了维基中机器人重复执行的任务。内容旨在概述和记录已部署机器人脚本的功能特性。请注意,机器人编辑默认不会显示在最近更改中,因为这些自动化编辑会显著增加追踪和参与常规贡献的难度。
双重重定向
修复双重重定向是最早的自动化任务之一。可通过以下方式实现:
- 使用这个 Python 脚本
- 使用 Wiki Monkey 的专用插件
软件包模板
update-package-templates.py 脚本会解析所有页面内容并更新包、包组和 AUR 模板。该脚本不会实际更改软件包名称,但会对近期从 AUR 迁移至官方仓库的软件包,将其链接从模板:AUR 更新为模板:包。无效的软件包链接会被标记模板:损坏的软件包链接,并附有时效性提示以显示软件包状态。
当存在本地化版本时,脚本会优先使用模板:损坏的软件包链接的本地化模板,否则回退至英文版本。除此之外无需其他服务端配置。
针对 ArchWiki,脚本每次运行后(最多每 7 天一次)会在 arch:User:Lahwaacz.bot/Reports/archpkgs 生成包含损坏链接的详细报告。
链接检查
- extlink-checker.py 尝试检查外部链接状态,将确定失效的链接标记模板:失效的链接。许多链接仍无法通过此工具检测,主要因为部分网站需要 JavaScript 支持或服务器返回不确定的 HTTP 状态码。
- url-replace.py 执行多种外部链接替换操作,例如将 HTTP 链接更新为 HTTPS、将指向 wiki.archlinux.org 的外部链接替换为内部链接。
-
link-checker.py 对内部链接、手册页链接和外部链接(使用与
url-replace.py
相同的代码)执行多种检查与替换操作。