From: dms Date: Fri, 22 Sep 2000 10:49:49 +0000 (+0000) Subject: added undelete command X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=44ef5b25021e22c3f1a5c4546eacebf88adea30c;p=infobot.git added undelete command git-svn-id: https://svn.code.sf.net/p/infobot/code/trunk/blootbot@122 c11ca15a-4712-0410-83d8-924469b57eb5 --- diff --git a/src/Process.pl b/src/Process.pl index 08dcc57..edf30de 100644 --- a/src/Process.pl +++ b/src/Process.pl @@ -207,7 +207,10 @@ sub process { # here's where the external routines get called. # if they return anything but null, that's the "answer". if ($addressed) { - &parseCmdHook(); + if (&parseCmdHook()) { + return 'DID SOMETHING IN PCH.'; + } + my $er = &Modules(); if ($er =~ /\S/) { &performStrictReply($er) if ($er ne $noreply); @@ -300,8 +303,17 @@ sub FactoidStuff { return 'locked factoid' if (&IsLocked($faqtoid) == 1); - &status("forget: <$who> '$faqtoid' =is=> '$result'"); - &delFactoid($faqtoid); + if (&IsParam("factoidDeleteDelay")) { + &status("forgot (safe delete): <$who> '$faqtoid' =is=> '$result'"); + &setFactInfo($faqtoid, "factoid_key", $faqtoid." #DEL#"); + + ### delete info. modified_ isn't really used. + &setFactInfo($faqtoid, "modified_by", $who); + &setFactInfo($faqtoid, "modified_time", time()); + } else { + &status("forget: <$who> '$faqtoid' =is=> '$result'"); + &delFactoid($faqtoid); + } &performReply("i forgot $faqtoid"); @@ -313,6 +325,48 @@ sub FactoidStuff { return; } + # factoid unforget/undelete. + if ($message =~ s/^un(forget|delete)\s+//i) { + return 'unforget: no addr' unless ($addressed); + + if (!&IsParam("factoidDeleteDelay")) { + &performReply("safe delete has been disable so what is there to undelete?"); + return; + } + + my $faqtoid = $message; + if ($faqtoid eq "") { + &help("undelete"); + return; + } + + $faqtoid =~ tr/A-Z/a-z/; + my $result = &getFactoid($faqtoid." #DEL#"); + my $check = &getFactoid($faqtoid); + + if (!defined $result) { + &performReply("i didn't have anything ('$faqtoid') to undelete."); + return; + } + + if (defined $check) { + &performReply("cannot undeleted '$faqtoid' because it already exists?"); + return; + } + + &setFactInfo($faqtoid." #DEL#", "factoid_key", $faqtoid); + + ### delete info. modified_ isn't really used. + &setFactInfo($faqtoid, "modified_by", ""); + &setFactInfo($faqtoid, "modified_time", 0); + + &performReply("Successfully recovered '$faqtoid'. Have fun now."); + + $count{'Undelete'}++; + + return; + } + # factoid locking. if ($message =~ /^((un)?lock)(\s+(.*))?\s*?$/i) { return 'lock: no addr 2' unless ($addressed);