Help:Pywikipediabot/add_text.py
これは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のAPIライセンスキーが必要でありますが、配布は停止されています。config.pyを見てください。"-google:searchstring"として与えることも可能です。 | ||
-yahoo | Yahoo検索で見つかった全てのページを対象に設定します。pYsearchモジュールに依存しています。config.pyの中のyahoo_appid を見てください。 | |
-page | 単一のページで動作するよう指定します。"-page:pagetitle"のように与えることも可能です。 |
- ^ 角括弧で囲む場合、他の部分にどういう文字があっても構いません。ページのソースをそのまま与えることも可能です。-linksと同じ結果になるとは思いますが。
- ^ 特別:リンク元。
- ^ 特別:Prefixindex
- ^ 参考: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 | |
review | |
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のスタッフによって書かれています。我々に対して、ヘルプが必要か、このスクリプトを考えるのにいくつかの助言が必要であれば、下のサイトへ来てください。: