From 0f0d4c4209a902a252fc6e764c7bacf158b12954 Mon Sep 17 00:00:00 2001 From: William Heimbigner Date: Thu, 14 Jan 2016 16:11:04 -0700 Subject: Move channel logging hooks into the logging module, rather than calling them from the event module. --- lib/ASM/Log.pm | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'lib/ASM/Log.pm') 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'); -- cgit v1.2.3