最近,手元のDebianサーバにIRCサーバを建てた際,
IRCで稼動するロボットプログラムの習作として,
チャンネルの発言をログとして保存するロガーを作ってみました。
IRCネットワークに常駐してチャンネルにInviteされるとロギングを開始するという単純なものです。
CPANに登録されている
Net::IRCモジュールを使うことで比較的簡単にIRCクライアントを書くことができました。
kataribe さんの使い方
- 起動すると指定されたIRCネットワークに接続して待機状態になります
- 同じIRCネットワークに参加します
- 任意のチャンネルに参加します
- invite kataribeでチャンネルに招待します
- ログの記録を停止するにはkick kataribeでチャンネルから追い出します
- また,チャンネルにkataribeだけが残ると,自動的にチャンネルを抜けてログの記録を停止します
通常ユーザとして振舞うのでオペレータ権限が無いとinviteやkickできないなどの制限があるかもしれません。
基本的には受信したメッセージの種類に応じて反応をするイベント駆動型でプログラミングを行います。今は発言(publicやnotice)イベントで発言内容をログに追記しているだけですが,ここを改造することで人工無脳を作ったりもできそうです。
元はTRPGのルールの一つだと思うのですが名前の響きが良かったので拝借させて頂きました。
この記事を読んだ人はこんな記事も読んでいます
IRC, URC, 8RC, 9RC, ORC, KRC, JRC, IEC, I4C, I5C, ITC, IFC, IDC, IRX, IRD, IRF, IRV
ソースコード
プログラミング
Perl, Oerl, 0erl, -erl, Lerl, PWrl, P3rl, PRrl, PDrl, PSrl, PeEl, Pe4l, Pe5l, PeTl, PeFl, PeDl, PerK, PerO, PerP
CPAN, XPAN, DPAN, FPAN, VPAN, COAN, C0AN, C-AN, CLAN, CPQN, CPWN, CPSN, CPZN, CPAB, CPAH, CPAJ, CPAM
ダウンロード