User:Rxy/SWMTBot

From Meta, a Wikimedia project coordination wiki

SWMTBot は、TangotangoAz1568 によってC#で開発されたBotです。 それは、様々なウィキの「最近の更新」を流しているIRCチャンネルの監視を容易にするように設計されました。 機能として、ウィキと「最近の更新」が配信されているIRCチャンネルの動的な読み込みと、読み込みの解除、一元管理された設定ファイルとデータベース、グローバルリスト、自動化された他のSWMTBotとのグローバルリスト自動同期、そして、MediaWikiの要約を使用した、ページの白紙化と置換の検出などがあります。 現在、様々な操作に関する条件設定はBotごとに行えますが、IRCチャンネルごとの条件設定は行うことができません。

現在、CVNによって次の名前のSWMTBotが作動されています: Cubbie, CVNBot*, KrinkleBot*, rcbot, SWBot*, wbbot, WikiaRC

リスト[edit]

すべてのグローバルリストは自動的にSWMTBot全体での同期が行われますが、プロジェクトごとのリストはそうではありません。 すべてのウィキにおけるグローバルな記事ウォッチリストと、個別プロジェクト用のものがあります。 "p=" 引数を省略した場合、各プロジェクトごとのリストではなく、グローバルリストへの操作となります(詳細は下記のコマンド一覧を参照のこと)。

グローバルリスト 個別ウィキ用リスト
  • 不適切な新規利用者名 (BNU)
  • 不適切な新規記事名 (BNA)
  • 不適切な編集要約 (BES)
  • 利用者ホワイトリスト (WL)
  • 利用者ブラックリスト (BL)
  • 利用者グレーリスト (GL)
  • グローバルなページウォッチリスト (CVP)
  • 管理者リスト (AL)
  • ボットリスト (BOTS)
  • ページの「ウォッチ」(監視)リスト (CVP)

リストについての詳細は、下記を参照のこと

コマンド[edit]

すべてのグローバルリストは自動的にSWMTBot全体での同期が行われますが、プロジェクトごとのリストはそうではありません。すべてのウィキにおけるグローバルな記事ウォッチリストと、個別プロジェクト用のものがあります。"p=" 引数を省略した場合、各プロジェクトごとのリストではなく、グローバルリストへの操作となります(詳細は下記のコマンド一覧を参照のこと)。

Bot名の例として、"SWMTBot"が使用されていますが、実際に使用する際にはそのBotの名前に置き換えてください。
コントロールコマンド
コマンド 説明 使用例
quit BotをIRCより切断します。 SWMTBot quit
restart Botを再起動させます。 SWMTBot restart
list すべての監視対象に指定されたウィキ一覧を返します。 SWMTBot list
load wiki.name [インターウィキ] ウィキを監視対象として読み込み指定します。 SWMTBot load en.wikipedia en:
SWMTBot load meta.wikimedia m:
SWMTBot load nl.wikimedia nl:chapter:
SWMTBot load sv.wikiquote q:sv:
reload wiki.name ウィキから新しいメッセージをダウンロードします。MediaWiki: 名前空間の「記録(ログ)」に関する何れかメッセージが変更された場合に実行してください。 SWMTBot reload fr.wikipedia
batchreload 現在読み込まれているすべてのウィキに対し、 reload を実行します。一度に大量のリソースを使用するため、推奨されません。 SWMTBot batchreload
drop wiki.name ウィキを監視対象から外します。 SWMTBot drop als.wikipedia
purge wiki.name Removes from the database all users and watchlisted items pertaining to a particular wiki SWMTBot purge als.wikipedia
msgs Console.msgs を再度読み込みます。ファイルが更新された場合のみ実行してください。 SWMTBot msgs
bleep wiki.name どのBotがどのプロジェクトを監視しているかを確認します。そのBotのネットワークに属するどのBotに対してでも、このコマンドを実行することができます。 SWMTBot bleep commons.wikimedia
count 現在Botが監視しているウィキ数と、そのBotのバージョンを返します。そのBotのネットワークに属するすべてのBotが応答します。 SWMTBot count
config SWMTBot.ini によって設定されている各種の設定とその値を返します。 SWMTBot config
リストコマンド

リストコマンド

コマンド 説明 使用例
bl add/del/show 利用者名 [x=期間] [r=理由] グローバルリストへ条件を追加、削除、または閲覧します。x=0 と指定された場合、無期限となります。 SWMTBot bl add Tangotango x=0 r=悪質な荒らし (Tangotango をグローバルブラックリストへ無期限として追加します)
SWMTBot bl del Tangotango (Tangotango をグローバルブラックリストから削除します)
gl del 利用者名 利用者をグレーリストから削除します。グレーリストにこの利用者が指定されており、ホワイトリストに追加したい際にこれを使用してください。 SWMTBot gl del Mike.lifeguard (Mike.lifeguard をグレーリストより削除します)
wl add/del/show 利用者名 [x=期間] [r=理由] ホワイトリストへ条件を追加、削除、または閲覧します。x=0と指定された場合、無期限となります。 (blの構文を、wlと読み替えてください)
intel 利用者名 指定した利用者名が何れかのリストに属している場合、その属しているリスト名、追加した人、期間とその理由を返します。 SWMTBot intel ZooFari (ZooFari は commons.wikimedia 管理者リストに含まれており、SWMTBot により追加されました。期限 無期限 ("Auto-download from wiki"))
SWMTBot intel Krinkle (Krinkle は global ホワイトリスト に含まれており、ZooFari により追加されました。期限 無期限 ("信頼できる利用者"))
cvp add/del/show ページ名 [p=wiki.name] [x=期間] [r=理由] ウォッチリストへページを追加、削除、または閲覧します。p= 引数によって、すべてのウィキではなく、指定プロジェクトのみを対象とします。x=0 と指定された場合、無期限です。 SWMTBot cvp add United States p=en.wikipedia x=0 ("United States" を en.wikipedia 用ウォッチリストへ追加します)
SWMTBot cvp add Main Page x=0 (すべてのウィキ上の "Main Page" という名前のページをウォッチします)
al add/del/show 利用者名 p=wiki.name [x=期間] [r=理由] 特定プロジェクト用の管理者リストへ指定した利用者名を追加、削除、または閲覧します。x=0 と指定された場合、無期限です。 SWMTBot al add Tangotango p=ga.wikipedia x=0 (Tangotango を ga.wikipedia 用管理者リストへ追加します)
bots add/del/show 利用者名 p=wiki.name [x=期間] [r=理由] 特定プロジェクト用のフラグ付きBotのリストへ、指定した利用者名を追加、削除、または閲覧します。x=0 が指定された場合、無期限です。 (上記を参照。albots と読み替えてください)
bnu add/del/show regex [x=期間] [r=理由] グローバルな「不適切な利用者名リスト」へ条件を追加、削除、または閲覧します。x=0 と指定された場合、無期限です。 SWMTBot bnu add Tangot.*?ngo x=128 r=vandal meme (Tangot.*?ngo の条件に一致するものを不適切な利用者名として強調表示します)
bna add/del/show regex [x=期間] [r=理由] グローバルな「不適切なページ名リスト」へ条件を追加、削除、または閲覧します。x=0 が指定された場合、無期限です。 SWMTBot bna add index\.php r=vandal meme ("index.php"に一致するものを不適切なページ名として強調表示します)
bes add/del/show regex [x=duration] [r=reason] グローバルな「不適切な編集要約リスト」へ条件を追加、削除、または閲覧します。x=0 が指定された場合、無期限です。 SWMTBot bes add !{3,} r=多すぎる感嘆符 (SWMTBot は、どの編集に対する要約にでも、3文字以上の感嘆符が含まれた場合にそれを強調表示します。)
getadmins wiki.name 指定されたプロジェクトより管理者一覧をダウンロードし、それを自動的に管理者リストへと追加します。 SWMTBot config getadmins en.wikipedia
getbots wiki.name 指定されたプロジェクトからフラグ付きBotのリストをダウンロードし、それを自動的にBotリストへ加えます。 SWMTBot config getbots da.wiktionary
batchgetusers 現在読み込んでいるすべてのウィキに対し、getadminsgetbots を実行します。 SWMTBot batchgetusers
  • regex : もし、regex (正規表現)の意味がわからない場合、このキーワードが含まれるコマンドを使用しないでください。 誤った正規表現による条件が作成された場合、問題のない編集を行う利用者に対してまで、自動的に誤ってグレーリストに追加され、チャンネルをあふれさせる原因となります。

pgkbotとの比較[edit]

SWMTBot は、pgkbotを参考にSmall Wiki Monitoring Team と、1つのチャンネルで複数のプロジェクトを監視したい利用者のニーズのために、C#で開発されました。 大多数のコマンドは、pgkbot と同じであり、同等の機能を持っています。また、可能な限り pgkbot と近いメッセージになっています。

SWMTBot の新機能 pgkbot にはあっても、SWMTBot には無い機能
  • コマンドによる簡単なウィキの読み込みと読み込み解除
  • 少ないリソースで多数のウィキを同時に監視
  • すべてのウィキ用のための少ない設定項目のファイル。
  • すべてのウィキデータをひとつの SQLite データベースに格納することによって、リソースの削減
  • グローバルなブラックリスト、ホワイトリスト、そしてグレーリスト
  • グローバルな「不適切な利用者名/ページ名」のリスト(正規表現対応)
  • グローバルな「不適切な編集要約」リスト (正規表現対応)
  • 他のSWMTBotとの自動的なグローバルリストの同期
  • ページの白紙化と置換を識別 (自動的に生成される要約によって)
  • プラグイン
  • データベースバックエンドの選択
  • Telnet インターフェース
  • Complex destination/event routers
  • 個別のブラックリスト/ホワイトリスト
  • 個別の利用者名、ページ名ウォッチリスト
  • Wheeler detection
  • IP用カテゴリ
  • コマンド名の変更

インストール[edit]

安定版リリース 1.19.0[edit]

  1. SWMTBot は、ここからダウンロードすることができます。
  2. 適当な場所にBotのNicknameでフォルダーを作成します。(例: /Users/johndoe/MyRCbot)
  3. 解凍したzipファイルの中に含まれる /SWMTBot/bin/Release より、先ほど作成した新しいフォルダーへすべてコピーします。
  4. 解凍したzipファイルのルートより、Console.msgssqlite3.dllを、新しいフォルダーへコピーします。
  5. プレーンテキストとして、SWMTBot.iniSWMTBot-sample.iniよりコピーして作成します。
  6. 最低限、SWMTBot.ini の "botnick" と "botpass" (場合によってはNickServ loginも) を適切に修正して保存してください。
  7. 端末で「MyRCbot」フォルダーに移動し、"mono SWMTBot.exe" コマンドを実行してBotを作動させてください。
  8. Botはirc.freenode.org 上の "feedchannel" に指定されたチャンネル(標準: #cvn-sandboxconnect)へ参加します。これでBotが作動する状態になりました。

開発版 1.20beta[edit]

  1. SVNよりhttps://svn.toolserver.org/svnroot/p_swmtbot をチェックアウトします。
  2. 適当な場所にBotのNicknameでフォルダーを作成します(例: /Users/johndoe/MyRCbot)。
  3. SVNよりチェックアウトした、/SWMTBot/bin/Releaseの中に含まれるすべてのファイルを、先ほど作成した新しいフォルダーにコピーします。
  4. SVNよりチェックアウトしたファイルのルートに含まれる、SWMTBot-sample.iniSWMTBot.exe.configを、新しいフォルダーにコピーします。
  5. あなたのBotフォルダーには、次の 10個のファイル (要確認!)が存在するはずです: Console.msgs, Meebey.SmartIrc4net.dll, Mono.Data.SqliteClient.dll, Projects.xml, SWMTBot.exe, SWMTBot-sample.ini, SWMTBot.exe.config, SWMTBot.exe.mdb, log4net.dll and sqlite3.dll
  6. SWMTBot-sample.ini を SWMTBot.ini としてリネームした上で、"botnick" (それと "botpass" もしNickServにログインさせる場合)の値を適切に修正します。
  7. 以前のバージョンからのアップグレードの場合:
    • 古い SWMTBot.ini より、設定値をコピーすることができます。ただし、古いファイルそのものを新しい設定ファイルと交換することは、推奨されません。-sample.ini よりコピーし、古い設定ファイルより設定値を引き継ぎつつ、新しい設定ファイルを作成しなおしてください。
    • もし以前のBotが 1.19 以上であれば、Lists.sqlite と Projects.xml をあなたの古いBotのディレクトリよりコピーすることができます(Projects.xmlは古いものへと上書きする)。
  8. 端末で「MyRCbot」へ移動し、"mono SWMTBot.exe"コマンドを実行してBotを作動させてください。
  9. Bot は irc.freenode.org 上の "feedchannel=" に指定されたチャンネル(標準:#cvn-sandboxconnect)へ参加します。これでBotが作動する状態になりました。

ライセンス[edit]

SWMTBot のソフトウェアは、MIT License ライセンスの下で利用することができます。