|
|
@@ -1,32 +1,31 @@
|
|
|
-# This is a template for creating your own logfile parser. After making the
|
|
|
-# necessary changes to the template, you will need to add the new module to
|
|
|
-# pisg.pl and add an entry for it in the choose_log_format subroutine.
|
|
|
+# This is a template for creating your own logfile parser. You can also look
|
|
|
+# in the other .pm files in this directory as good examples.
|
|
|
|
|
|
package Pisg::Parser::Format::Template;
|
|
|
|
|
|
use strict;
|
|
|
$^W = 1;
|
|
|
|
|
|
-# These three variables are regular expressions for extracting information
|
|
|
-# from the logfile. $normalline is for lines where the person merely said
|
|
|
-# something, $actionline is for lines where the person performed an action,
|
|
|
-# and# $thirdline matches everything else, including things like kicks, nick
|
|
|
+# The 3 variables in the new subrountine, 'normalline', 'actionline' and
|
|
|
+# 'thirdline' represents regular expressions for extracting information from
|
|
|
+# the logfile. normalline is for lines where the person merely said
|
|
|
+# something, actionline is for lines where the person performed an action,
|
|
|
+# and thirdline matches everything else, including things like kicks, nick
|
|
|
# changes, and op grants. See the thirdline subroutine for a list of
|
|
|
# everything it should match.
|
|
|
-my $normalline = '';
|
|
|
-my $actionline = '';
|
|
|
-my $thirdline = '';
|
|
|
|
|
|
-my ($debug);
|
|
|
-
|
|
|
-
|
|
|
-# The $debug subroutine needs to be passed to the module so output will go
|
|
|
-# to the correct file.
|
|
|
sub new
|
|
|
{
|
|
|
- my $self = shift;
|
|
|
- $debug = shift;
|
|
|
- return bless {};
|
|
|
+ my $type = shift;
|
|
|
+ my $self = {
|
|
|
+ debug => $_[0],
|
|
|
+ normalline => '',
|
|
|
+ actionline => '',
|
|
|
+ thirdline => '',
|
|
|
+ };
|
|
|
+
|
|
|
+ bless($self, $type);
|
|
|
+ return $self;
|
|
|
}
|
|
|
|
|
|
# Parse a normal line - returns a hash with 'hour', 'nick' and 'saying'
|
|
|
@@ -35,8 +34,8 @@ sub normalline
|
|
|
my ($self, $line, $lines) = @_;
|
|
|
my %hash;
|
|
|
|
|
|
- if ($line =~ /$normalline/) {
|
|
|
- $debug->("[$lines] Normal: $1 $2 $3");
|
|
|
+ if ($line =~ /$self->{normalline}/) {
|
|
|
+ $self->{debug}->("[$lines] Normal: $1 $2 $3");
|
|
|
|
|
|
# Most log formats are regular enough that you can just match the
|
|
|
# appropriate things with parentheses in the regular expression.
|
|
|
@@ -57,8 +56,8 @@ sub actionline
|
|
|
my ($self, $line, $lines) = @_;
|
|
|
my %hash;
|
|
|
|
|
|
- if ($line =~ /$actionline/) {
|
|
|
- $debug->("[$lines] Action: $1 $2 $3");
|
|
|
+ if ($line =~ /$self->{actionline}/) {
|
|
|
+ $self->{debug}->("[$lines] Action: $1 $2 $3");
|
|
|
|
|
|
# Most log formats are regular enough that you can just match the
|
|
|
# appropriate things with parentheses in the regular expression.
|
|
|
@@ -93,8 +92,8 @@ sub thirdline
|
|
|
my ($self, $line, $lines) = @_;
|
|
|
my %hash;
|
|
|
|
|
|
- if ($line =~ /$thirdline/) {
|
|
|
- $debug->("[$lines] ***: $1 $2 $3 $4 $5 $6 $7 $8 $9");
|
|
|
+ if ($line =~ /$self->{thirdline}/) {
|
|
|
+ $self->{debug}->("[$lines] ***: $1 $2 $3 $4 $5 $6 $7 $8 $9");
|
|
|
|
|
|
$hash{hour} = $1;
|
|
|
$hash{min} = $2;
|