Plagger で WIDE 系 #goingmyway のようにする方法
百聞は一見にしかず。このようなチャンネルにする方法
WIDE系IRCサーバの#goingmywayでは、1分に1エントリを紹介するボットが常駐しており、それを話題として話ししあう仕組みになっています。
同じことをplaggerでできるんではないかなと思った訳ですが、plaggerbot-ircには一定時間ごとに出力する機構がないため、取得したRSSを差分で出さない場合一度に出てしまいます。それはそれでいいのかもしれませんが、1分に1エントリという形で出せるようpatchを作りました。
--- IRC.pm.org 2007-11-21 12:52:34.000000000 +0900 +++ IRC.pm 2008-01-01 22:50:02.000000000 +0900 @@ -50,6 +50,8 @@ for my $line (split("\n", $body)) { $self->{remote}->post( 'notify_irc/update', $line ); } + my $interval = $self->conf->{interval} || 0; + sleep($interval) if ($interval); } 1;
このpatchを適応したyamlの例(下記サーバ・チャンネルでは動作させていません)
global: plugin_path: - plugins timezone: Asia/Tokyo log: level: error plugins: - module: Subscription::Config config: feed: - RSSURL - module: Notify::IRC config: daemon_port: 9999 nickname: plaggerbot server_host: chat.freenode.net server_port: 6667 server_channels: - #plagger-test charset: utf-8 announce: notice interval: 60
この例では、intervalを60秒として追加しています。bot 側でなんとかしようかなと思いましたが、bot にキューイング機構をいれないといけないのでやめました。
interval の設定がない場合は待ち時間なしで動作しますので従来の yaml と互換を持っています。