/[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 107 by dpavlin, Sun Mar 9 19:50:41 2008 UTC revision 108 by dpavlin, Sun Mar 9 20:13:46 2008 UTC
# Line 630  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 652  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 727  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 934  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 1112  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          if ($request->url =~ m#/rss(?:/(tags|last-tag|follow.*)\w*(?:=(\d+))?)?#i) {          my @commands = qw( tags last-tag follow stat );
1118            my $commands_re = join('|',@commands);
1119    
1120            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 1127  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 1196  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.107  
changed lines
  Added in v.108

  ViewVC Help
Powered by ViewVC 1.1.26