IRCbotに色つけ
IRCに通知用のチャンネルを作って、時報やら社内情報やら雨予告やら電車遅延情報やら、アプリに関する情報やら色々流すようにしているんですが、流す量が増えてきて段々何が重要か解らなくなってきてしまった。
ということで、さほど重要じゃない時報と同時に暑苦しい発言を吐くbotの発言をLimechatのデフォルト背景色と同化させたり、重要なのを色付きにしたりした。
Limechatだと色指定は
大体、POE::Component::IRC のドキュメントに同じ事が書いてあって、
privmsg 指定したニック若しくはチャンネルに公開若しくはプライベートな メッセージを送信します. 2つの引数をとり, それらは notice を送信したいニック若しくは チャンネル名(配列リファレンスを使って複数の宛先を指定することも できます), 及び送信したいメッセージテキストです. IRC カラーを送るためには, 色をつけたいテキストを \x03 に続けて カラーコード, テキスト, そして戻るための \x03 でくるみます. $kernel->post( $sender => privmsg => $channel => "Foo \x034bar\x03" );
と、こんな感じ。
ちなむと \x034とか一々覚えてられねーよという人向けにString::IRC という素晴らしいモジュールが既にある。
まあ何が言いたいかっていうと、自分で実装する前に同じことしてるもの探せよってこと。
まとめ。
botがIRCにpostするときに、postの一部の色を変えようとしてIRCの生ログを追っかけて、"\x0304hoge\x03" みたいにすればいいことに気づいて実装した後に String::IRC の存在教えてもらった。
— likk (非ワサラー向け)さん (@likk) 2013年2月13日