+ # cache it.
+ my $time = time();
+ if (!$cache{ircTextCounters}) {
+ &DEBUG("caching ircTextCounters for first time.");
+ my @str = split(/\s+/, &getChanConf("ircTextCounters"));
+ for (@str) { $_ = quotemeta($_); }
+ $cache{ircTextCounters} = join('|', @str);
+ }
+
+ my $str = $cache{ircTextCounters};
+ if ($str && $msg =~ /^($str)[\s!\.]?$/i) {
+ my $x = $1;
+
+ &VERB("textcounters: $x matched for $who",2);
+ my $c = $chan || "PRIVATE";
+
+ # better to do "counter=counter+1".
+ # but that will avoid time check.
+ my ($v,$t) = &sqlSelect("stats", "counter,time", {
+ nick => $who,
+ type => $x,
+ channel => $c,
+ } );
+ $v++;
+
+ # don't allow ppl to cheat the stats :-)
+ if (defined $t && $time - $t > 60) {
+ &sqlReplace("stats", {
+ nick => $who,
+ type => $x,
+ channel => $c,
+ time => $time,
+ counter => $v,
+ } );
+ }
+ }