コンテンツにスキップ

英文维基 | 中文维基 | 日文维基 | 草榴社区

利用者:FOXi/Bot作業用ページ

FOXiBotがテストで使ったり、Botスクリプトのメモ書きとして、初めてBotに興味を持った方がいたら、後で役立つ…かも?

FOXiBotに関するお知らせ

[編集]

動作環境をWindowsからLinuxに移行させるため、現在は動いていません。Linuxの勉強を兼ねており、実際に動かす際には細心の注意を払いますが、予期せぬ挙動をした場合には手動で停止させます。自動制御は当面行う予定はありません。

Botの動作間隔調整

[編集]

config.pyのサーバ負担回避設定でデフォルト値を変更しないと、スクリプトごとに引数指定しないと動作間隔が速くサーバに負担をかける。

how to use replace.py

[編集]

ページ内の文字を直接置換する汎用性の高いスクリプト。Bot作業依頼で、カテゴリ変更やリダイレクトの修正はコレでしてる?天成園で置換したが、同時に置換する事ができなかった。ワイルドカードがあるにはあるのは分かった。けど上手く動作しない。例見ても…?Help:Pywikipediabot/replace.pyを見てもregexについてはさわりだけしか書いてない。regexを指定しないと、複雑な置換が出来ない。逆に簡単な置換が天成園でしたような置換かな。

「replace.py -page:利用者:FOXi/Bot作業用ページ」で走らせ、指示に従って「置換したいもとの文字列」を指定し、「置換したい文字列」を指定した後に、要約欄を変更するのであれば指定して走らせる。IRCで会話してて閃いた、というか気付いた。置換するには置換したい文字列が分かっているので、「正規表現」で指定すれば良い。

例えば、

  • 「置換したいもとの文字列」→(テスト)
  • 「置換したい文字列」→(テスト)
  • 要約欄→任意の文字列

にすると、上手く動作する。引数で「-regex "hoge" "hogehoge"」ではまだちゃんと動かせなかった。。。

() (テスト)

  • ワイルドカードtestテスト

テスト(初代) テスト テスト(てすと)テスト

how to use category.py

[編集]
  • カテゴリを移動(張り替え)する場合
category.pyを以下の方法で走らせる
category.py move
実行した後、張り替えしたいもとのカテゴリを聞かれるので指定する。次に張り替えたいカテゴリを聞かれるので指定する。oldとnewを各自指定すると、old category内にあるファイルを取得?して、[[Category:old hoge]]を張り替え先となる[[Category:new hoge]]に張り替える。
「move」はcategory.pyをどの様に走らせるか指定するactionとなる。move以外に「add」、「remove」などがある。詳細はmeta:category.pyを参照。
category.py remove
実行した後、どのカテゴリかを聞かれるので指定する。そうすると、指定したカテゴリ内の記事を取得し記事から指定したカテゴリを除去する。

how to use checkimages.py

[編集]

アップロード記録をチェックし、ライセンス不明な画像に対してライセンス状態が不明であるテンプレートの貼り付けと、アップロード者の会話ページにライセンス明記のお願いテンプレートをポストする。

実際に走らせた事はまだない。そういえば、コレをキッカケに、問題が解決している(画像に対してライセンスや出典が明記された)場合はBotでこのメッセージを除去できないか?という話があった。まだ提案はしてない。。。


ログの貼付方法

[編集]

が良く分からない。[{{利用者の投稿記録|FOXiBot|表示させたい件数|yyyymmdd(表示させたい日付)052600}}]表示させたい日付の後ろにある数字がみんなバラバラ。

[{{fullurl:特別:Contributions|offset=20080812195949&limit=500&target=Point136}}]←コレを見ると、offset?

コレだ。

まとめ
会話ページでiwaimさんにご教授頂いた方法でログを貼付する。タイムスタンプを指定する場合は以下の方法で。
[{{subst:利用者の投稿記録|FOXiBot|表示させる件数|表示起点となる日付UTC}}]
タイムスタンプを指定しないで現在のログを表示させるには以下。
[{{利用者の投稿記録|FOXiBot|表示させる件数|{{subst:CURRENTTIMESTAMP}}}}]
注意点などはTemplate:利用者の投稿記録を参照。タイムスタンプを指定する場合は、UTCへの変換を忘れない事。投稿履歴の時間表記はJSTである事を忘れがちなので。

オペレータの連携

[編集]

Wikipedia:Bot作業依頼#ちーぼっと代理で、VSSがオープンする可能性が出てきた。open/closeはない、かな?差分を取得できる事で自分の何が悪いのか、どういった処理が効率が良いのか、いろいろと勉強になるソースが集まるかも知れない。オペレータ間の連携で誰かに負担がかかり過ぎないようになるのは、良いかも知れない。

Subversionに参加しています。プロジェクトのWebスペースユーザ情報です。

Bot作業依頼メモ

[編集]
作業に着手する前に必ずWelcomeを停止させる事!ログに必要ないものまで入ります!

Wikipedia:Bot作業依頼#アメリカからアメリカ合衆国への張り替え依頼に着手する予定。

  • 「replace.py -cat:アメリカの航空機」で走らせる
  • 「置換したいもとの文字列」→[[Category:アメリカの航空機]]
  • 「置換したい文字列」→[[Category:アメリカ合衆国の航空機]]

で、上手くいくハズ…。

category.py move で出来た。

ふと見た最近更新されたページを見て焦る…時間帯もあるだろうけど、FOXiBotの編集で埋まってる…


Wikipedia:Bot作業依頼#Category:スーパーロボット大戦参戦作品除去はなんだろ、category.py removeかな。 説明を見ると、「remove category tag from all pages in a category」ってなってるし。

で出来る?でも除去するだけで良いのかな。

作業終了。[1]


Wikipedia:Bot作業依頼#アイドルスタブへの貼り替え依頼Wikipedia:Bot作業依頼#犯罪スタブへの貼り替え依頼はどうやるんだろう。Wikipedia:Bot作業依頼#政府スタブの張り替え依頼と同じ感じでやるんだとは思う。個人的にはreplace.pyでやるんじゃないかな…どうかな。

Wikipedia:Bot作業依頼#アイドルスタブへの貼り替え依頼
  • 「replace.py -cat:アイドル/日本のアイドル/日本のアイドルグループ/チャイルド」で走らせる
  • 「置換したいもとの文字列」→{{People-stub}}
  • 「置換したい文字列」→{{Idol-stub}}
Wikipedia:Bot作業依頼#犯罪スタブへの貼り替え依頼
  • 「replace.py -cat:事件/各国の事件/冤罪/テロ事件/犯罪/放火事件/暴動/未解決事件/誘拐事件」で走らせる
  • 「置換したいもとの文字列」→{{stub}}/{{substub}}
  • 「置換したい文字列」→{{Crime-stub}}

「下位カテゴリ」「サブカテゴリ」って、上の走らせるカテゴリ指定だけすれば、一緒に走ってくれるのか、な?危険な感じがするので手は出さないでおこう。


Wikipedia:Bot作業依頼#京阪3000系電車→京阪3000系電車 (初代)
コレ、たぶんreplace.pyでやるんだろうけど、作業表の二番目、「[[京阪3000系電車|XXXX]]→[[京阪3000系電車 (初代)|XXXX]] 」ってどうやるんだろ。表の下には「XXXXは不特定の文字列。」と説明されている。文字列を特定しないで走らせるには、やっぱりワイルドカードって必要だよね。やっぱりコレもまだ手は出せない。
  • 「replace.py -ref:京阪3000系電車」で走らせる
  • 「置換したいもとの文字列」→[[京阪3000系電車]]と[[京阪3000系電車|XXXX]]
  • 「置換したい文字列」→[[京阪3000系電車 (初代)|京阪3000系電車]]と[[京阪3000系電車 (初代)|XXXX]]
二番目の不特定文字列を含む置換、どうするんだろ。Help:Pywikipediabot/replace.pyとPythonファイル自体に書かれている英文ヘルプをもっと読まないと。
私の会話ページでMymeloさんが教えてくれました。

Wikipedia:Bot作業依頼#ミーナ (商業施設)への改名に伴うリンク元修正依頼
コレは出来そう。以下で走らせれば上手くいくハズ。
  • 「replace.py -ref:ミーナ天神/ミーナ津田沼/ミーナ京都/ミーナ町田」で走らせる
  • 「置換したいもとの文字列」→[[ミーナhoge]]
  • 「置換したい文字列」→[[[[ミーナ (商業施設)#mina tenjin(ミーナ天神)|ミーナ天神]]と[[[[ミーナ (商業施設)#ミーナhoge (mina tsudanuma)|ミーナhoge]]]]
質問二つに対する依頼者の回答があれば着手する準備はある。テストしてみないと何とも言えないケド。
ミーナ天神

[2][3][4][5]

まとめ

今回のBot作業依頼では、走らせる対象を指定する方法をMymeloさんが教えてくれた。引数に-namespace:nを指定する。nには対象となる空間の番号を指定する。

名前空間 名前空間番号 引数
Media -2 -namespace:-2
特別 -1 -namespace:-1
記事 0 -namespace:0
記事ノート 1 -namespace:1
利用者 2 -namespace:2
利用者会話 3 -namespace:3
Wikipedia 4 -namespace:4
Wikipediaノート 5 -namespace:5
画像 6 -namespace:6
画像ノート 7 -namespace:7
MediaWiki 8 -namespace:8
MediaWikiノート 9 -namespace:9
テンプレート 10 -namespace:10
テンプレートノート 11 -namespace:11
Help 12 -namespace:12
Helpノート 13 -namespace:13
カテゴリ 14 -namespace:14
カテゴリノート 15 -namespace:15
ポータル 100 -namespace:100
ポータルノート 101 -namespace:101

また、iwaimさんの教えの要約。「標準名前空間以外は原則として処理対象から外す」記事ノートも対象からは外すこと。

いろいろと調べてテストしてダメな時は正直に聞かないとダメだな。何もしないで教えて君はいただけないが、だからと言って知らないで動かすとこうなる。気をつけよう。「無知」で検索したらこんなんヒットしました。


Wikipedia:Bot作業依頼#「東京ヴェルディの選手一覧」へのリンク修正の依頼
これは早速、教えて頂いた方法で走らせてみる?
  • 「replace.py -ref:東京ヴェルディ1969の選手一覧 -namespace:0」で走らせる
  • 「置換したいもとの文字列」→[[東京ヴェルディ1969の選手一覧]]
  • 「置換したい文字列」→[[東京ヴェルディの選手一覧]]
かな。まずは対象の確認とテスト…。

Wikipedia:Bot作業依頼#韓国の駅→駅情報/韓国
これはtemplate.pyを使うのかなぁ。old templateに「Template:韓国の駅」を指定して、new templateに「Template:駅情報/韓国」を指定。old templateを使用している記事をチェックして、それらからoldを除去、newを置換、かな。500件以上あるから怖くて手が出せない。