--- trunk/bin/irc-logger.pl 2008/03/07 10:13:45 91 +++ trunk/bin/irc-logger.pl 2008/03/07 10:50:16 94 @@ -628,29 +628,44 @@ _log("can't fetch RSS ", $args->{url}); return; } + my ( $total, $updates ) = ( 0, 0 ); for my $entry ($feed->entries) { $total++; # seen allready? - return if $_rss->{$feed->link}->{seen}->{$entry->id}++ > 0; + next if $_rss->{$feed->link}->{seen}->{$entry->id}++ > 0; sub prefix { my ($txt,$var) = @_; + $var =~ s/\s+/ /gs; $var =~ s/^\s+//g; + $var =~ s/\s+$//g; return $txt . $var if $var; } + # fix absolute and relative links to feed entries + my $link = $entry->link; + if ( $link =~ m!^/! ) { + my $host = $args->{url}; + $host =~ s!^(http://[^/]+).*$!$1!; #!vim + $link = "$host/$link"; + } elsif ( $link !~ m!^http! ) { + $link = $args->{url} . $link; + } + $link =~ s!//+!/!g; + my $msg; $msg .= prefix( 'From: ' , $args->{name} || $feed->title ); $msg .= prefix( ' by ' , $entry->author ); - $msg .= prefix( ' -- ' , $entry->link ); + $msg .= prefix( ' | ' , $entry->title ); + $msg .= prefix( ' | ' , $link ); # $msg .= prefix( ' id ' , $entry->id ); if ( $args->{kernel} && $send_rss_msgs ) { $send_rss_msgs--; - _log('RSS', $msg); - $sth_insert_log->execute( $CHANNEL, 1, $NICK, $msg, undef ); + _log('>>', $msg); + $sth_insert_log->execute( $CHANNEL, 1, $NICK, $msg, 'now()' ); $args->{kernel}->post( $IRC_ALIAS => notice => $CHANNEL, $msg ); $updates++; } @@ -910,7 +925,6 @@ # remove => qq{ delete from feeds where url = ? and name = ? }, start => qq{ update feeds set active = true where url = ? }, stop => qq{ update feeds set active = false where url = ? }, - }; if (my $q = $sql->{$1} ) { my $sth = $dbh->prepare( $q );