ArchWiki:机器人
机器人是 维护团队 的重要工具,可以轻松执行从日常例行任务到复杂的一次性更新等重复性任务。机器人编辑占 Wiki 所有贡献的 8% 以上——所有这些编辑如果手动完成将非常繁琐。
目前有两个活跃的机器人账户
- Kynikos.bot(由 Kynikos 操作)
- Lahwaacz.bot(由 Lahwaacz 操作)
软件
机器人使用 MediaWiki API 与 Wiki 服务器通信。 维基媒体基金会 开发了许多使用此 API 的机器人,但它们通常不够通用,无法在其他 Wiki 上工作,甚至与我们的风格指南冲突。因此,我们一直在开发我们自己的 ArchWiki 特定的机器人工具,当外部方评估时,这些工具也存在同样的缺陷。
Wiki Monkey
Wiki Monkey 项目的目的是通过直接增强 Web 浏览器中的 Wiki 页面来促进高效编辑。它作为用户脚本运行,允许在文章编辑器页面中半自动执行重复性任务,或从文章列表页面(例如 分类 或 链入页面)完全自动执行。 Wiki Monkey 还添加了一些助手,例如用于 Special:RecentChanges 和 Special:NewPages 的过滤器。 有关详细信息,请参阅 文档。
由 Wiki Monkey 的机器人界面进行的编辑会标记 wiki-monkey
标签,该标签可以在最近更改列表中进行筛选。
wiki-scripts
wiki-scripts 项目包含许多围绕 MediaWiki API 的小型库状抽象构建的 Python 脚本。包含的脚本的用途范围从收集信息而不编辑 Wiki 到执行复杂的自动化编辑,这在 #任务 中进行了描述。
由 wiki-scripts 自动或交互式进行的编辑都标有 wiki-scripts
标签,该标签可以在最近更改列表中进行筛选。
任务
本节描述了 ArchWiki 机器人重复执行的任务。它作为对已操作机器人脚本的功能的概述和文档。请注意,机器人编辑默认情况下在 Special:RecentChanges 中是隐藏的,因为包含它们会使跟踪和参与常规贡献变得更加困难。
双重重定向
修复 双重重定向 是最古老的自动化任务。例如,可以使用 Python 脚本 或 Wiki Monkey 的专用插件来完成。
目录
目录页面及其“翻译”通过使用 toc.py 脚本进行维护。该脚本可以每天运行,其执行需要几秒钟。
页面需要使用以下入口点表手动初始化
{| id="wiki-scripts-toc-table" |}
此表的内容将替换为脚本生成的更新版本,页面的其余部分保持不变。脚本识别以下用于配置的可选属性
data-toc-languages
指定页面上要显示的语言。它是一个逗号分隔的语言标签列表,最多可以指定 2 个。默认为当前页面的语言,即 目录 (Русский) 的ru
。data-toc-alsoin
指定“另请参阅”短语的翻译。格式为tag1:text, tag2:text, ...
。
例如(来自 目录 (Русский))
{| id="wiki-scripts-toc-table" data-toc-languages="ru,en" data-toc-alsoin="ru:Также в" ... |}
用户还可以通过编辑 Wiki 页面上的链接来翻译表中的类别名称,脚本将在更新时保留它们。
统计
ArchWiki:统计 页面由 statistics.py 脚本维护。目前只有 用户统计 部分是自动生成的,其余部分是手动更新的。更新大约需要 15 秒,应该每天运行。
该脚本通过从 API 获取所有修订和用户帐户的元数据并在本地缓存以获得更好的性能来工作。编辑计数是通过手动计数用户贡献来确定的,而不依赖 MediaWiki 计数器。
软件包模板
update-package-templates.py 脚本解析所有页面的内容并更新 Pkg、Grp 和 AUR 模板。软件包名称实际上不会被脚本更改,但例如,对于最近从 AUR 移动到官方存储库的软件包,链接会从 Template:AUR 更新到 Template:Pkg。无效的软件包链接标有 Template:Broken package link 以及有时有用的提示,显示软件包状态。
脚本在使用本地化版本的 Template:Broken package link 时,如果它们存在,则回退到英文版本。除此之外,没有服务器端配置。
每次运行后,但在最多每 7 天一次的情况下,脚本会在 User:Lahwaacz.bot/Reports/archpkgs 创建一份关于损坏链接的详细报告。
跨语言
interlanguage.py 脚本执行以下操作
执行时间取决于更新量,通常不到一分钟,没有更新时约为 30 秒。
页面语言
update-page-language.py 脚本根据标题(参见 Help:i18n#页面标题)确定每个页面的语言,并在 Wiki 的数据库中设置语言代码。这可以通过 MediaWiki 的 $wgPageLanguageUseDB 设置 [1] 实现。
链接检查
- extlink-checker.py 尝试检查外部链接的状态,并将那些确定已损坏的链接标记为 Template:Dead link。许多链接仍然未通过此工具检查,主要是因为站点需要 JavaScript 并且服务器返回不确定的 HTTP 状态代码。
- url-replace.py 对外部链接执行各种替换,例如将 URL 从 HTTP 更新为 HTTPS 或将指向 wiki.archlinux.org 的外部链接替换为内部链接。
- link-checker.py 对内部链接、手动页面链接和外部链接(使用与
url-replace.py
相同的代码)执行各种检查和替换。 - mark-archived-links.py 将指向 ArchWiki:Archive 的内部链接标记为 Template:Archived page。