my $result = &getFactoid($faqtoid);
if (defined $result) {
- my $author = &getFactInfo($faqtoid, "created_by");
+ my $author = &getFactInfo($faqtoid, "created_by");
+ my $count = &getFactInfo($faqtoid, "requested_count") || 0;
+ my $limit = &getChanConfDefault("factoidPreventForgetLimit",
+ 0, $chan);
+
if (IsFlag("r") ne "r") {
&msg($who, "you don't have access to remove factoids");
return;
return 'locked factoid' if (&IsLocked($faqtoid) == 1);
+ # factoidPreventForgetLimit:
+ if ($limit and $count > $limit and (&IsFlag("o") ne "o")) {
+ &msg($who, "will not delete '$faqtoid', count > limit ($count > $limit)");
+ return;
+ }
+
if (&IsParam("factoidDeleteDelay")) {
- if ($faqtoid =~ /#DEL#/ and !&IsFlag("o")) {
+ if ($faqtoid =~ / #DEL#$/ and !&IsFlag("o")) {
&msg($who, "cannot delete it ($faqtoid).");
return;
}
+
&status("forgot (safe delete): <$who> '$faqtoid' =is=> '$result'");
### TODO: check if the "backup" exists and overwrite it
my $check = &getFactoid("$faqtoid #DEL#");
+ &DEBUG("Process: check => '$check'.");
+
if (!$check) {
- if ($faqtoid !~ /#DEL#/) {
+ if ($faqtoid !~ / #DEL#$/) {
+ &DEBUG("Process: backing up $faqtoid to '$new'.");
my $new = $faqtoid." #DEL#";
+ # this looks weird but does it work?
&setFactInfo($faqtoid, "factoid_key", $new);
&setFactInfo($new, "modified_by", $who);
&setFactInfo($new, "modified_time", time());
+
} else {
&status("not backing up $faqtoid.");
}
+
} else {
&status("forget: not overwriting backup!");
}
+
} else {
&status("forget: <$who> '$faqtoid' =is=> '$result'");
}