Skype PHP Bot
↑これの続き
github で複数ファイルを一度に pull request する仕方がよく分からないので、
とりあえずここで叫んでみるテスト。
…
Skype API wrapper class に付属する plug-in の log を使うと
以下のようなファイルが出来ますが、このファイルが当初よく
分かりませんでした。
yoya_awm-ffxxxxxxxxxxxx1d.20081205.log yoya_bot-yoya_awm-27xxxxxxxxxxxx05.20090506.log yoya_awm-yoya_bot-e1xxxxxxxxxxxx9d.20090506.log ※ 念の為、x は隠してます。
ぱっと見、発言したユーザと一致していたので、ユーザ毎に
切り出しているのかと勘違いしたのですが、よくよく見ると他の人の
発言も入っていて、コードを読みつつ以下のように理解しました。
- グループチャットで一人で作成した場合は =>- ..log - 特定の人にチャットしたり、そこに人を呼んで増やしたりした場合は、 => - - ..log
これを
ピンと来るかなと以下のように改造してみました。
改造内容
まずは呼び出し側。
bot のインスタンスにパラメータとして渡す。
$files = array( 'yoya_awm-yoya_bot-c7xxxxxxxxxxxxd2' => 'yoya_bot', ); $bot->loadPlugin( "log", array( 'dir' => '/home/yoya/log/skype', 'files' => $files, 'chat_topic_filter' => null, 'chat_id_filter' => null, ));
でもって、Skype/Bot/Plugin/Log.php は以下のように処理。
__construct でパラメータチェックしつつ受け取る。
$this->files = $parameter['files']; } else { $this->files = array(); } _append で $chat_id からファイル名を作る所に細工。 if (isset($this->files[$chat_id])) { $chat_id = $this->files[$chat_id]; }
▼実行結果:
% cat yoya_bot.20090805.log 2009/08/05 00:00:26 [SAID] よや(yoya_awm) うーうー
\(^O^)/ どうでしょうね。> 誰と無く。
↑一応、改変した Log.php を晒してみたり…