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