3日目の坊主

3日坊主といいますが、その坊主の3日目はどうなっているでしょう?更新されているのか?

smartIRC

2008年03月22日 | プログラミング
IRC Botをなにかで作ってみようと思ってみたとき、
友人にSmartIRCについて教えてもらった。
PEARでインストールできるし、
PHP Proで紹介されていたので、さっくり作ってみた。
コピペですよコピペ。

参加者のプライベートメッセージに反応するスクリプトは、
コピペでなんとかなったけど、うちの回線はプチプチ切れるので、
自動Reconnect+自動Rejoinをやってみた。

当初、
$irc->setAutoRetry(TRUE);
$irc->setAutoReconnect(TRUE);
のみで書いてたけど、一向にチャンネルに入ってこない。
デバッグモードでメッセージを見てると、
サーバにはつながっているけれども、チャンネルに入ってこない。

日本語サイトで検索していたけど、まったく書いてるページがない。
しぶしぶと英語のサイトを検索すると、
$irc->setChannelSyncing(TRUE);
とあった。

このクラスについて調べてみると、
Channel syncing means, all users on all channel we are joined are tracked in the channel array. This makes it very handy for botcoding.
と書いてある。
訳:Channel syncing は、自分の入っているユーザとチャンネルを(channel arrayの中から)トラッキングするよ。これ、bot書くときにすげえ便利よ。
っぽい感じ。

ということで、使ってみた。
いま使ってるスクリプトに先の一文を付け加えると、
自動でRejoinしてくれた。

ちなみに、PHP Proのサンプルにも
$irc->setAutoRetry(TRUE);
$irc->setAutoReconnect(TRUE);
$irc->setChannelSyncing(TRUE);
を付け加えると動くと思う。

This makes it very handy for botcoding.って言ってるけど、
これすげえ便利じゃないか。
なんで説明少ないんだろう。ソースみれってのか。わかんないよ。
とりあえずできた。

なんか、汎用性のあるのができたらポコポコのっけていこう。