--- trunk/bin/irc-logger.pl 2008/03/06 22:16:27 85 +++ trunk/bin/irc-logger.pl 2008/03/06 22:57:16 86 @@ -55,6 +55,7 @@ my $DSN = 'DBI:Pg:dbname=' . $NICK; +# log output encoding my $ENCODING = 'ISO-8859-2'; my $TIMESTAMP = '%Y-%m-%d %H:%M:%S'; @@ -110,7 +111,9 @@ open(STDOUT, '>', $log_path) || warn "can't redirect log to $log_path: $!"; sub _log { - print strftime($TIMESTAMP,localtime()), ' ', join(" ",@_), $/; + my $out = strftime($TIMESTAMP,localtime()) . ' ' . join(" ",@_) . $/; + from_to( $out, 'UTF-8', $ENCODING ); + print $out; } # LOG following @@ -174,6 +177,7 @@ }; my $dbh = DBI->connect($DSN,"","", { RaiseError => 1, AutoCommit => 1 }) || die $DBI::errstr; +$dbh->do( qq{ set client_encoding = 'UTF-8' } ); my $sql_schema = { log => qq{ @@ -206,7 +210,7 @@ id serial, url text not null, name text, - delay interval not null default '30 sec', --'5 min', + delay interval not null default '5 min', active boolean default true, last_update timestamp default 'now()', polls int default 0, @@ -599,8 +603,6 @@ $a->{me} ? "***" . $a->{nick} : "<" . $a->{nick} . ">", " " . $a->{message}; - from_to($a->{message}, 'UTF-8', $ENCODING); - $sth->execute($a->{channel}, $a->{me}, $a->{nick}, $a->{message}, $a->{time}); add_tag( id => $dbh->last_insert_id(undef,undef,"log",undef), %$a ); } @@ -676,20 +678,20 @@ $msg .= prefix( ' -- ' , $entry->link ); # $msg .= prefix( ' id ' , $entry->id ); - _log('RSS', $msg); - if ( $args->{kernel} && $send_rss_msgs ) { warn "# sending to $CHANNEL\n"; $send_rss_msgs--; $args->{kernel}->post( $IRC_ALIAS => notice => $CHANNEL, $msg ); $updates++; + save_message( channel => $CHANNEL, me => 1, nick => $NICK, message => $msg ); + _log('RSS', $msg); } } my $sql = qq{ update feeds set last_update = now(), polls = polls + 1 }; $sql .= qq{, updates = updates + $updates } if $updates; $sql .= qq{where id = } . $args->{id}; - $dbh->do( $sql ); + eval { $dbh->do( $sql ) }; return $updates; } @@ -799,7 +801,6 @@ my $nick = (split /!/, $_[ARG0])[0]; my $msg = $_[ARG2]; my $channel = $_[ARG1]->[0]; - from_to($msg, 'UTF-8', $ENCODING); my $res = "unknown command '$msg', try /msg $NICK help!"; my @out; @@ -843,7 +844,6 @@ foreach my $res (get_from_log( limit => $limit )) { _log "last: $res"; - from_to($res, $ENCODING, 'UTF-8'); $_[KERNEL]->post( $IRC_ALIAS => privmsg => $nick, $res ); } @@ -858,7 +858,6 @@ search => $what, )) { _log "search [$what]: $res"; - from_to($res, $ENCODING, 'UTF-8'); $_[KERNEL]->post( $IRC_ALIAS => privmsg => $nick, $res ); } @@ -952,7 +951,6 @@ if ($res) { _log ">> [$nick] $res"; - from_to($res, $ENCODING, 'UTF-8'); $_[KERNEL]->post( $IRC_ALIAS => privmsg => $nick, $res ); } @@ -1183,7 +1181,6 @@ 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( @@ -1227,7 +1224,7 @@ warn "$@"; } - $response->content_type("text/html; charset=$ENCODING"); + $response->content_type("text/html; charset=UTF-8"); my $html = qq{$NICK