summaryrefslogtreecommitdiffstats
path: root/lib/ASM/Log.pm
diff options
context:
space:
mode:
authorLibravatarWilliam Heimbigner <william.heimbigner@gmail.com>2016-01-14 16:11:04 -0700
committerLibravatarWilliam Heimbigner <william.heimbigner@gmail.com>2016-01-14 16:11:04 -0700
commit0f0d4c4209a902a252fc6e764c7bacf158b12954 (patch)
treeb09ccc84bbdfbbd42e9021fc9d911d176d9e7e8f /lib/ASM/Log.pm
parent037bc83e73761411214d3963c3c17c77a853dd11 (diff)
Move channel logging hooks into the logging module, rather than calling them from the event module.
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');