IRCのメッセージをQuartzComposerに表示
SocketReaderPatchの応用例として、IRCで流れるメッセージを、QuartzComposerに表示させてみました。
ダウンロード
インストール
- rbot を Rubygem などでインストールする
- インストールしたrbotのディレクトリ (Rubygemの場合は /opt/local/lib/ruby/gems/1.8/gems/rbot-0.9.10) の /data/rbot/plugins/ に、qc.rb をコピーする
つかいかた
- SocketReaderPatch を使うQuartzComposerのCompositionを開いておく (サーバ側のSocketをlistenしておく)
- 適当なサーバ、チャンネルにrbotを常駐させる (rbotのマニュアルを参照)
これで、QuartzComposerにIRCのログが表示されるようになります。
コード
たったこれだけ。
require 'kconv' class QCPlugin < Plugin PORT = 12345 def initialize super @sock = TCPSocket.new('localhost', PORT) end def listen(m) return unless m.kind_of?(PrivMessage) @sock.print Kconv.toutf8(m.message) end def help(plugin, topic="") "QuartzCompositor from IRC log" end def privmsg(m) #puts m.message end end plugin = QCPlugin.new plugin.register("qc")
その他
元々は、Ruby会議2日目に思いついたネタだったので、かれこれ1週間たってしまいました。長かった。 RubyCococaでやろうとか、dRubyだとか何かと野心的にアプローチをとってみたのですが、けっきょくはSocketでごりごり書くというオーソドックスなスタイルに。
それにしても、SocketReaderPatchをつくるときにもqc.rbのときにも、オブジェクト指向の生産性の高さを実感しました。 既存の振舞いをほんの少しカスタマイズしたいときの継承の威力というか。
- Newer: 憑神を観てきた
- Older: SocketReaderPatch 0.1
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://blog.deadbeaf.org/2007/06/17/show-irc-messages-in-quartz-composer/trackback/
- Listed below are links to weblogs that reference
- IRCのメッセージをQuartzComposerに表示 from mootoh.log

