Help:Pywikipediabot/add_text.py

In other languages: en - ja


これはFilnikによって書かれたスクリプトで、以下の用途などに使用できます。

  • ページの最後(カテゴリの上)にテキストを追加する
  • プロジェクト間のFAリンクを追加する(featured.pyも参照)。
  • テキストをページの最上部に追加する。

最低でもPython v2.4 を必要とします。

以下のコマンドライン引数が動作するページを指定するために使用可能です。

ローカル引数[編集]

引数名 説明 備考
-cat 指定したカテゴリにある全てのページで動作するよう指定します。"-cat:categoryname"もしくは"-cat:categoryname|fromtitle"として与えることも可能です。 半角の | (バーティカルバー)の代わりに # (ナンバー)を使用することも出来ます。以下の引数でも同じです。
-catr -catと似ていますが、与えたカテゴリのサブカテゴリ、サブサブカテゴリ… を内包します。"-catr:categoryname"もしくは"-catr:categoryname|fromtitle"として与えることも可能です。
-subcats 指定したカテゴリのすべてのサブカテゴリで動作するよう指定します。"-subcats:categoryname"もしくは"-subcats:categoryname|fromtitle"として与えることも可能です。
-subcatsr -subcatsと似ていますが、与えたカテゴリのサブサブカテゴリ、サブサブサブカテゴリ…を内包します。"-subcatsr:categoryname"もしくは"-subcatsr:categoryname|fromtitle"として与えることも可能です。
-uncat カテゴライズされていない全てのページで動作するよう指定します。
-uncatcat カテゴライズされていないすべてのカテゴリで動作するよう指定します。
-uncatfiles カテゴライズされていないすべてのファイルで動作するよう指定します。
-uncattemplates カテゴライズされていないすべてのテンプレートで動作するよう指定します。
-file 扱うページのリストをテキストファイルから読み込みます。ファイル内のページ名は角括弧で囲まれているか[1]、改行によって分けられている必要があります。引数を "-file:filename"として与えることも可能です。存在しないページを含んでいた場合は処理がスキップされます(ただし-talkpageオプションを使った場合には存在しない場合には新規作成されます)。なお、utf-8で使っている場合、先頭行にゴミ文字が付く場合があり、これはいわゆるバイト順マーク (BOM) です。テキストファイルは先頭にBOMが付かないエディタを使って作らなければなりません。
-filelinks ある画像、もしくはファイルを使用している全てのページで動作するよう指定します。"-filelinks:filename"として与えることも可能です。
-search MediaWiki検索で見つかったすべてのページで動作するよう指定します。対象は全名前空間です。
-namespace
-ns
指定した名前空間にあるページだけを処理するようにします。多数の名前空間を指定する際は、 -ns:0,2,4 のようにしてください。
-interwiki 与えられたページと、他の言語版にある同じページで動作するよう指定します。例えば、グローバルスパムと戦うことに使用できます。
注意: これはいくつかのwikiサイトのページをBotに改めさせることになり、よくテストされていません。編集をチェックすることを忘れずに。
-links あるページからリンクされているすべてのページで動作するよう指定します。"-links:linkingpagetitle"として与えることも可能です。
-imagelinks あるページからリンクされているすべての画像で動作するよう指定します。"-imagelinks:linkingpagetitle"として与えることも可能です。
-newimages 新しい画像で動作するよう指定します。-newimages:xとして与えられた場合、x枚の新しい画像が指定されます。 デフォルト値: 100
-new 新しい記事で動作するよう指定します。-new:xとして与えられた場合、新しいx記事で動作します。 デフォルト値: 60
-recentchanges Special:Recentchangesから帰ってきたページに対して動作します。"-recentchanges:n"として与えることで、n記事で動作します。 デフォルト値: 100
-ref あるページにリンクする全てのページで動作するよう指定します。"-ref:referredpagetitle"として与えることも可能です[2]
-start ホームウィキにあるすべてのページをアルファベット順に通過するように指定します。"-start:pagetitle"と与えれば、pagetitleから作業を開始します。名前空間を含めることもでき、"-start:Template:!"とすれば、テンプレート名前空間から処理を開始します。
-prefixindex 前方一致ページで動作するよう指定します[3]
-titleregex 正規表現で与えられた文字列に一致するタイトルのページで動作するよう指定します[4]
-transcludes あるテンプレートを使用している全てのページで動作するよう指定します。"-transcludes:Template:Title"として与えることも可能です。
-unusedfiles 使用されていない画像、もしくはメディアファイルの説明ページで動作するよう指定します。 "-unusedfiles:n"として与えることで、動作する記事の最大数を設定できます。
-unwatched 誰からも見られていない記事を対象に設定します。"-unwatched:n"のように与えることで、動作する記事の最大数を設定できます。
-usercontribs ある利用者から編集された記事を対象に設定します。例えば、"-usercontribs:akasenbot"のように与え、標準的には250のページが指定されます。他の数を与えたいなら、";"で区別してください。"-usercontribs:akasenbot;500"のように与えれば、利用者:akasenbotの最近の500編集を対象にします。
-<mode>log #log引数を参照してください。
-weblink 与えられたURLへの外部リンクを含むすべての記事で動作するよう指定します。"-weblink:url"として与えることも可能です。
-withoutinterwiki 言語間リンクを持たない全てのページで動作するよう指定します。
-random Special:Randomによって返されたランダムなページを対象に設定します。"-random:n"として与えることで、返されるページ数を設定できます。 デフォルト値: 10
-randomredirect Special:Randomredirectによって返されたランダムなリダイレクトを対象に設定します。"-randomredirect:n"として与えることで、返されるページ数を設定できます。 デフォルト値: 10
-gorandom Special:Randomによって返されたページから処理を開始します。
-redirectonly リダイレクトページのみで動作し、リダイレクト先のページを対象としません。Botはアルファベット順にウィキにあるすべてのリダイレクトページを通過します。"-redirectonly:pagetitle"として与えることも可能です。
名前空間を含めることも可能です。例えば、"-redirectonly:Template:!"とすれば、Botはテンプレート名前空間にあるすべてのリダイレクトページを対象に設定します。
-google Google検索で見つかったすべてのページを対象に設定します。GoogleのAPIライセンスキーが必要でありますが、配布は停止されています。config.pyを見てください。"-google:searchstring"として与えることも可能です。
-yahoo Yahoo検索で見つかった全てのページを対象に設定します。pYsearchモジュールに依存しています。config.pyの中のyahoo_appid を見てください。
-page 単一のページで動作するよう指定します。"-page:pagetitle"のように与えることも可能です。
  1. ^ 角括弧で囲む場合、他の部分にどういう文字があっても構いません。ページのソースをそのまま与えることも可能です。-linksと同じ結果になるとは思いますが。
  2. ^ 特別:リンク元
  3. ^ 特別:Prefixindex
  4. ^ 参考:http://toolserver.org/~nikola/grep.php

また、下のコマンドライン引数も使用可能です。

引数名 説明 備考
-page 動作するページを指定します。
-talkpage
-talk
ページの代わりに、トークページにテキストを出力します。
-text 加えるテキストを指定します。\nで改行と解釈されます。つまり、1行空白を入れるには\n\nとする必要があります。なお、-upオプションを使うと\nは使えません(2011/2/12現在)。
-textfile 加えるテキストを含むテキストファイルの名前を指定します。
-summary 要約欄を指定します。
-except 正規表現で書かれたテキストがページ内にあるかチェックし、そのテキストがあった場合は処理をスキップします。
-excepturl ページを、wikiのページではなく、htmlのページとして解釈して、指定したテキストがページ内にあるかチェックします。
-newimages テキストを新しい画像内に加えます。
-untagged ライセンステンプレートを持たない画像にテキストを貼付けます。
-always 追加の是非を尋ねないで自動処理するようにします。
-noreorder カテゴリと言語間リンクの整理を行いません。

log引数[編集]

Special:logにある記事を対象に設定します。<mode>の部分には下の物が使用可能です。

mode 対応するページ
move Special:log/move、移動記録
protect Special:log/protect、保護記録
delete Special:log/delete、削除記録
upload Special:log/upload、アップロード記録
move Special:log/move、移動記録
import Special:log/import、インポート記録
patrol Special:log/patrol、巡回記録
merge Special:log/merge、統合記録
supress Special:log/supress
review Special:log/review
stable Special:log/stable
gblblock Special:log/gblblock、グローバルブロック記録
renameuser Special:log/renameuser、利用者名変更記録
globalauth Special:log/globalauth、グローバルアカウント記録
gblrights Special:log/gblrights、グローバル権限変更記録
abusefilter Special:log/abusefilter、編集フィルター記録
newusers Special:log/newusers、利用者作成記録

使用例[編集]

これは利用者:ウィキ助によってパトロールされた記事のうち、新しい2つを対象にします。

add_text.py -patrol:ウィキ助;2

利用者:ウィキ助に保護されたページを対象にします。

add_text.py -protect:ウィキ助

すべての Bot で利用可能なグローバル引数

-lang:xx Bot を稼動させたいウィキの言語コードを設定します(日本語であれば "ja")。これはウィキメディア・コモンズのための "-lang:commons"を除く user-config.py(における言語コード)の設定をオーバーライドします。
-family:xyz Bot を稼動させたいウィキペディア、ウィクショナリー、ウィキメディア・コモンズ…といったウィキ・ファミリーを設定します。これは user-config.py における設定をオーバーライドします。
-help Bot の解説やコマンド引数などのヘルプ文書を表示します。
-log ログファイルの出力を有効にします。logs サブディレクトリに保存されます。
-log:xyz ログファイルをファイル名 xyz として出力を有効にします。
-nolog ログファイルの出力を無効にします(もし、user-config.py における設定が使用可能であれば)。
-putthrottle:n
-pt:n
動作間隔。Bot がページの編集を保存してから次の保存までの時間を秒数で指定します。

使用例[編集]

指定したページにテンプレートを加えるとき[編集]

"{{Documentation subpage}}"テンプレートを"Category:Template documentation"内にあるページの最上部に追加します。既にページ内にテンプレートが存在する場合は、追加しません。

add_text.py -cat:template_documentation -text:"{{Documentation subpage}}" -except:"\{\{([Tt]emplate:|)[Dd]ocumentation [Ss]ubpage" -up

  • -cat:template_documentation : "Category:Template documentation"にカテゴライズされているページのみを対象にします。
  • -text:"{{Documentation subpage}}" : "{{Documentation subpage}}"テンプレートを追加します (引用符を除いて)。
  • -except:"\{\{([Tt]emplate:|)[Dd]ocumentation [Ss]ubpage" : 正規表現を使って、すでにテンプレートがあるページを対象外にします。
  • -up : ページの最上部にテンプレートを追加します。

他の例:

python add_text.py -cat:catname -summary:"Bot: Adding a template" -text:"{{Something}}" -except:"\{\{([Tt]emplate:|)[Ss]omething" -up

カテゴリを持たないページに対してカテゴリを加えるとき[編集]

これは使われている実際のインスタンスです。wikipediaは、カテゴリを持たないページにテンプレートを貼付けます。なぜなら、ページに隠しカテゴリがあれば、ページはカテゴライズされていると定義されてしまうからです。.

python add_text.py -excepturl:"class='catlinks'>" -uncat -text:"{{Categorizzare}}" -except:"\{\{([Tt]emplate:|)[Cc]ategorizzare" -summary:"Bot: Aggiungo template Categorizzare"


クレジットとヘルプ[編集]

このスクリプトはBotwikiのスタッフによって書かれています。我々に対して、ヘルプが必要か、このスクリプトを考えるのにいくつかの助言が必要であれば、下のサイトへ来てください。: