for (lc $lhs) {
# allow the following only if they have been made on purpose.
- if ($rhs ne "" and $rhs !~ /^</) {
+ if ($rhs ne '' and $rhs !~ /^</) {
/ \Q$ident$/i and last; # someone said i'm something.
/^i('m)? / and last;
/^(it|that|there|what)('s)?(\s+|$)/ and last;
/^learn / and last; # teach. damn morons.
/^tell (\S+) about / and last; # tell.
/\=\~/ and last; # substituition.
- /^\S+ to \S+ \S+/ and last; # babelfish.
/^\=/ and last; # botnick = heh is.
/wants you to know/ and last;
if ($param{'acceptUrl'} !~ /REQUIRE/ or $rhs =~ /(http|ftp|mailto|telnet|file):/) {
&msg($target, "$who knew: $lhs $mhs $rhs");
- # "are" hack :)
- $rhs = "<REPLY> are" if ($mhs eq "are");
- &setFactInfo($lhs, "factoid_value", $rhs);
+ # 'are' hack :)
+ $rhs = "<REPLY> are" if ($mhs eq 'are');
+ &setFactInfo($lhs, 'factoid_value', $rhs);
}
return 'INFOBOT REPLY';
return 'forget: no addr' unless ($addressed);
my $faqtoid = $message;
- if ($faqtoid eq "") {
- &help("forget");
+ if ($faqtoid eq '') {
+ &help('forget');
return;
}
# if it doesn't exist, well... it doesn't!
if (!defined $result) {
- &performReply("i didn't have anything called '$faqtoid'");
+ &performReply("i didn't have anything called '$faqtoid' to forget");
return;
}
- # todo: squeeze 3 getFactInfo calls into one?
- my $author = &getFactInfo($faqtoid, "created_by");
- my $count = &getFactInfo($faqtoid, "requested_count") || 0;
+ # TODO: squeeze 3 getFactInfo calls into one?
+ my $author = &getFactInfo($faqtoid, 'created_by');
+ my $count = &getFactInfo($faqtoid, 'requested_count') || 0;
# don't delete if requested $limit times
- my $limit = &getChanConfDefault(
- "factoidPreventForgetLimit", 100, $chan);
+ my $limit = &getChanConfDefault('factoidPreventForgetLimit', 100, $chan);
# don't delete if older than $limitage seconds (modified by requests below)
- my $limitage = &getChanConfDefault(
- "factoidPreventForgetLimitTime", 7 * 24 * 60 * 60, $chan);
- my $t = &getFactInfo($faqtoid, "created_time") || 0;
+ my $limitage = &getChanConfDefault('factoidPreventForgetLimitTime', 7 * 24 * 60 * 60, $chan);
+ my $t = &getFactInfo($faqtoid, 'created_time') || 0;
my $age = time() - $t;
# lets scale limitage from 1 (nearly 0) to $limit (full time).
$limitage = $limitage*($count+1)/$limit if ($count < $limit);
# isauthor and isop.
my $isau = (defined $author and &IsHostMatch($author) == 2) ? 1 : 0;
- my $isop = (&IsFlag("o") eq "o") ? 1 : 0;
+ my $isop = (&IsFlag('o') eq 'o') ? 1 : 0;
- if (IsFlag("r") ne "r" && !$isop) {
+ if (IsFlag('r') ne 'r' && !$isop) {
&msg($who, "you don't have access to remove factoids");
return;
}
# this may eat some memory.
# prevent deletion if other factoids redirect to it.
- # todo: use hash instead of array.
+ # TODO: use hash instead of array.
my @list;
- if (&getChanConf("factoidPreventForgetRedirect")) {
+ if (&getChanConf('factoidPreventForgetRedirect')) {
&status("Factoids/Core: forget: checking for redirect factoids");
- @list = &searchTable("factoids", "factoid_key",
- "factoid_value", "^<REPLY> see ");
+ @list = &searchTable('factoids', 'factoid_key',
+ 'factoid_value', "^<REPLY> see ");
}
my $match = 0;
for (@list) {
my $f = $_;
- my $v = &getFactInfo($f, "factoid_value");
+ my $v = &getFactInfo($f, 'factoid_value');
my $fsafe = quotemeta($faqtoid);
next unless ($v =~ /^<REPLY> ?see( also)? $fsafe\.?$/i);
$match++;
}
- # todo: warn for op aswell, but allow force delete.
+ # TODO: warn for op aswell, but allow force delete.
if (!$isop and $match) {
&msg($who, "uhm, other (redirection) factoids depend on this one.");
return;
}
# ignore.
- # todo: make forget limit configurable.
- # todo: make forget ignore time configurable.
+ # TODO: make forget limit configurable.
+ # TODO: make forget ignore time configurable.
if ($cache{forget}{$h} > 5) {
- &ignoreAdd(&makeHostMask($nuh), "*", 3*24*60, "abuse of forget");
+ &ignoreAdd(&makeHostMask($nuh), '*', 3*24*60, "abuse of forget");
&msg($who, "forget: Ignoring you for abuse!");
}
}
# lets do it!
- if (&IsParam("factoidDeleteDelay") or &IsChanConf("factoidDeleteDelay")) {
+ if (&IsParam('factoidDeleteDelay') or &IsChanConf('factoidDeleteDelay') > 0) {
if (!($isop or $isau) and $faqtoid =~ / #DEL#$/) {
&msg($who, "cannot delete it ($faqtoid).");
return;
}
&status("forgot (safe delete): '$faqtoid' - ". scalar(gmtime));
- ### TODO: check if the "backup" exists and overwrite it
+ ### TODO: check if the 'backup' exists and overwrite it
my $check = &getFactoid("$faqtoid #DEL#");
if (!defined $check or $check =~ /^\s*$/) {
&DEBUG("forget: not overwriting backup: $faqtoid");
} else {
&status("forget: backing up '$faqtoid'");
- &setFactInfo($faqtoid, "factoid_key", $new);
- &setFactInfo($new, "modified_by", $who);
- &setFactInfo($new, "modified_time", time());
+ &setFactInfo($faqtoid, 'factoid_key', $new);
+ &setFactInfo($new, 'modified_by', $who);
+ &setFactInfo($new, 'modified_time', time());
}
} else {
return 'unforget: no addr' unless ($addressed);
my $i = 0;
- $i++ if (&IsParam("factoidDeleteDelay"));
- $i++ if (&IsChanConf("factoidDeleteDelay"));
+ $i++ if (&IsParam('factoidDeleteDelay'));
+ $i++ if (&IsChanConf('factoidDeleteDelay') > 0);
if (!$i) {
&performReply("safe delete has been disable so what is there to undelete?");
return;
}
my $faqtoid = $message;
- if ($faqtoid eq "") {
- &help("unforget");
+ if ($faqtoid eq '') {
+ &help('unforget');
return;
}
return;
}
- &setFactInfo($faqtoid." #DEL#", "factoid_key", $faqtoid);
-# &setFactInfo($faqtoid, "modified_by", "");
-# &setFactInfo($faqtoid, "modified_time", 0);
+ &setFactInfo($faqtoid." #DEL#", 'factoid_key', $faqtoid);
+# &setFactInfo($faqtoid, 'modified_by', '');
+# &setFactInfo($faqtoid, 'modified_time', 0);
$check = &getFactoid($faqtoid);
- # todo: check if $faqtoid." #DEL#" exists?
+ # TODO: check if $faqtoid." #DEL#" exists?
if (defined $check) {
&performReply("Successfully recovered '$faqtoid'. Have fun now.");
$count{'Undelete'}++;
my $function = lc $1;
my $faqtoid = lc $4;
- if ($faqtoid eq "") {
+ if ($faqtoid eq '') {
&help($function);
return;
}
- if (&getFactoid($faqtoid) eq "") {
+ if (&getFactoid($faqtoid) eq '') {
&msg($who, "factoid \002$faqtoid\002 does not exist");
return;
}
- if ($function eq "lock") {
+ if ($function eq 'lock') {
# strongly requested by #debian on 19991028. -xk
- if (1 and $faqtoid !~ /^\Q$who\E$/i and &IsFlag("o") ne "o") {
+ if (1 and $faqtoid !~ /^\Q$who\E$/i and &IsFlag('o') ne 'o') {
&msg($who,"sorry, locking cannot be used since it can be abused unneccesarily.");
&status("Replace 1 with 0 in Process.pl#~324 for locking support.");
return;
if ($message =~ s/^rename(\s+|$)//) {
return 'rename: no addr' unless ($addressed);
- if ($message eq "") {
- &help("rename");
+ if ($message eq '') {
+ &help('rename');
return;
}
my ($from,$to) = (lc $1, lc $2);
my $result = &getFactoid($from);
- if (defined $result) {
- &performReply("i didn't have anything called '$from'");
+ if (!defined $result) {
+ &performReply("i didn't have anything called '$from' to rename");
return;
}
- my $author = &getFactInfo($from, "created_by");
-
# who == nick!user@host.
- if (&IsFlag("m") ne "m" and $author !~ /^\Q$who\E\!/i) {
- &msg($who, "factoid '$form' is not yours to modify.");
+ if (&IsFlag('m') ne 'm' and $author !~ /^\Q$who\E\!/i) {
+ &msg($who, "factoid '$from' is not yours to modify.");
return;
}
return;
}
- &setFactInfo($from,"factoid_key",$to);
+ &setFactInfo($from,'factoid_key',$to);
&status("rename: <$who> '$from' is now '$to'");
&performReply("i renamed '$from' to '$to'");
return 'subst: locked' if (&IsLocked($faqtoid) == 1);
my $was = $result;
- if (($flags eq "g" && $result =~ s/\Q$op/$np/gi) || $result =~ s/\Q$op/$np/i) {
+ if (($flags eq 'g' && $result =~ s/\Q$op/$np/gi) || $result =~ s/\Q$op/$np/i) {
# excessive length.
if (length $result > $param{'maxDataSize'}) {
&performReply("that's too long");
return;
}
+ # empty
+ if (length $result == 0) {
+ &performReply("factoid would be empty. use forget?");
+ return;
+ }
# min length.
- my $faqauth = &getFactInfo($faqtoid, "created_by");
+ my $faqauth = &getFactInfo($faqtoid, 'created_by');
if ((length $result)*2 < length $was and
- &IsFlag("o") ne "o" and
- &IsHostMask($faqauth) != 2
+ &IsFlag('o') ne 'o' and
+ &IsHostMatch($faqauth) != 2
) {
&performReply("too drastic change of factoid.");
}
- &setFactInfo($faqtoid, "factoid_value", $result);
+ &setFactInfo($faqtoid, 'factoid_value', $result);
&status("update: '$faqtoid' =is=> '$result'; was '$was'");
- &performReply("OK");
+ &performReply('OK');
} else {
&performReply("that doesn't contain '$op'");
}
} else {
- &performReply("i didn't have anything called '$faqtoid'");
+ &performReply("i didn't have anything called '$faqtoid' to modify");
}
return;
# fix the string.
s/^hey([, ]+)where/where/i;
s/\s+\?$/?/;
- s/whois/who is/ig;
+ s/^whois /who is /i; # Must match ^, else factoids with "whois" anywhere break
s/where can i find/where is/i;
s/how about/where is/i;
s/ da / the /ig;
if (defined $result and $result !~ /^0?$/) { # question.
&status("question: <$who> $message");
$count{'Question'}++;
- } elsif (&IsChanConf("perlMath") > 0 and $addressed) { # perl math.
- &loadMyModule("perlMath");
+ } elsif (&IsChanConf('Math') > 0 and $addressed) { # perl math.
+ &loadMyModule('Math');
my $newresult = &perlMath();
- if (defined $newresult and $newresult ne "") {
+ if (defined $newresult and $newresult ne '') {
$cmdstats{'Maths'}++;
$result = $newresult;
&status("math: <$who> $message => $result");
}
# why would a friendly bot get passed here?
- if (&IsParam("friendlyBots")) {
+ if (&IsParam('friendlyBots')) {
return if (grep lc($_) eq lc($who), split(/\s+/, $param{'friendlyBots'}));
}