Help:Pywikipediabot/category.py
Category.pyはpythonで書かれた、カテゴリ関係の作業を自動で行うためのプログラムです。
文法
[編集]次のように記述してください。:
[action]には次の物を指定できます。:
action | 解説 |
---|---|
add | 指定したリストにあるページに指定したカテゴリを付与します。 |
remove | 指定したカテゴリに属するすべてのページからそのカテゴリを除去します。 |
move | 指定したカテゴリに属するすべてのページを他のカテゴリに移動します。 |
tidy | 指定したカテゴリに属するページをサブカテゴリに移動することによって、そのカテゴリを片付けます。 |
tree | 指定したカテゴリのカテゴリツリーを表示します。 |
listify | 指定したカテゴリにあるすべてのページをリスト化します。 |
[option]には次のものを指定できます。:
option | 適用されるaction 記述がない場合、すべてのactionで使用できます。 |
解説 |
---|---|---|
-person | add | 姓によって人物をソートします。 |
-rebuild | データベースをリセットします。 | |
-from: | move | 移動元のカテゴリを指定します。 |
remove | 削除するカテゴリを指定します。 | |
listify | リストを作成するカテゴリを指定します。 | |
-to: | move | 移動先のカテゴリを指定します。 |
listify | 作成するリストの名前を指定します。 NOTE: 指定するカテゴリの名前にスペースが入っている場合は、カテゴリ名を引用符で囲んでください。 ex:)-from:"United States" | |
-batch | 空のカテゴリを自動で削除します。 | |
-summary: | 要約欄に記述する文章を指定します。 | |
-inplace | カテゴリを変更する時は、再整理するのではなく、このフラグを使ってください。 | |
-nodelsum | remove | 要約欄に、デフォルトで指定されている削除理由を記述します。英語版では、"Category was disbanded" in English."です。 |
-overwrite | listify | リストを作成する際に、すでにページがあっても、それを上書きしてリストを作成します。 |
-showimages | listify | リストを作成するときに、画像をリストから直接リンクします。 |
-talkpages | listify | リストを作成するときに、トークページをリストに直接リンクします。 |
-recurse | カテゴリのすべてのサブカテゴリに対して再帰呼び出しを行います。 | |
-match | move,remove | 正規表現で与えられた文字列と一致するタイトルのページのみ処理を行います。 |
-create | ページが存在しなかった時、処理をスキップする代わりにそのページを作成します。 |
[action]にaddを指定した際には、次の引数が使用できます。:
option | 解説 |
---|---|
-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 | カテゴライズされていないすべてのファイルで動作するよう設定します。 |
-file | テキストファイルからページのリストを読み込みます。ページのタイトルは[と]で囲むか、改行によって区切る必要があります。なおこのテキストファイルはUTF-8で保存する必要があります。 次のように記述することもできます。"-file:filename". |
-filelinks | 指定したイメージファイル、メディアファイルを使用しているページで動作するよう指定します。 次のように記述することもできます。"-filelinks:filename". |
-yahoo | Yahoo!検索で見つかったページを対象に追加します。処理は、Pythonモジュールの「pYsearch」に依存します。使用するには、config.py の yahoo_appid で設定が必要です。 |
-search | メディアウィキの検索で見つかったページを対象に追加します。対象は、全名前空間です。 |
Google検索で見つかったページを対象に追加します。使用するには、config.py の google_key で設定が必要です。 | |
-namespace | 処理する名前空間の名前または変数を指定します。複数の名前空間を指定するときはカンマで区切ってください。 |
-interwiki | |
-links | 指定したページからリンクしているすべてのページで動作するよう設定します。 次のように記述することもできます。"-links:linkingpagetitle". |
-new | 新しい60ページで動作するよう指定します。-new:xのようにすると、60の代わりにxが指定されます。 |
-imagelinks | 指定したページからリンクしているすべてのイメージファイルで動作するよう指定します。 次のように記述することもできます。"-imagelinks:linkingpagetitle". |
-newimages | 新しい100イメージファイルで動作するよう指定します。-newimages:xのようにすると、100の代わりにxが指定されます。 |
-ref | 指定したページにリンクするすべてのページで動作するよう設定します。 次のように記述することもできます。"-ref:referredpagetitle". |
-start | |
-prefixindex | 指定した文字列から始まる名前を持つページで動作するよう設定します。 |
-titleregex | 正規表現で与えられた文字列と一致するタイトルのページで動作するよう設定します。 |
-transcludes | 指定したテンプレートを使用しているすべてのページで動作するよう設定します。 次のように記述することもできます。"-transcludes:Template:Title". |
-unusedfiles | 使われていないイメージファイル、メディアファイルの解説ページで動作するよう設定します。 次のように記述することもできます。"-unusedfiles:n" nは動作するページの最大数です。 |
-unwatched | 閲覧のないページで動作するよう設定します。 次のように記述することもできます。"-unwatched:n" nは動作するページの最大数です。 |
-usercontribs | 指定した利用者によって編集されたすべてのページで動作するよう設定します。 ex:) -usercontribs:DumZiBoT |
-weblink | 指定した外部リンクにリンクするすべての記事で動作するよう設定します。 |
-withoutinterwiki | 内部リンクを持たないすべてのページで動作するよう設定します。 次のように記述することもできます。"-withoutinterwiki:n" nには2桁の数を指定してください。 |
-random | Special:Randomから返ってきたページで動作するよう設定します。 次のように記述することもできます。"-random:n" nは返されるページの数です。指定がない場合、10が指定されます。 |
-randomredirect | Special:Randomredirectから返ってきたページで動作するよう設定します。 次のように記述することもできます。"-randomredirect:n"nは返されるページの数です。指定がない場合、10が指定されます。 |
-gorandam | |
-recentchanges | Special:Recentchangesから返ってきたページで動作するよう設定します。 次のように記述することもできます。"-recentchanges:n" nは返されるページの数です。指定がない場合、100が指定されます。 |
-redirectonly | リダイレクトページのみで動作するよう設定します。 次のように記述することもできます。"-redirectonly:pagetitle" 名前空間を指定することもできます。 ex:)"-redirectonly:Template:!" これはテンプレート名前空間を指定しています。 |
[action]にtidyもしくは、treeを指定した場合、, botはカテゴリの構造をローカルのcategory.dumpに保存します。time と server loadが保存されますが、後からそのデータを使用した場合でも古いもののままです。しかし、[-rebuild]引数を使用した場合はこの限りではありません。
すべての 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 がページの編集を保存してから次の保存までの時間を秒数で指定します。 |
使用例
[編集]カテゴリを加えるとき
[編集]ファイルにリストがある場合、次のように入力してください。:
ファイル名を入力しなかった場合、ファイルのリストがあるページを入力するよう促されます。
次に、カテゴリの名前を入力するようにしてください。
人物のリストから新しいカテゴリを作るとき、姓でアルファベット順にソートしたいと思うでしょう。その方法を示します。"Artist" カテゴリを"Jane Smith"というページに加える([[Category:Artists|Smith, Jane]])には、次のように入力します。
スクリーンに表示される解説に従ってください。
カテゴリを移動するとき
[編集]指定したカテゴリに属するすべてのページを他のカテゴリに移動したいと思ったら、次のように記述してください。:
移動元のカテゴリを入力するよう促されるはずですから、その名前を入力してください。
名前空間名であるCategory:は入力する必要がありません。
次に、移動先のカテゴリ名を入力してください。:
コマンドラインで記述するときは、次のようにします。:
例を挙げます。USというカテゴリを"United States"というカテゴリに張り替えたいときは
のように記述します。
これはcategory.pyではありませんが、同じような置換を行います。移動の際に、名前空間の指定を行いたいなどの場合、 便利です。
replace.py -regex -namespace:0 -cat:"US" "\[\[(?:[Cc]ategory|カテゴリ):US(\]\]|\|([^]]+?)\]\])" "[[Category:United States\1"
replace.pyを使用すれば、カテゴリのソートキーが「*」になっているものだけを弾くこともできます。
replace.py -regex -cat:US "\[\[(?:[cC]ategory|カテゴリ):US(\]\]|\|([^]]+?)\]\])" "[[Category:United States\1" -excepttext:":US\|\*"