--- trunk/bin/irc-logger.pl 2007/04/14 12:45:03 60
+++ trunk/bin/irc-logger.pl 2007/06/08 12:07:45 63
@@ -73,7 +73,9 @@
use HTML::CalendarMonthSimple;
use Getopt::Long;
use DateTime;
+use URI::Escape;
use Data::Dump qw/dump/;
+use DateTime::Format::ISO8601;
my $use_twitter = 1;
eval { require Net::Twitter; };
@@ -260,7 +262,10 @@
$sql .= " where message ilike ? or nick ilike ? " if ($args->{search});
$sql .= " where id in (" . join(",", @{ $tags->{ $args->{tag} } }) . ") " if ($args->{tag} && $tags->{ $args->{tag} });
- $sql .= " where date(time) = ? " if ($args->{date});
+ if ($args->{date}) {
+ $args->{date} = DateTime::Format::ISO8601->parse_datetime( $args->{date} )->ymd;
+ $sql .= " where date(time) = ? ";
+ }
$sql .= " order by log.time desc";
$sql .= " limit " . $args->{limit} if ($args->{limit});
@@ -941,12 +946,21 @@
filter => {
message => sub {
my $m = shift || return;
+
+ # protect HTML from wiki modifications
+ sub e {
+ my $t = shift;
+ return 'uri_unescape{' . uri_escape($t) . '}';
+ }
+
$m =~ s/($escape_re)/$escape{$1}/gs;
- $m =~ s#($RE{URI}{HTTP})#$1#gs;
- $m =~ s#$tag_regex#$1#g;
+ $m =~ s#($RE{URI}{HTTP})#e(qq{$1})#egs;
+ $m =~ s#$tag_regex#e(qq{$1})#egs;
$m =~ s#\*(\w+)\*#$1#gs;
$m =~ s#_(\w+)_#$1#gs;
$m =~ s#\/(\w+)\/#$1#gs;
+
+ $m =~ s#uri_unescape{([^}]+)}#uri_unescape($1)#egs;
return $m;
},
nick => sub {