Help:Pywikipediabot/category.py

Category.pyはpythonで書かれた、カテゴリ関係の作業を自動で行うためのプログラムです。

文法[編集]

次のように記述してください。:

python category.py [global-arguments] action [-option]

[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 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 がページの編集を保存してから次の保存までの時間を秒数で指定します。

使用例[編集]

カテゴリを加えるとき[編集]

ファイルにリストがある場合、次のように入力してください。:

python category.py add -file:FILENAME

ファイル名を入力しなかった場合、ファイルのリストがあるページを入力するよう促されます。

次に、カテゴリの名前を入力するようにしてください。

人物のリストから新しいカテゴリを作るとき、姓でアルファベット順にソートしたいと思うでしょう。その方法を示します。"Artist" カテゴリを"Jane Smith"というページに加える([[Category:Artists|Smith, Jane]])には、次のように入力します。

python category.py add -person

スクリーンに表示される解説に従ってください。

カテゴリを移動するとき[編集]

指定したカテゴリに属するすべてのページを他のカテゴリに移動したいと思ったら、次のように記述してください。:

category.py move

移動元のカテゴリを入力するよう促されるはずですから、その名前を入力してください。

OldCategoryname

名前空間名であるCategory:は入力する必要がありません。

次に、移動先のカテゴリ名を入力してください。:

NewCategoryName

コマンドラインで記述するときは、次のようにします。:

category.py move -from:"OldCategoryname" -to:"NewCategoryName"

例を挙げます。USというカテゴリを"United States"というカテゴリに張り替えたいときは

category.py move -from:US -to:'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\|\*"