]> git.donarmstrong.com Git - infobot.git/blobdiff - src/Factoids/Update.pl
- strictify
[infobot.git] / src / Factoids / Update.pl
index d0b57d13968f3587698b74dd67e093cacbfe1ba7..885538280735b9268d4fbc4f890cd21d37bfe8da 100644 (file)
@@ -6,7 +6,7 @@
 #   Created: 1997
 #
 
-if (&IsParam("useStrict")) { use strict; }
+# use strict;  # TODO
 
 sub update {
     my($lhs, $mhs, $rhs) = @_;
@@ -27,7 +27,7 @@ sub update {
     }
 
     # teaching.
-    if (&IsFlag("t") ne "t") {
+    if (&IsFlag("t") ne "t" && &IsFlag("o") ne "o") {
        &msg($who, "permission denied.");
        &status("alert: $who wanted to teach me.");
        return 1;
@@ -107,18 +107,12 @@ sub update {
 
        &performAddressedReply("okay");
 
-       if (0) {        # old
-           &setFactInfo($lhs, "factoid_value", $rhs);
-           &setFactInfo($lhs, "created_by",    $nuh);
-           &setFactInfo($lhs, "created_time",  time());
-       } else {
-           &dbReplace("factoids", "factoid_key", (
+       &dbReplace("factoids", "factoid_key", (
                created_by      => $nuh,
                created_time    => time(),      # modified time.
                factoid_key     => $lhs,
                factoid_value   => $rhs,
-           ) );
-       }
+       ) );
 
        if (!defined $rhs or $rhs eq "") {
            &ERROR("Update: rhs1 == NULL.");
@@ -213,7 +207,9 @@ sub update {
 
        my $author = &getFactInfo($lhs, "created_by") || "";
 
-       if (IsFlag("m") ne "m" and $author !~ /^\Q$who\E\!/i) {
+       if (IsFlag("m") ne "m" && IsFlag("o") ne "o" &&
+           $author !~ /^\Q$who\E\!/i
+       ) {
            &msg($who, "you can't change that factoid.");
            return 1;
        }
@@ -224,9 +220,9 @@ sub update {
        &status("update: <$who> \'$lhs\' =$mhs=> \'$rhs\'; was \'$exists\'");
 
        # should dbReplace be used here?
-       &delFactoid($lhs);
-       &setFactInfo($lhs,"created_by", $nuh);
-       &setFactInfo($lhs,"created_time", time());
+       #&delFactoid($lhs); # breaks dbm. leave it and use modified_* - Tim Riker <Tim@Rikers.org>
+       &setFactInfo($lhs,"modified_by", $nuh);
+       &setFactInfo($lhs,"modified_time", time());
        &setFactInfo($lhs,"factoid_value", $rhs);
 
        if (!defined $rhs or $rhs eq "") {