/[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 90 by dpavlin, Fri Mar 7 09:50:53 2008 UTC revision 93 by dpavlin, Fri Mar 7 10:35:04 2008 UTC
# Line 628  sub rss_fetch { Line 628  sub rss_fetch {
628                  _log("can't fetch RSS ", $args->{url});                  _log("can't fetch RSS ", $args->{url});
629                  return;                  return;
630          }          }
631    
632          my ( $total, $updates ) = ( 0, 0 );          my ( $total, $updates ) = ( 0, 0 );
633          for my $entry ($feed->entries) {          for my $entry ($feed->entries) {
634                  $total++;                  $total++;
635    
636                  # seen allready?                  # seen allready?
637                  return if $_rss->{$feed->link}->{seen}->{$entry->id}++ > 0;                  next if $_rss->{$feed->link}->{seen}->{$entry->id}++ > 0;
638    
639                  sub prefix {                  sub prefix {
640                          my ($txt,$var) = @_;                          my ($txt,$var) = @_;
641                            $var =~ s/\s+/ /gs;
642                          $var =~ s/^\s+//g;                          $var =~ s/^\s+//g;
643                            $var =~ s/\s+$//g;
644                          return $txt . $var if $var;                          return $txt . $var if $var;
645                  }                  }
646    
647                  my $msg;                  my $msg;
648                  $msg .= prefix( 'From: ' , $args->{name} || $feed->title );                  $msg .= prefix( 'From: ' , $args->{name} || $feed->title );
649                  $msg .= prefix( ' by ' , $entry->author );                  $msg .= prefix( ' by ' , $entry->author );
650                  $msg .= prefix( ' -- ' , $entry->link );                  $msg .= prefix( ' | ' , $entry->title );
651                    $msg .= prefix( ' | ' , $entry->link );
652  #               $msg .= prefix( ' id ' , $entry->id );  #               $msg .= prefix( ' id ' , $entry->id );
653    
654                  if ( $args->{kernel} && $send_rss_msgs ) {                  if ( $args->{kernel} && $send_rss_msgs ) {
655                          $send_rss_msgs--;                          $send_rss_msgs--;
656                          _log('RSS', $msg);                          _log('>>', $msg);
657                          $sth_insert_log->execute( $CHANNEL, 1, $NICK, $msg, undef );                          $sth_insert_log->execute( $CHANNEL, 1, $NICK, $msg, 'now()' );
658                          $args->{kernel}->post( $IRC_ALIAS => notice => $CHANNEL, $msg );                          $args->{kernel}->post( $IRC_ALIAS => notice => $CHANNEL, $msg );
659                          $updates++;                          $updates++;
660                  }                  }
# Line 897  POE::Session->create( inline_states => { Line 901  POE::Session->create( inline_states => {
901                          $_rss = undef;                          $_rss = undef;
902                          $dbh->do( qq{ update feeds set last_update = now() - delay } );                          $dbh->do( qq{ update feeds set last_update = now() - delay } );
903                          $res = "OK, cleaned RSS cache";                          $res = "OK, cleaned RSS cache";
904                    } elsif ($msg =~ m/^rss-list/) {
905                            my $sth = $dbh->prepare(qq{ select url,name,last_update,active from feeds });
906                            $sth->execute;
907                            while (my @row = $sth->fetchrow_array) {
908                                    $_[KERNEL]->post( $IRC_ALIAS => privmsg => $nick, join(' | ',@row) );
909                            }
910                            $res = '';
911                  } elsif ($msg =~ m!^rss-(add|remove|stop|start)\s+(http://\S+)\s*(.*)!) {                  } elsif ($msg =~ m!^rss-(add|remove|stop|start)\s+(http://\S+)\s*(.*)!) {
912                          my $sql = {                          my $sql = {
913                                  add             => qq{ insert into feeds (url,name) values (?,?) },                                  add             => qq{ insert into feeds (url,name) values (?,?) },
914  #                               remove  => qq{ delete from feeds                                where url = ? and name = ? },  #                               remove  => qq{ delete from feeds                                where url = ? and name = ? },
915                                  start   => qq{ update feeds set active = true   where url = ? -- ? },                                  start   => qq{ update feeds set active = true   where url = ? },
916                                  stop    => qq{ update feeds set active = false  where url = ? -- ? },                                  stop    => qq{ update feeds set active = false  where url = ? },
917                                                                    
918                          };                          };
919                          if (my $q = $sql->{$1} ) {                          if (my $q = $sql->{$1} ) {
920                                  my $sth = $dbh->prepare( $q );                                  my $sth = $dbh->prepare( $q );
921                                  warn "## SQL $q ( $2 | $3 )\n";                                  my @data = ( $2 );
922                                  eval { $sth->execute( $2, $3 ) };                                  push @data, $3 if ( $q =~ s/\?//g == 2 );
923                                    warn "## $1 SQL $q with ",dump( @data ),"\n";
924                                    eval { $sth->execute( @data ) };
925                          }                          }
926    
927                          $res = "OK, RSS $1 : $2 - $3";                          $res = "OK, RSS $1 : $2 - $3";

Legend:
Removed from v.90  
changed lines
  Added in v.93

  ViewVC Help
Powered by ViewVC 1.1.26