読者です 読者をやめる 読者になる 読者になる

NeverBlog::Likk::Unexistable;

見なかったことにして下さい

IRCbotに色つけ

IRCに通知用のチャンネルを作って、時報やら社内情報やら雨予告やら電車遅延情報やら、アプリに関する情報やら色々流すようにしているんですが、流す量が増えてきて段々何が重要か解らなくなってきてしまった。

ということで、さほど重要じゃない時報と同時に暑苦しい発言を吐くbotの発言をLimechatのデフォルト背景色と同化させたり、重要なのを色付きにしたりした。

Limechatだと色指定はで変わるのだがこれをそのままbotに履かせてもそのままの状態で出力される。色の変え方が分からなかったので、実際のIRCでやり取りしてる本文の内容をdumpした結果、\x032色を変えたい単語\x03みたいなデータが流れてることが分かった。

大体、POE::Component::IRC のドキュメントに同じ事が書いてあって、

privmsg
    指定したニック若しくはチャンネルに公開若しくはプライベートな メッセージを送信します. 2つの引数をとり, それらは notice を送信したいニック若しくは チャンネル名(配列リファレンスを使って複数の宛先を指定することも できます), 及び送信したいメッセージテキストです.
    IRC カラーを送るためには, 色をつけたいテキストを \x03 に続けて カラーコード, テキスト, そして戻るための \x03 でくるみます.
      $kernel->post( $sender => privmsg => $channel => "Foo \x034bar\x03" );

と、こんな感じ。

ちなむと \x034とか一々覚えてられねーよという人向けにString::IRC という素晴らしいモジュールが既にある。

まあ何が言いたいかっていうと、自分で実装する前に同じことしてるもの探せよってこと。

まとめ。