summaryrefslogtreecommitdiffstats
path: root/lib/ASM/Log.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ASM/Log.pm')
-rw-r--r--lib/ASM/Log.pm19
1 files changed, 16 insertions, 3 deletions
diff --git a/lib/ASM/Log.pm b/lib/ASM/Log.pm
index e922d88..b05dbf0 100644
--- a/lib/ASM/Log.pm
+++ b/lib/ASM/Log.pm
@@ -4,17 +4,30 @@ no autovivification;
use warnings;
use strict;
+use ASM::Util;
use POSIX qw(strftime);
no if $] >= 5.017011, warnings => 'experimental::smartmatch';
sub new
{
my $module = shift;
- my $config = shift;
+ my ($conn) = @_;
my $self = {};
- $self->{CONFIG} = $config;
+ $self->{CONFIG} = $::settings->{log};
$self->{backlog} = {};
+ $self->{CONN} = $conn;
bless($self);
+ mkdir($self->{CONFIG}->{dir});
+ $conn->add_handler('public', sub { logg($self, @_); }, "before");
+ $conn->add_handler('join', sub { logg($self, @_); }, "before");
+ $conn->add_handler('part', sub { logg($self, @_); }, "before");
+ $conn->add_handler('caction', sub { logg($self, @_); }, "before");
+ $conn->add_handler('nick', sub { logg($self, @_); }, "after"); #allow state tracking to molest this
+ $conn->add_handler('quit', sub { logg($self, @_); }, "before");
+ $conn->add_handler('kick', sub { logg($self, @_); }, "before");
+ $conn->add_handler('notice', sub { logg($self, @_); }, "before");
+ $conn->add_handler('mode', sub { logg($self, @_); }, "before");
+ $conn->add_handler('topic', sub { logg($self, @_); }, "before");
return $self;
}
@@ -52,7 +65,7 @@ sub sqlIncident
sub logg
{
my $self = shift;
- my ($event) = @_;
+ my ($conn, $event) = @_;
my $cfg = $self->{CONFIG};
my @chans = @{$event->{to}};
@chans = ( $event->{args}->[0] ) if ($event->{type} eq 'kick');