X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=blootbot%2Fsrc%2FFactoids%2FUpdate.pl;h=400012e52387e126765c803dba173bf3966c8f82;hb=a98bcf5bb54a8890a03dee50b58a5de175db4d84;hp=7811bb7adc82deb8e62e87d2488b2dd94f3a9ba4;hpb=cd6e9a1d2be73eb9f344eddf169d6af5003eed88;p=infobot.git diff --git a/blootbot/src/Factoids/Update.pl b/blootbot/src/Factoids/Update.pl index 7811bb7..400012e 100644 --- a/blootbot/src/Factoids/Update.pl +++ b/blootbot/src/Factoids/Update.pl @@ -6,7 +6,7 @@ # Created: 1997 # -if (&IsParam("useStrict")) { use strict; } +# use strict; # TODO sub update { my($lhs, $mhs, $rhs) = @_; @@ -52,25 +52,16 @@ sub update { my $also = ($rhs =~ s/^-?also //i); my $also_or = ($also and $rhs =~ s/\s+(or|\|\|)\s+//); - # freshmeat - if (&IsChanConf("freshmeatForFactoid")) { - # todo: "name" is invalid for fm ][ - if ( &dbGet("freshmeat", "name", "name=".&dbQuote($lhs)) ) { - &msg($who, "permission denied. (freshmeat)"); - &status("alert: $who wanted to teach me something that freshmeat already has info on."); - return 1; - } - } - # factoid arguments handler. - if (&IsChanConf("factoidArguments") and $lhs =~ /\$/) { + # must start with a non-variable + if (&IsChanConf("factoidArguments") > 0 and $lhs =~ /^[^\$]+.*\$/) { &status("Update: Factoid Arguments found."); &status("Update: orig lhs => '$lhs'."); &status("Update: orig rhs => '$rhs'."); my @list; my $count = 0; - $lhs =~ s/^/CMD: /; + $lhs =~ s/^/cmd: /; while ($lhs =~ s/\$(\S+)/(.*?)/) { push(@list, "\$$1"); $count++; @@ -79,16 +70,14 @@ sub update { if ($count >= 10) { &msg($who, "error: could not SAR properly."); - &DEBUG("error: lhs => '$lhs'."); - &DEBUG("error: rhs => '$rhs'."); + &DEBUG("error: lhs => '$lhs' rhs => '$rhs'."); return; } my $z = join(',',@list); $rhs =~ s/^/($z): /; - &status("Update: new lhs => '$lhs'."); - &status("Update: new rhs => '$rhs'."); + &status("Update: new lhs => '$lhs' rhs => '$rhs'."); } # the fun begins. @@ -107,12 +96,12 @@ sub update { &performAddressedReply("okay"); - &dbReplace("factoids", "factoid_key", ( + &sqlReplace("factoids", { created_by => $nuh, created_time => time(), # modified time. factoid_key => $lhs, factoid_value => $rhs, - ) ); + } ); if (!defined $rhs or $rhs eq "") { &ERROR("Update: rhs1 == NULL."); @@ -132,7 +121,7 @@ sub update { if ($also) { # 'is also'. if ($exists =~ /^ see /i) { - &DEBUG("Update.pl: todo: append to linked factoid."); + &TODO("Update.pl: append to linked factoid."); } if ($also_or) { # 'is also ||'. @@ -189,8 +178,12 @@ sub update { $count{'Update'}++; &status("update: <$who> \'$lhs\' =$mhs=> \'$rhs\'; was \'$exists\'"); - &AddModified($lhs,$nuh); - &setFactInfo($lhs, "factoid_value", $rhs); + &sqlReplace("factoids", { + factoid_key => $lhs, + modified_by => $nuh, + modified_time => time(), + factoid_value => $rhs, + } ); if (!defined $rhs or $rhs eq "") { &ERROR("Update: rhs1 == NULL."); @@ -219,11 +212,12 @@ sub update { $count{'Update'}++; &status("update: <$who> \'$lhs\' =$mhs=> \'$rhs\'; was \'$exists\'"); - # should dbReplace be used here? - #&delFactoid($lhs); # breaks dbm. leave it and use modified_* - Tim Riker - &setFactInfo($lhs,"modified_by", $nuh); - &setFactInfo($lhs,"modified_time", time()); - &setFactInfo($lhs,"factoid_value", $rhs); + &sqlReplace("factoids", { + factoid_key => $lhs, + modified_by => $nuh, + modified_time => time(), + factoid_value => $rhs, + } ); if (!defined $rhs or $rhs eq "") { &ERROR("Update: rhs1 == NULL.");