/[irc-logger]/trunk/bin/irc-logger.pl
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/bin/irc-logger.pl

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 104 by dpavlin, Sun Mar 9 00:47:38 2008 UTC revision 108 by dpavlin, Sun Mar 9 20:13:46 2008 UTC
# Line 465  sub get_from_log { Line 465  sub get_from_log {
465  #                       $row->{nick} = $nick;  #                       $row->{nick} = $nick;
466  #               }  #               }
467    
468                    $append = 0 if $row->{me};
469    
470                  if ($last_row->{nick} ne $nick) {                  if ($last_row->{nick} ne $nick) {
471                          # obfu way to find format for me_nick if needed or fallback to default                          # obfu way to find format for me_nick if needed or fallback to default
472                          my $fmt = $row->{me} ? ( $args->{fmt}->{me_nick} || $args->{fmt}->{nick} ) : $args->{fmt}->{nick};                          my $fmt = $row->{me} ? ( $args->{fmt}->{me_nick} || $args->{fmt}->{nick} ) : $args->{fmt}->{nick};
# Line 628  if ($import_dircproxy) { Line 630  if ($import_dircproxy) {
630  # RSS follow  # RSS follow
631  #  #
632    
633  my $_rss;  my $_stat;
634    
635    
636  sub rss_fetch {  sub rss_fetch {
# Line 650  sub rss_fetch { Line 652  sub rss_fetch {
652                  $total++;                  $total++;
653    
654                  # seen allready?                  # seen allready?
655                  next if $_rss->{$args->{channel}}->{$feed->link}->{$entry->id}++ > 0;                  next if $_stat->{rss}->{seen}->{$args->{channel}}->{$feed->link}->{$entry->id}++ > 0;
656    
657                  sub prefix {                  sub prefix {
658                          my ($txt,$var) = @_;                          my ($txt,$var) = @_;
# Line 679  sub rss_fetch { Line 681  sub rss_fetch {
681    
682                  if ( $args->{kernel} && $send_rss_msgs ) {                  if ( $args->{kernel} && $send_rss_msgs ) {
683                          $send_rss_msgs--;                          $send_rss_msgs--;
684                          # FIXME bug! should be save_message                          if ( ! $args->{private} ) {
685  #                       save_message( channel => $args->{channel}, me => 1, nick => $NICK, message => $msg );                                  # FIXME bug! should be save_message
686                          $sth_insert_log->execute( $args->{channel}, 1, $NICK, $msg, 'now()' );  #                               save_message( channel => $args->{channel}, me => 1, nick => $NICK, message => $msg );
687                                    $sth_insert_log->execute( $args->{channel}, 1, $NICK, $msg, 'now()' );
688                            }
689                          my ( $type, $to ) = ( 'notice', $args->{channel} );                          my ( $type, $to ) = ( 'notice', $args->{channel} );
690                          ( $type, $to ) = ( 'privmsg', $args->{nick} ) if $args->{private};                          ( $type, $to ) = ( 'privmsg', $args->{nick} ) if $args->{private};
691                          _log(">> $type $to |", $msg);                          _log(">> $type $to |", $msg);
# Line 723  sub rss_fetch_all { Line 727  sub rss_fetch_all {
727    
728  sub rss_check_updates {  sub rss_check_updates {
729          my $kernel = shift;          my $kernel = shift;
730          $_rss->{last_poll} ||= time();          $_stat->{rss}->{last_poll} ||= time();
731          my $dt = time() - $_rss->{last_poll};          my $dt = time() - $_stat->{rss}->{last_poll};
732          warn "## rss_check_updates $dt > $rss_min_delay\n";          warn "## rss_check_updates $dt > $rss_min_delay\n";
733          if ( $dt > $rss_min_delay ) {          if ( $dt > $rss_min_delay ) {
734                  $_rss->{last_poll} = time();                  $_stat->{rss}->{last_poll} = time();
735                  _log rss_fetch_all( $kernel );                  _log rss_fetch_all( $kernel );
736          }          }
737  }  }
# Line 930  POE::Session->create( inline_states => { Line 934  POE::Session->create( inline_states => {
934                  } elsif ($msg =~ m/^rss-update/) {                  } elsif ($msg =~ m/^rss-update/) {
935                          $res = rss_fetch_all( $_[KERNEL] );                          $res = rss_fetch_all( $_[KERNEL] );
936                  } elsif ($msg =~ m/^rss-clean/) {                  } elsif ($msg =~ m/^rss-clean/) {
937                          $_rss = undef;                          $_stat->{rss} = undef;
938                          $dbh->do( qq{ update feeds set last_update = now() - delay } );                          $dbh->do( qq{ update feeds set last_update = now() - delay } );
939                          $res = "OK, cleaned RSS cache";                          $res = "OK, cleaned RSS cache";
940                  } elsif ($msg =~ m/^rss-list/) {                  } elsif ($msg =~ m/^rss-list/) {
# Line 980  POE::Session->create( inline_states => { Line 984  POE::Session->create( inline_states => {
984    
985                  rss_check_updates( $_[KERNEL] );                  rss_check_updates( $_[KERNEL] );
986          },          },
987            irc_372 => sub {
988                    _log "<< motd",$_[ARG0],$_[ARG1];
989            },
990            irc_375 => sub {
991                    _log "<< motd", $_[ARG0], "start";
992            },
993            irc_376 => sub {
994                    _log "<< motd", $_[ARG0], "end";
995            },
996          irc_477 => sub {          irc_477 => sub {
997                  _log "<< irc_477: ",$_[ARG1];                  _log "<< irc_477: ",$_[ARG1];
998                  $_[KERNEL]->post( $IRC_ALIAS => privmsg => 'nickserv', "register $NICK" );                  $_[KERNEL]->post( $IRC_ALIAS => privmsg => 'nickserv', "register $NICK" );
# Line 1099  sub root_handler { Line 1112  sub root_handler {
1112          }          }
1113    
1114          my $search = $q->param('search') || $q->param('grep') || '';          my $search = $q->param('search') || $q->param('grep') || '';
1115            my $r_url = $request->url;
1116    
1117            my @commands = qw( tags last-tag follow stat );
1118            my $commands_re = join('|',@commands);
1119    
1120          if ($request->url =~ m#/rss(?:/(tags|last-tag|follow.*)\w*(?:=(\d+))?)?#i) {          if ($r_url =~ m#/rss(?:/($commands_re.*)\w*(?:=(\d+))?)?#i) {
1121                  my $show = lc($1);                  my $show = lc($1);
1122                  my $nr = $2;                  my $nr = $2;
1123    
# Line 1114  sub root_handler { Line 1131  sub root_handler {
1131                  my $feed = XML::Feed->new( $type );                  my $feed = XML::Feed->new( $type );
1132                  $feed->link( $url );                  $feed->link( $url );
1133    
1134                    my $rc = RC_OK;
1135    
1136                  if ( $show eq 'tags' ) {                  if ( $show eq 'tags' ) {
1137                          $nr ||= 50;                          $nr ||= 50;
1138                          $feed->title( "tags from $CHANNEL" );                          $feed->title( "tags from $CHANNEL" );
# Line 1183  sub root_handler { Line 1202  sub root_handler {
1202                                  $feed->add_entry( $feed_entry );                                  $feed->add_entry( $feed_entry );
1203                          }                          }
1204    
1205                    } elsif ( $show =~ m/^stat/ ) {
1206    
1207                          my $feed_entry = XML::Feed::Entry->new($type);                          my $feed_entry = XML::Feed::Entry->new($type);
1208                          $feed_entry->title( "Internal stats" );                          $feed_entry->title( "Internal stats" );
1209                          $feed_entry->content(                          $feed_entry->content(
1210                                  '<![CDATA[<pre>' . dump( $_rss ) . '</pre>]]>'                                  '<![CDATA[<pre>' . dump( $_stat ) . '</pre>]]>'
1211                          );                          );
1212                          $feed->add_entry( $feed_entry );                          $feed->add_entry( $feed_entry );
1213    
1214                  } else {                  } else {
1215                          _log "unknown rss request ",$request->url;                          _log "unknown rss request $r_url";
1216                          return RC_DENY;                          $feed->title( "unknown $r_url" );
1217                            foreach my $c ( @commands ) {
1218                                    my $feed_entry = XML::Feed::Entry->new($type);
1219                                    $feed_entry->title( "rss/$c" );
1220                                    $feed_entry->link( "$url/rss/$c" );
1221                                    $feed->add_entry( $feed_entry );
1222                            }
1223                            $rc = RC_DENY;
1224                  }                  }
1225    
1226                  $response->content( $feed->as_xml );                  $response->content( $feed->as_xml );
1227                  return RC_OK;                  return $rc;
1228          }          }
1229    
1230          if ( $@ ) {          if ( $@ ) {

Legend:
Removed from v.104  
changed lines
  Added in v.108

  ViewVC Help
Powered by ViewVC 1.1.26