ArchWiki:ボット

提供: ArchWiki
2020年4月30日 (木) 12:21時点におけるNy-a (トーク | 投稿記録)による版 (→‎目次: 訳出(版 16124 での同期部分))
ナビゲーションに移動 検索に移動

関連記事

ボットメンテナンスチーム の重要なツールで、日々の業務から複雑な一度限りの更新まで、繰り返しのタスクを簡単に実行することができます。ボットによる編集は wiki への全ての貢献の8%以上を占めています。このような編集は手動で行うにはとても退屈でしょう。

現在以下のボットが使用されています。

ソフトウェア

ボットは MediaWiki API を使って wiki サーバーに接続します。ウィキメディア財団 によって作られた、この API を使うたくさんのボットがありますが、それらは普通他の wiki で使えるように十分一般化されていなかったり、ArchWiki のスタイルガイドと衝突したりします。そのため、ArchWiki 特有のボットツールを作っていますが、外部から評価すると同じ弱点があるでしょう。

Wiki Monkey

Wiki Monkey プロジェクトの目的は、web ブラウザで直接 wiki ページを改良することで効率的な編集を補助することです。ユーザースクリプトとして動作し、編集ページで繰り返しのタスクを半自動で実行したり、カテゴリリンク元 といったページリストのページから完全に自動で実行したりできます。Wiki Monkey は 特別:最近の更新特別:新しいページ のためのフィルターといったヘルパーも追加します。詳しくは ドキュメント を参照してください。

wiki-scripts

wiki-scripts プロジェクトは、MediaWiki API のための小さなライブラリのような抽象化で構成されたたくさんの Python スクリプトを含んでいます。含まれているスクリプトの目的は、wiki の編集なしに情報を集めることから、自動化された複雑な編集を行うことにまで及びます。これらは #タスク で説明されています。wiki-script による編集は、自動でも手動でも、wiki-scripts タグ が付けられ、最近の更新のリストで フィルター することができます。

タスク

このセクションでは ArchWiki ボットにより繰り返し実行されるタスクについて説明します。概要と、運用中のボットスクリプトの機能のドキュメントを提供します。ボットの編集は標準で 特別:最近の更新 から隠されていることに注意してください。これらの編集を含めると、通常の貢献を追ったり参加したりすることがかなり難しくなるためです。

二重リダイレクト

二重リダイレクト の修正は最も古い自動化タスクです。Python スクリプトWiki Monkey の専用のプラグインで実行することができます。

目次

目次 ページとその "翻訳" は toc.py スクリプトを使って維持されています。スクリプトは毎日実行され、実行は数秒で終わります。

スクリプトは以下のエントリーポイントがページに存在すると仮定します。

{| id="wiki-scripts-toc-table"
...
|}

この表の内容はスクリプトによって生成された更新されたバージョンに置き換えられ、ページの残りはそのままにされます。スクリプトは以下の任意の属性を設定として認識します。

  • data-toc-languages はページで表示される言語を指定します。カンマ区切りの言語タグのリストで、最大2つまで指定できます。デフォルトでは現在のページの言語で、例えば en:Table of contents (Русский) では ru となります。
  • data-toc-alsoin は "also in" フレーズの翻訳を指定します。形式は tag1:text, tag2:text, ... です。

以下は en:Table of contents (Русский) での例です。

{| id="wiki-scripts-toc-table" data-toc-languages="ru,en" data-toc-alsoin="ru:Также в"
...
|}

ユーザーは表の中のカテゴリ名を wiki ページのリンクを編集することで翻訳でき、スクリプトはそれを更新時に維持します。

統計

The ArchWiki:統計 page is maintained by the statistics.py script. Currently only the User statistics section is autogenerated, the rest is updated manually. The update takes about 15 seconds and should be run daily.

The script works by obtaining metadata of all revisions and user accounts from the API and caching it locally for better performance. The edit counts are determined by manually counting user contributions without relying on MediaWiki counters.

ノート: Some improvements are discussed in en:ArchWiki talk:Statistics#Improvements.

パッケージテンプレート

The update-package-templates.py script parses the content of all pages and updates the Pkg, Grp and AUR templates. The package name is actually not changed by the script, but e.g. for packages that have been recently moved from AUR to the official repositories, the link is updated from テンプレート:AUR to テンプレート:Pkg. Invalid package links are marked with テンプレート:Broken package link along with a sometimes useful hint showing the package status.

The script uses localized versions of テンプレート:Broken package link and テンプレート:aur-mirror when they exist and falls back to the English versions. Other than that there is no server-side configuration.

After each run, but at most once per 7 days, the script creates a detailed report of broken links at en:User:Lahwaacz.bot/Reports/archpkgs.

言語間リンク

The interlanguage.py script does the following:

  • Checks if the language of categories assigned to each page matches the language of the page itself.
  • Creates missing localized categories, mirroring the English category tree.
  • Updates the interlanguage links on all content pages using this algorithm.

The execution time depends on the amount of updates, it is usually less than a minute and about 30 seconds when there are no updates.