$lhs =~ s/\s+/ /g;
# locked.
- return $noreply if (&IsLocked($lhs) == 1);
+ return if (&IsLocked($lhs) == 1);
# profanity.
if (&IsParam("profanityCheck") and &hasProfanity($rhs)) {
&msg($who, "please, watch your language.");
- return $noreply;
+ return;
}
# teaching.
if (&IsFlag("t") ne "t") {
&msg($who, "permission denied.");
&status("alert: $who wanted to teach me.");
- return $noreply;
+ return;
}
# invalid verb.
length($rhs) > $param{'maxDataSize'})
{
&performAddressedReply("that's too long");
- return $noreply;
+ return;
}
#
if (&dbGet("freshmeat", "name", $lhs, "name")) {
&msg($who, "permission denied. (freshmeat)");
&status("alert: $who wanted to teach me something that freshmeat already has info on.");
- return $noreply;
+ return;
}
}
if (my $exists = &getFactoid($lhs)) { # factoid exists.
if ($exists eq $rhs) {
&performAddressedReply("i already had it that way");
- return $noreply;
+ return;
}
if ($also) { # 'is also'.
if ($also_or) { # 'is also ||'.
$rhs = $exists.' || '.$rhs;
} else {
+# if ($exists =~ s/\,\s*$/, /) {
+ if ($exists =~ /\,\s*$/) {
+ &DEBUG("current has trailing comma, just append as is");
+ # $rhs =~ s/^\s+//;
+ # $rhs = $exists." ".$rhs; # keep comma.
+ }
+
+ if ($exists =~ /\.\s*$/) {
+ &DEBUG("current has trailing period, just append as is with 2 WS");
+ # $rhs =~ s/^\s+//;
+ # use ucfirst();?
+ # $rhs = $exists." ".$rhs; # keep comma.
+ }
+
if ($rhs =~ /^[A-Z]/) {
if ($rhs =~ /\w+\s*$/) {
&status("auto insert period to factoid.");
&status("orig factoid already had trailing symbol; not adding period.");
$rhs = $exists." ".$rhs;
}
- } elsif ($exists =~ /\,\s*$/) {
+ } elsif ($exists =~ /[\,\.\-]\s*$/) {
+ &VERB("U: current has trailing symbols; inserting whitespace + new.",2);
$rhs = $exists." ".$rhs;
} elsif ($rhs =~ /^\./) {
+ &VERB("U: new text has ^.; appending directly",2);
$rhs = $exists.$rhs;
} else {
$rhs = $exists.', or '.$rhs;
# max length check again.
if (length($rhs) > $param{'maxDataSize'}) {
- &performAddressedReply("that's too long");
- return $noreply;
+ if (length($rhs) > length($exists)) {
+ &performAddressedReply("that's too long");
+ return;
+ } else {
+ &status("Update: new length is still longer than maxDataSize but less than before, we'll let it go.");
+ }
}
&performAddressedReply("okay");
&status("update: <$who> \'$lhs\' =$mhs=> \'$rhs\'; was \'$exists\'");
&AddModified($lhs,$nuh);
&setFactInfo($lhs, "factoid_value", $rhs);
+
+ if (!defined $rhs or $rhs eq "") {
+ &ERROR("Update: rhs1 == NULL.");
+ }
} else { # not "also"
if ($correction_plausible) { # "no, blah is ..."
- my $author = &getFactInfo($lhs, "created_by");
-
- &DEBUG("Update: check: '$author' == '$who' ?");
+ my $author = &getFactInfo($lhs, "created_by") || "";
if (IsFlag("m") ne "m" and $author !~ /^\Q$who\E\!/i) {
&msg($who, "you can't change that factoid.");
- return $noreply;
+ return;
}
&performAddressedReply("okay");
&setFactInfo($lhs,"created_by", $nuh);
&setFactInfo($lhs,"created_time", time());
&setFactInfo($lhs,"factoid_value", $rhs);
+
+ if (!defined $rhs or $rhs eq "") {
+ &ERROR("Update: rhs1 == NULL.");
+ }
+
} else { # "blah is ..."
if ($addressed) {
&performStrictReply("...but \002$lhs\002 is already something else...");
&status("FAILED update: <$who> \'$lhs\' =$mhs=> \'$rhs\'");
}
- return $noreply;
+ return;
}
}
} else { # not exists.
&setFactInfo($lhs,"created_by", $nuh);
&setFactInfo($lhs,"created_time", time());
&setFactInfo($lhs,"factoid_value", $rhs);
+
+ if (!defined $rhs or $rhs eq "") {
+ &ERROR("Update: rhs1 == NULL.");
+ }
}
return "$lhs $mhs $rhs";