/[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 123 by dpavlin, Fri Mar 14 14:45:04 2008 UTC revision 125 by dpavlin, Fri Mar 14 15:26:33 2008 UTC
# Line 618  sub save_message { Line 618  sub save_message {
618          $a->{me} ||= 0;          $a->{me} ||= 0;
619          $a->{time} ||= strftime($TIMESTAMP,localtime());          $a->{time} ||= strftime($TIMESTAMP,localtime());
620    
621          _log          _log "ARCHIVE",
622                  $a->{channel}, " ",                  $a->{channel}, " ",
623                  $a->{me} ? "***" . $a->{nick} : "<" . $a->{nick} . ">",                  $a->{me} ? "***" . $a->{nick} : "<" . $a->{nick} . ">",
624                  " " . $a->{message};                  " " . $a->{message};
# Line 673  POE::Component::Client::HTTP->spawn( Line 673  POE::Component::Client::HTTP->spawn(
673          Timeout => 30,          Timeout => 30,
674  );  );
675    
676    =head2 rss_parse_xml
677    
678      rss_parse_xml({
679            url => 'http://www.example.com/rss',
680            send_rss_msgs => 42,
681      });
682    
683    =cut
684    
685  sub rss_parse_xml {  sub rss_parse_xml {
686          my ($args) = @_;          my ($args) = @_;
687    
688          warn "## rss_parse_xml ",dump( @_ ) if $debug;          warn "## rss_parse_xml ",dump( @_ ) if $debug;
689    
690          # how many messages to send out when feed is seen for the first time?          # how many messages to send out when feed is seen for the first time?
691          my $send_rss_msgs = 1;          my $send_rss_msgs = $args->{send_rss_msgs};
692            $send_rss_msgs = 1 if ! defined $send_rss_msgs;
693    
694          _log "RSS fetch", $args->{url};          _log "RSS fetch first $send_rss_msgs items from", $args->{url};
695    
696          my $feed = XML::Feed->parse( \$args->{xml} );          my $feed = XML::Feed->parse( \$args->{xml} );
697          if ( ! $feed ) {          if ( ! $feed ) {
# Line 759  sub rss_parse_xml { Line 769  sub rss_parse_xml {
769          $sql .= qq{where id = } . $args->{id};          $sql .= qq{where id = } . $args->{id};
770          eval { $dbh->do( $sql ) };          eval { $dbh->do( $sql ) };
771    
772          _log "RSS got $total items of which $updates new";          _log "RSS got $total items of which $updates new from", $args->{url};
773    
774          return $updates;          return $updates;
775  }  }
776    
777  sub rss_fetch_all {  sub rss_fetch_all {
778          my $kernel = shift;          my ( $kernel, $send_rss_msgs )  = @_;
779            warn "## rss_fetch_all -- send_rss_msgs: $send_rss_msgs\n" if $debug;
780          my $sql = qq{          my $sql = qq{
781                  select id, url, name, channel, nick, private                  select id, url, name, channel, nick, private
782                  from feeds                  from feeds
# Line 778  sub rss_fetch_all { Line 789  sub rss_fetch_all {
789          warn "# ",$sth->rows," active RSS feeds\n";          warn "# ",$sth->rows," active RSS feeds\n";
790          my $count = 0;          my $count = 0;
791          while (my $row = $sth->fetchrow_hashref) {          while (my $row = $sth->fetchrow_hashref) {
792                  warn "## queued rss-fetch for ", $row->{url} if $debug;                  $row->{send_rss_msgs} = $send_rss_msgs if defined $send_rss_msgs;
793                  $_stat->{rss}->{fetch}->{ $row->{url} } = $row;                  $_stat->{rss}->{fetch}->{ $row->{url} } = $row;
794                  $kernel->post(                  $kernel->post(
795                          'rss-fetch',                          'rss-fetch',
# Line 786  sub rss_fetch_all { Line 797  sub rss_fetch_all {
797                          'rss_response',                          'rss_response',
798                          HTTP::Request->new( GET => $row->{url} ),                          HTTP::Request->new( GET => $row->{url} ),
799                  );                  );
800                    warn "## queued rss-fetch ", dump( $row ) if $debug;
801          }          }
802          return "OK, scheduled " . $sth->rows . " feeds for refresh";          return "OK, scheduled " . $sth->rows . " feeds for refresh";
803  }  }
# Line 803  sub rss_check_updates { Line 815  sub rss_check_updates {
815          # XXX send queue messages          # XXX send queue messages
816          while ( my $job = $dq->pickup_queued_job() ) {          while ( my $job = $dq->pickup_queued_job() ) {
817                  my $data = read_file( $job->get_data_path ) || die "can't load ", $job->get_data_path, ": $!";                  my $data = read_file( $job->get_data_path ) || die "can't load ", $job->get_data_path, ": $!";
 #               $kernel->post( $irc => $type => $to, $msg );  
818                  my @data = eval $data;                  my @data = eval $data;
819                  _log "IRC post from queue:", @data;                  _log "IRC post from queue:", @data;
820                  $kernel->post( $irc => @data );                  $kernel->post( $irc => @data );
# Line 822  POE::Session->create( inline_states => { Line 833  POE::Session->create( inline_states => {
833                  my $poco_object = $sender->get_heap();                  my $poco_object = $sender->get_heap();
834                  _log "connected to",$poco_object->server_name();                  _log "connected to",$poco_object->server_name();
835                  $kernel->post( $sender => join => $_ ) for @channels;                  $kernel->post( $sender => join => $_ ) for @channels;
836                  # seen RSS cache                  # seen RSS cache, so don't send out messages
837                  _log rss_fetch_all( $kernel );                  _log rss_fetch_all( $kernel, 0 );
838                  undef;                  undef;
839          },          },
840  #       irc_255 => sub {        # server is done blabbing  #       irc_255 => sub {        # server is done blabbing

Legend:
Removed from v.123  
changed lines
  Added in v.125

  ViewVC Help
Powered by ViewVC 1.1.26