package Pisg::Parser::Format::craftirc;
# Documentation for the Pisg::Parser::Format modules is found in Template.pm
use strict;
$^W = 1;
sub new
{
my ($type, %args) = @_;
my $self = {
cfg => $args{cfg},
normalline => '^\[(\d+):\d+(?:\:\d+)?\] <[^>]+> \[([\ds\-_])\] (.*)$',
actionline => '^\[(\d+):\d+(?:\:\d+)?\] Action: (\S+) (.*)$',
thirdline => '^\[(\d+):(\d+)(?:\:\d+)?\] <[^>]+> \[(\S+) ([dis]?connected)\]$',
};
bless($self, $type);
return $self;
}
sub normalline
{
my ($self, $line, $lines) = @_;
my %hash;
if ($line =~ /$self->{normalline}/o) {
$hash{hour} = $1;
$hash{nick} = $2;
$hash{saying} = $3;
return \%hash;
} else {
return;
}
}
sub actionline
{
my ($self, $line, $lines) = @_;
my %hash;
if ($line =~ /$self->{actionline}/o) {
$hash{hour} = $1;
$hash{nick} = $2;
$hash{saying} = $3;
return \%hash;
} else {
return;
}
}
sub thirdline
{
my ($self, $line, $lines) = @_;
my %hash;
if ($line =~ /$self->{thirdline}/o) {
$hash{hour} = $1;
$hash{min} = $2;
$hash{nick} = $3;
if ($4 eq 'connected') {
$hash{newjoin} = $3;
}
return \%hash;
} else {
return;
}
}
1;