--- trunk/bin/irc-logger.pl 2008/06/07 13:10:15 139
+++ trunk/bin/irc-logger.pl 2009/12/19 21:21:47 143
@@ -139,12 +139,13 @@
# protect HTML from wiki modifications
sub e {
my $t = shift;
- return 'uri_unescape{' . uri_escape($t, '^a-zA-Z0-9') . '}';
+ eval { $t = 'uri_unescape{' . uri_escape($t, '^a-zA-Z0-9') . '}'; };
+ return $t;
}
$m =~ s/($escape_re)/$escape{$1}/gs;
$m =~ s#($RE{URI}{HTTP})#e(qq{$1})#egs;
- $m =~ s#\/(\w+)\/#$1#gs;
+# $m =~ s#\/(\w+)\/#$1#gs;
$m =~ s#$tag_regex#e(qq{$1})#egs;
$m =~ s#\*(\w+)\*#$1#gs;
$m =~ s#_(\w+)_#$1#gs;
@@ -255,13 +256,20 @@
eval { $sth->execute( $value, $nick, $channel, $name ) };
- # error or no result
- if ( $@ || ! $sth->rows ) {
+ if ( $@ ) {
+ # error
+ _log("META ERROR: $@");
+ } elsif ( ! $sth->rows ) {
+ # no result -> add new
$sth = $dbh->prepare(qq{ insert into meta (value,nick,channel,name,changed) values (?,?,?,?,now()) });
- $sth->execute( $value, $nick, $channel, $name );
- warn "## created $nick/$channel/$name = $value\n";
+ eval { $sth->execute( $value, $nick, $channel, $name ); };
+ if ( $@ ) {
+ _log "META ERROR: $@";
+ } else {
+ _log "META: created $nick/$channel/$name = $value\n";
+ }
} else {
- warn "## updated $nick/$channel/$name = $value\n";
+ _log "META: updated $nick/$channel/$name = $value\n";
}
return $value;
@@ -556,8 +564,11 @@
" " . $a->{message};
eval { $sth_insert_log->execute($a->{channel}, $a->{me}, $a->{nick}, $a->{message}, $a->{time}); };
- _log "ERROR: can't archive ", $a->{message} if $@;
- $cloud->add_tag( id => $dbh->last_insert_id(undef,undef,"log",undef), %$a );
+ if ( $@ ) {
+ _log "ERROR: can't archive ", $a->{message};
+ } else {
+ $cloud->add_tag( id => $dbh->last_insert_id(undef,undef,"log",undef), %$a );
+ }
}
@@ -626,7 +637,8 @@
warn "## RSS fetch first $send_rss_msgs items from", $args->{url} if $debug;
- my $feed = XML::Feed->parse( \$args->{xml} );
+ my $feed;
+ eval { $feed = XML::Feed->parse( \$args->{xml} ) };
if ( ! $feed ) {
_log "can't fetch RSS ", $args->{url}, XML::Feed->errstr;
return;
@@ -1161,6 +1173,17 @@
return RC_OK if $request->uri =~ m/favicon.ico$/;
+ if ( $request->uri =~ m/robots.txt$/ ) {
+ $response->content_type( 'text/plain' );
+ $response->content( qq{
+
+User-Agent: *
+Disallow: *
+
+ });
+ return RC_OK;
+ }
+
my $q;
if ( $request->method eq 'POST' ) {
@@ -1283,7 +1306,8 @@
$rc = RC_DENY;
}
- $response->content( $feed->as_xml );
+ eval { $response->content( $feed->as_xml ); };
+ $rc = RC_INTERNAL_SERVER_ERROR if $@;
return $rc;
}