--- 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{