--- trunk/irc-logger.pl 2006/03/24 23:19:57 22
+++ trunk/bin/irc-logger.pl 2007/02/03 12:50:45 48
@@ -10,6 +10,20 @@
./irc-logger.pl
+=head2 Options
+
+=over 4
+
+=item --import-dircproxy=filename
+
+Import log from C to C database
+
+=item --log=irc-logger.log
+
+Name of log file
+
+=back
+
=head1 DESCRIPTION
log all conversation on irc channel
@@ -18,13 +32,17 @@
## CONFIG
-my $NICK = 'irc-logger-dev';
+my $HOSTNAME = `hostname`;
+
+my $NICK = 'irc-logger';
+$NICK .= '-dev' if ($HOSTNAME =~ m/llin/);
my $CONNECT =
{Server => 'irc.freenode.net',
Nick => $NICK,
Ircname => "try /msg $NICK help",
};
my $CHANNEL = '#razmjenavjestina';
+$CHANNEL = '#irc-logger' if ($HOSTNAME =~ m/llin/);
my $IRC_ALIAS = "log";
my %FOLLOWS =
@@ -36,6 +54,9 @@
my $DSN = 'DBI:Pg:dbname=' . $NICK;
my $ENCODING = 'ISO-8859-2';
+my $TIMESTAMP = '%Y-%m-%d %H:%M:%S';
+
+my $sleep_on_error = 5;
## END CONFIG
@@ -44,10 +65,28 @@
use POE qw(Component::IRC Wheel::FollowTail Component::Server::HTTP);
use HTTP::Status;
use DBI;
-use Encode qw/from_to/;
+use Encode qw/from_to is_utf8/;
use Regexp::Common qw /URI/;
use CGI::Simple;
+use HTML::TagCloud;
+use POSIX qw/strftime/;
+use HTML::CalendarMonthSimple;
+use Getopt::Long;
+use DateTime;
+use Data::Dump qw/dump/;
+
+my $import_dircproxy;
+my $log_path;
+GetOptions(
+ 'import-dircproxy:s' => \$import_dircproxy,
+ 'log:s' => \$log_path,
+);
+open(STDOUT, '>', $log_path) || warn "can't redirect log to $log_path: $!";
+
+sub _log {
+ print strftime($TIMESTAMP,localtime()), ' ', join(" ",@_), $/;
+}
my $dbh = DBI->connect($DSN,"","", { RaiseError => 1, AutoCommit => 1 }) || die $DBI::errstr;
@@ -78,10 +117,13 @@
my $sth = $dbh->prepare(qq{
insert into log
- (channel, me, nick, message)
-values (?,?,?,?)
+ (channel, me, nick, message, time)
+values (?,?,?,?,?)
});
+my $tags;
+my $tag_regex = '\b([\w-_]+)//';
+
=head2 get_from_log
my @messages = get_from_log(
@@ -101,6 +143,7 @@
}
},
context => 5,
+ full_rows => 1,
);
Order is important. Fields are first passed through C (if available) and
@@ -108,14 +151,16 @@
C defines number of messages around each search hit for display.
+C will return database rows for each result with C, C
}
- );
+ );
+ }
+
+ $html .= qq{
+
+ See history of all messages.
+ };
+
+ $response->content( $html );
return RC_OK;
}