X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=lib%2FApp%2FStatsbot.pm;h=fcc79594eefc2656742758b52de94af9b3957aa3;hb=01dcdb6958f188e5aa30f44f06989e4f0cac8e41;hp=5c0ab080450ad064fdc6f0339c941a719177a167;hpb=bc5798d368d090e32e284c5d769d207ca866e81f;p=app-statsbot.git diff --git a/lib/App/Statsbot.pm b/lib/App/Statsbot.pm index 5c0ab08..fcc7959 100644 --- a/lib/App/Statsbot.pm +++ b/lib/App/Statsbot.pm @@ -4,7 +4,7 @@ use 5.014000; use strict; use warnings; -our $VERSION = '0.001001'; +our $VERSION = '0.001002'; use POE; use POE::Component::IRC::State; @@ -31,6 +31,15 @@ our $SSL = ''; our @CHANNELS; our $DB = '/var/lib/statsbot/db'; +{ + my %cfg = (debug => \$DEBUG, tick => \$TICK, nickname => \$NICKNAME, server => \$SERVER, port => \$PORT, ssl => \$SSL, channels => \@CHANNELS, db => \$DB); + for my $var (keys %cfg) { + my $key = "STATSBOT_\U$var"; + ${$cfg{$var}} = $ENV{$key} if exists $ENV{$key} && ref $cfg{$var} eq 'SCALAR'; + @{$cfg{$var}} = split ' ', $ENV{$key} if exists $ENV{$key} && ref $cfg{$var} eq 'ARRAY'; + } +} + my $dbh; my $insert; my $update; @@ -95,6 +104,8 @@ sub bot_start{ ## no critic (RequireArgUnpacking) $_[KERNEL]->delay(tick => $TICK); $irc->plugin_add(CTCP => POE::Component::IRC::Plugin::CTCP->new( + version => "Statsbot/$VERSION", + source => 'https://metacpan.org/pod/App::Statsbot', userinfo => 'A bot which keeps logs and computes channel statistics', clientinfo => 'PING VERSION CLIENTINFO USERINFO SOURCE', )); @@ -127,10 +138,10 @@ sub on_public{ my ($targets,$message)=@_[ARG1,ARG2]; my $botnick = _nick_name; - if ($message =~ /(?:$botnick[:,])?\s*!?help\s*(.*)/) { - _yield(privmsg => $targets, "Try !presence username interval [truncate]"); - _yield(privmsg => $targets, "For example, !presence mgv '2 days'"); - _yield(privmsg => $targets, "or !presence mgv '1 year' 4"); + if ($message =~ /(?:$botnick[:,])?\s*!?help\s*(.*)/sx) { + _yield(privmsg => $targets, 'Try !presence username interval [truncate]'); + _yield(privmsg => $targets, q/For example, !presence mgv '2 days'/); + _yield(privmsg => $targets, q/or !presence mgv '1 year' 4/); return; } @@ -196,6 +207,11 @@ a channel. It is able to answer queries of the form "In the last