X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=lib%2FApp%2FStatsbot.pm;h=8e03642918d06901de6d112590b651a6ea766b8a;hb=96f37bc42e1214ec32b276284a4e2778cc1a6fb1;hp=902f9d336668bd930d7ad6bc87d8e4ef57ae9033;hpb=d6102de2038794abd9388080c23d278632ef52e1;p=app-statsbot.git diff --git a/lib/App/Statsbot.pm b/lib/App/Statsbot.pm index 902f9d3..8e03642 100644 --- a/lib/App/Statsbot.pm +++ b/lib/App/Statsbot.pm @@ -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; @@ -129,14 +138,14 @@ sub on_public{ my ($targets,$message)=@_[ARG1,ARG2]; my $botnick = _nick_name; - if ($message =~ /(?:$botnick[:,])?\s*!?help\s*(.*)/sx) { + if ($message =~ /^(?:$botnick[:,]\s*!?|\s*!)help/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; } - return unless $message =~ /(?:$botnick[:,])?\s*!?presence\s*(.*)/sx; + return unless $message =~ /^(?:$botnick[:,])?\s*!?presence\s*(.*)/sx; my ($nick, $time, $truncate) = shellwords $1; $truncate//=-1; @@ -198,6 +207,11 @@ a channel. It is able to answer queries of the form "In the last