--- trunk/bin/irc-logger.pl 2007/12/16 20:06:47 73 +++ trunk/bin/irc-logger.pl 2007/12/20 22:46:16 75 @@ -507,8 +507,8 @@ } if ( @tags ) { - shift @last_tags if $#last_tags == $last_x_tags; - push @last_tags, { tags => [ @tags ], %$arg }; + pop @last_tags if $#last_tags == $last_x_tags; + unshift @last_tags, { tags => [ @tags ], %$arg }; } } @@ -520,7 +520,7 @@ =cut sub seed_tags { - my $sth = $dbh->prepare(qq{ select id,message,nick,me,time from log where message like '%//%' }); + my $sth = $dbh->prepare(qq{ select id,message,nick,me,time from log where message like '%//%' order by time asc }); $sth->execute; while (my $row = $sth->fetchrow_hashref) { add_tag( %$row ); @@ -979,12 +979,12 @@ $response->content_type( 'application/' . lc($type) . '+xml' ); my $html = ''; - warn "create $type feed from ",dump( @last_tags ); + #warn "create $type feed from ",dump( @last_tags ); my $feed = XML::Feed->new( $type ); $feed->title( "last $last_x_tags from $CHANNEL" ); -# $feed->link( "http://$http_hostname:$http_port" ); + $feed->link( $url ); $feed->description( "collects messages which have tags// in them" ); foreach my $m ( @last_tags ) { @@ -995,13 +995,15 @@ $feed_entry->author( $m->{nick} ); $feed_entry->link( '/#' . $m->{id} ); $feed_entry->issued( DateTime::Format::Flexible->build( $m->{time} ) ); + + my $message = $filter->{message}->( $m->{message} ); + $message .= "
\n" unless $message =~ m!<(/p|br/?)>!; + warn "## message = $message\n"; + from_to( $message, $ENCODING, 'UTF-8' ); + #$feed_entry->summary( $feed_entry->content( - '{nick}->( $m->{nick} ) . -# '' . $m->{nick} . ' ' . - $filter->{message}->( $m->{message} ) . - "
\n]]>" + "" ); $feed_entry->category( join(', ', @{$m->{tags}}) ); $feed->add_entry( $feed_entry ); @@ -1097,7 +1099,7 @@ }; $response->content( $html ); - warn "<< ", $request->method, $request->uri, " created ", length($html), " bytes\n"; + warn "<< ", $request->method, " ", $request->uri, " created ", length($html), " bytes\n"; return RC_OK; }