r27046 - in /scripts/KGB: debian/changelog server/KGB server/kgb.conf.sample
tincho at users.alioth.debian.org
tincho at users.alioth.debian.org
Fri Nov 21 21:39:16 UTC 2008
Author: tincho
Date: Fri Nov 21 21:39:10 2008
New Revision: 27046
URL: http://svn.debian.org/wsvn/?sc=1&rev=27046
Log:
server/KGB, server/kgb.conf.sample: now the bot answers when addressed on a
channel.
Modified:
scripts/KGB/debian/changelog
scripts/KGB/server/KGB
scripts/KGB/server/kgb.conf.sample
Modified: scripts/KGB/debian/changelog
URL: http://svn.debian.org/wsvn/scripts/KGB/debian/changelog?rev=27046&op=diff
==============================================================================
--- scripts/KGB/debian/changelog (original)
+++ scripts/KGB/debian/changelog Fri Nov 21 21:39:10 2008
@@ -21,5 +21,7 @@
* client/KGB_sendcommit: use v1 protocol.
* server/KGB: daemonize, handle parent/child communication during setup, and
forcefully die when POE gets silly.
+ * server/KGB, server/kgb.conf.sample: now the bot answers when addressed on a
+ channel.
-- Damyan Ivanov <dmn at debian.org> Mon, 28 Jul 2008 14:44:04 +0300
Modified: scripts/KGB/server/KGB
URL: http://svn.debian.org/wsvn/scripts/KGB/server/KGB?rev=27046&op=diff
==============================================================================
--- scripts/KGB/server/KGB (original)
+++ scripts/KGB/server/KGB Fri Nov 21 21:39:10 2008
@@ -50,6 +50,7 @@
our $config_file;
our %const = (
SOAPsvc => "SOAPServer",
+ BAsvc => "BotAddressed",
Connsvc => "Connecter",
NSsvc => "NickServID",
NRsvc => "NickReclaim",
@@ -84,6 +85,7 @@
$conf->{soap}{server_port} ||= 9999;
$conf->{soap}{server_addr} ||= "127.0.0.1";
$conf->{min_protocol_ver} = 1 unless(defined $conf->{min_protocol_ver});
+ $conf->{smart_answer} ||= "Dam hasn't taught me to speak ÑÑÑÑкий. ÑÑ Ð·Ð½Ð°ÐµÑÑ ÑÑÑÑкий?";
unless($KGB::supported_protos{$conf->{min_protocol_ver}}) {
die("Unrecognised min_protocol_ver (", $conf->{min_protocol_ver},
@@ -501,6 +503,9 @@
$irc_object->plugin_add($KGB::const{Connsvc},
POE::Component::IRC::Plugin::Connector->new());
+ $irc_object->plugin_add($KGB::const{BAsvc},
+ POE::Component::IRC::Plugin::BotAddressed->new());
+
$kernel->post($sender => connect => {
Server => $opts->{server},
Port => $opts->{port},
@@ -556,7 +561,17 @@
}
undef;
}
-
+sub irc_bot_addressed {
+ my ($kernel, $sender, $who, $where, $what) = @_[KERNEL, SENDER, ARG0, ARG1,
+ ARG2];
+ my $nick = (split /!/, $who)[0];
+ my $chan = $where->[0];
+
+ my $msg = $KGB::config->{chanidx}{$chan}{smart_answer};
+ $msg ||= $KGB::config->{smart_answer};
+ return undef unless($msg);
+ $kernel->post($sender => privmsg => $chan => $msg);
+}
package main;
use strict;
@@ -565,6 +580,7 @@
use POE;
use POE::Component::Server::SOAP;
use POE::Component::IRC::State;
+use POE::Component::IRC::Plugin::BotAddressed;
use POE::Component::IRC::Plugin::Connector;
use POE::Component::IRC::Plugin::NickReclaim;
use POE::Component::IRC::Plugin::NickServID;
@@ -635,7 +651,7 @@
"KGB::POE" => [ qw(_start _stop sighandler restarthandler
reloadhandler) ],
"KGB::IRC" => [ qw(_irc_reconnect irc_registered irc_001
- irc_public _default) ],
+ irc_public irc_bot_addressed _default) ],
"KGB::SOAP" => [ qw(commit) ],
],
# options => {trace => 1, debug => 1}
Modified: scripts/KGB/server/kgb.conf.sample
URL: http://svn.debian.org/wsvn/scripts/KGB/server/kgb.conf.sample?rev=27046&op=diff
==============================================================================
--- scripts/KGB/server/kgb.conf.sample (original)
+++ scripts/KGB/server/kgb.conf.sample Fri Nov 21 21:39:10 2008
@@ -9,6 +9,8 @@
foo:
# needs to be the same on the client
password: ~
+# Some witty answer for people that talk to the bot
+#smart_answer: "I wont speak with you!"
networks:
freenode:
nick: KGB
@@ -23,6 +25,8 @@
network: freenode
repos:
- foo
+ # Can also be set per-channel
+ #smart_answer: "I'm in ur channel, watching ur commits!"
pid_dir: /var/run/kgb-bot
# anything less is rejected
min_protocol_ver: 1
More information about the Pkg-perl-cvs-commits
mailing list