X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=src%2FIRC%2FIrcHooks.pl;h=158cf548283c37c25778296d9fc232c144da61c0;hb=6dfa6a067c36ec300f3a38d40bab28cb6ed8366b;hp=9fee8308553f81f5b2fa3a24ad8dd734fc3908cc;hpb=cf4b82d19e44de37c6f154caa380f72e706b51cf;p=infobot.git diff --git a/src/IRC/IrcHooks.pl b/src/IRC/IrcHooks.pl index 9fee830..158cf54 100644 --- a/src/IRC/IrcHooks.pl +++ b/src/IRC/IrcHooks.pl @@ -150,7 +150,7 @@ sub on_ison { &DEBUG("on_ison: x1 = '$x1', x2 => '$x2'"); } -sub on_endofmotd { +sub on_connected { $conn = shift(@_); # update IRCStats. @@ -170,12 +170,9 @@ sub on_endofmotd { if ( scalar keys %users < 2 ) { &status( '!' x 40 ); - &status( -"!!! Ok. Now type '/msg $ident PASS ' to get master access through DCC CHAT." - ); + &status("!!! Ok. Now type '/msg $ident PASS ' to get master access through DCC CHAT."); &status( '!' x 40 ); } - # end of first time run. if ( &IsChanConf('Wingate') > 0 ) { @@ -213,12 +210,10 @@ sub on_endofmotd { # Q, as on quakenet.org. if ( &IsParam('Q_pass') ) { &status('Authing to Q...'); - &rawout( -"PRIVMSG Q\@CServe.quakenet.org :AUTH $param{'Q_user'} $param{'Q_pass'}" - ); + &rawout("PRIVMSG Q\@CServe.quakenet.org :AUTH $param{'Q_user'} $param{'Q_pass'}"); } - &status('End of motd. Now lets join some channels...'); + &status("$ident End of motd. Now lets join some channels..."); #&joinNextChan(); } @@ -468,7 +463,7 @@ sub on_endofnames { &chanServCheck($chan); - # schedule used to solve ircu (OPN) "target too fast" problems. + # schedule used to solve ircu (OPN) 'target too fast' problems. $conn->schedule( 5, sub { &joinNextChan(); } ); } @@ -816,24 +811,25 @@ sub on_notice { my $nick = $event->nick(); my $chan = ( $event->to )[0]; my $args = ( $event->args )[0]; + my $mynick = $conn->nick(); if ( $nick =~ /^NickServ$/i ) { # nickserv. - &status("NickServ: <== '$args'"); + &status("NickServ: $mynick <== '$args'"); my $check = 0; $check++ if ( $args =~ /^This nickname is registered/i ); $check++ if ( $args =~ /nickname.*owned/i ); if ($check) { - &status("nickserv told us to register; doing it."); + &status("nickserv told $mynick to register; doing it."); if ( &IsParam('nickServ_pass') ) { - &status("NickServ: ==> Identifying."); + &status("NickServ: ==> Identifying as $mynick."); &rawout("PRIVMSG NickServ :IDENTIFY $param{'nickServ_pass'}"); return; } else { - &status("We can't tell nickserv a passwd ;("); + &status("$mynick can't tell nickserv a passwd ;("); } } @@ -844,8 +840,7 @@ sub on_notice { foreach ( &ChanConfList('chanServ_ops') ) { next unless &chanServCheck($_); next if ($done); - &DEBUG( - "nickserv activated or restarted; doing chanserv check."); + &DEBUG('nickserv activated or restarted; doing chanserv check.'); $done++; } @@ -874,7 +869,7 @@ sub on_other { my $chan = ( $event->to )[0]; my $nick = $event->nick; - &status("!!! other called."); + &status('!!! other called.'); &status("!!! $event->args"); } @@ -928,7 +923,7 @@ sub on_ping_reply { my $nick = $event->nick; my $t = ( $event->args )[1]; if ( !defined $t ) { - &WARN("on_ping_reply: t == undefined."); + &WARN('on_ping_reply: t == undefined.'); return; } @@ -954,7 +949,7 @@ sub on_public { # rare case should this happen - catch it just in case. if ( $bot_pid != $$ ) { - &ERROR("run-away fork; exiting."); + &ERROR('run-away fork; exiting.'); &delForked($forker); } @@ -969,7 +964,7 @@ sub on_public { # cache it. my $time = time(); if ( !$cache{ircTextCounters} ) { - &DEBUG("caching ircTextCounters for first time."); + &DEBUG('caching ircTextCounters for first time.'); my @str = split( /\s+/, &getChanConf('ircTextCounters') ); for (@str) { $_ = quotemeta($_); } $cache{ircTextCounters} = join( '|', @str ); @@ -982,7 +977,7 @@ sub on_public { &VERB( "textcounters: $x matched for $who", 2 ); my $c = $chan || 'PRIVATE'; - # better to do "counter=counter+1". + # better to do 'counter=counter+1'. # but that will avoid time check. my ( $v, $t ) = &sqlSelect( 'stats', @@ -1201,11 +1196,17 @@ sub on_crversion { } push( @vernick, $nick ); + &DEBUG("on_crversion: Got '$ver' from $nick"); + if ( $ver =~ /bitchx/i ) { $ver{bitchx}{$nick} = $ver; } - elsif ( $ver =~ /xc\!|xchat/i ) { + elsif ( $ver =~ /infobot/i ) { + $ver{infobot}{$nick} = $ver; + + } + elsif ( $ver =~ /(xc\!|xchat)/i ) { $ver{xchat}{$nick} = $ver; } @@ -1213,20 +1214,19 @@ sub on_crversion { $ver{irssi}{$nick} = $ver; } - elsif ( $ver =~ /epic|(Third Eye)/i ) { + elsif ( $ver =~ /(epic|Third Eye)/i ) { $ver{epic}{$nick} = $ver; } - elsif ( $ver =~ /ircII|PhoEniX/i ) { + elsif ( $ver =~ /(ircII|PhoEniX)/i ) { $ver{ircII}{$nick} = $ver; } elsif ( $ver =~ /mirc/i ) { - - # &DEBUG("verstats: mirc: $nick => '$ver'."); + # Apparently, mIRC gets the reply as "VERSION " and doesnt like the + # space, so mirc matching is considered bugged. $ver{mirc}{$nick} = $ver; - # ok... then we get to the lesser known/used clients. } elsif ( $ver =~ /ircle/i ) { $ver{ircle}{$nick} = $ver;