機器人(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
相同的代碼)執行多種檢查與替換操作。