##
# use strict; # TODO
+use POSIX qw(strftime);
use vars qw($msgType $uh $lastWho $ident);
use vars qw(%lang %lastWho);
}
$message =~ tr/A-Z/a-z/;
- $message =~ s/^cmd:/CMD:/;
- if (&IsChanConf("factoidSearch")) {
- @searches = split(/\s+/, &getChanConf("factoidSearch"));
- } else {
+ @searches = split(/\s+/, &getChanConfDefault('factoidSearch', '_default', $chan));
+ &::DEBUG("factoidSearch: $chan is: " . join(':', @searches));
+ # requesting the _default one, ignore factoidSearch
+ if ($message =~ /^_default\s+/) {
@searches = ('_default');
+ $message =~ s/^_default\s+//;
}
# check for factoids with each prefix
foreach $search (@searches) {
- if ($search eq '_default') {
+ if ($search eq '$chan') {
+ $factoid = "$chan $message";
+ } elsif ($search eq '_default') {
$factoid = $message;
} else {
$factoid = "$search $message";
### FLOOD REPETION AND PROTECTION. -20000124
# stats code.
- ### FIXME: old mysql doesn't support
+ ### FIXME: old mysql/sqlite doesn't support
### "requested_count=requested_count+1".
$count++;
&sqlSet("factoids", {'factoid_key' => $factoid}, {
$reply = "$lhs $mhs $result";
}
- if ($reply =~ s/^\Q$who\E is/you are/i) {
- # fix the person.
- } else {
- if ($reply =~ /^you are / or $reply =~ / you are /) {
- return if ($addressed);
- }
- }
+ $reply =~ s/^\Q$who\E is/you are/i) {
}
}
###
# don't evaluate if it has factoid arguments.
- if ($message =~ /^CMD:/i) {
- &status("Reply: not doing substVars (eval dollar vars)");
- } else {
+# if ($message =~ /^cmd:/i) {
+# &status("Reply: not doing substVars (eval dollar vars)");
+# } else {
$reply = &substVars($reply,1);
- }
+# }
$reply;
}
}
&status("Reply.pl: $done SARs done.") if ($done);
+ # <URL></URL> type
+ #
+ while ($txt =~ /<URL>(.*)<\/URL>/){
+ &status("we have to norm this <URL></URL> stuff, SARing");
+ my $foobar = $1;
+ if ($foobar =~ m/(http:\/\/[^?]+)\?(.*)/){
+ my ($pig1,$pig2) = ($1,$2);
+ &status("SARing using URLencode");
+ $pig2=~s/([^\w])/sprintf("%%%02x",ord($1))/gie;
+ $foobar=$pig1."?".$pig2;
+ }
+ $txt =~ s/<URL>(.*)<\/URL>/$foobar/;
+ }
return $txt;
}
sub substVars {
my($reply,$flag) = @_;
- # $date, $time.
+ # $date, $time, $day.
# TODO: support localtime.
- my $date = scalar(gmtime());
- $date =~ s/\:\d+(\s+\w+)\s+\d+$/$1/;
+ my $date = strftime("%Y.%m.%d", gmtime());
$reply =~ s/\$date/$date/gi;
- $date =~ s/\w+\s+\w+\s+\d+\s+//;
- $reply =~ s/\$time/$date/gi;
+ my $time = strftime("%k:%M:%S", gmtime());
+ $reply =~ s/\$time/$time/gi;
+ my $day = strftime("%A", gmtime());
+ $reply =~ s/\$day/$day/gi;
+
+ # support $ident when I have multiple nicks
+ my $mynick = $conn->nick() if $conn;
# dollar variables.
if ($flag) {
}
}
- $reply =~ s/\$ident/$ident/g;
+ $reply =~ s/\$ident/$mynick/g;
if ($reply =~ /\$startTime/) {
my $time = scalar(gmtime $^T);