X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=src%2FProcess.pl;h=255730f270f79bc23712d796f6d78f5321d54667;hb=92c3870d1fd6aa5f063a57cfb690aea12ec77df7;hp=8595bf4754b01e27c60f3943c4b60ab5d8976e1a;hpb=58e31f834c5a287e71520afacde35a83e1e049d2;p=infobot.git diff --git a/src/Process.pl b/src/Process.pl index 8595bf4..255730f 100644 --- a/src/Process.pl +++ b/src/Process.pl @@ -72,6 +72,7 @@ sub process { &joinchan($chankey); &status("JOIN $chankey <$who>"); &msg($who, "joining $chankey"); + &joinNextChan(); # hack. return; } @@ -121,7 +122,7 @@ sub process { # 'pass' if ($msgType =~ /private/ and $message =~ s/^pass//i) { $message =~ s/^\s+|\s+$//g; - my @array = split / /, $message; + my @array = split ' ', $message; if ($who =~ /^_default$/i) { &pSReply("you are too eleet."); @@ -134,14 +135,21 @@ sub process { } # todo: use &getUser()? - my $first = (scalar keys %users) ? 1 : 0; + my $first = 1; + foreach (keys %users) { + if ($users{$_}{FLAGS} =~ /n/) { + $first = 0; + last; + } + } + if (!exists $users{$who} and !$first) { &pSReply("nick $who is not in user list."); return; } if ($first) { - &pSReply("first time user... adding you as master."); + &pSReply("First time user... adding you as Master."); $users{$who}{FLAGS} = "mrsteon"; } @@ -158,7 +166,7 @@ sub process { if (!scalar keys %{ $users{$who}{HOSTS} }) { my $mask = "*!$user@".&makeHostMask($host); - &pSReply("added mask $mask to $who."); + &pSReply("Added hostmask '\002$mask\002' to $who"); $users{$who}{HOSTS}{$mask} = 1; } @@ -271,11 +279,6 @@ sub process { ### bot commands... ### - if ($message =~ s/^literal\s+//i) { - &status("literal ask of '$message'."); - $literal = 1; - } - # karma. set... if ($message =~ /^(\S+)(--|\+\+)\s*$/ and $addressed) { return '' unless (&hasParam("karma")); @@ -287,19 +290,23 @@ sub process { return; } - if (lc($term) eq lc($who)) { + if (lc $term eq lc $who) { &msg($who, "please don't karma yourself"); return; } - my $karma = &dbGet("karma", "nick",$term,"karma") || 0; + my $karma = &dbGet("stats", "counter", "nick=".&dbQuote($term). + " AND type='karma'") || 0; if ($inc eq '++') { $karma++; } else { $karma--; } - &dbSet("karma", "nick",$term,"karma",$karma); + &dbSet("stats", + { nick => $term, type => "karma" }, + { counter => $karma } + ); return; } @@ -395,6 +402,9 @@ sub FactoidStuff { my $limit = &getChanConfDefault("factoidPreventForgetLimit", 0, $chan); + &DEBUG("forget: limit = $limit"); + &DEBUG("forget: count = $count"); + if (IsFlag("r") ne "r") { &msg($who, "you don't have access to remove factoids"); return; @@ -408,7 +418,7 @@ sub FactoidStuff { return; } - if (&IsParam("factoidDeleteDelay")) { + if (&IsParam("factoidDeleteDelay") or &IsChanConf("factoidDeleteDelay")) { if ($faqtoid =~ / #DEL#$/ and !&IsFlag("o")) { &msg($who, "cannot delete it ($faqtoid)."); return; @@ -417,19 +427,24 @@ sub FactoidStuff { &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 (!defined $check or $check =~ /^\s*$/) { if ($faqtoid !~ / #DEL#$/) { - &DEBUG("Process: backing up $faqtoid to '$new'."); my $new = $faqtoid." #DEL#"; + + my $backup = &getFactoid($faqtoid); # this looks weird but does it work? - &setFactInfo($faqtoid, "factoid_key", $new); - &setFactInfo($new, "modified_by", $who); - &setFactInfo($new, "modified_time", time()); + if ($backup) { + &DEBUG("forget: not overwriting backup: $faqtoid"); + } else { + &status("forget: backing up '$faqtoid'"); + &setFactInfo($faqtoid, "factoid_key", $new); + &setFactInfo($new, "modified_by", $who); + &setFactInfo($new, "modified_time", time()); + } } else { - &status("not backing up $faqtoid."); + &status("forget: not backing up $faqtoid."); } } else { @@ -455,7 +470,10 @@ sub FactoidStuff { if ($message =~ s/^un(forget|delete)\s+//i) { return 'unforget: no addr' unless ($addressed); - if (!&IsParam("factoidDeleteDelay")) { + my $i = 0; + $i++ if (&IsParam("factoidDeleteDelay")); + $i++ if (&IsChanConf("factoidDeleteDelay")); + if (!$i) { &performReply("safe delete has been disable so what is there to undelete?"); return; } @@ -475,7 +493,6 @@ sub FactoidStuff { return; } - &DEBUG("unforget: check => $check"); if (defined $check) { &performReply("cannot undeleted '$faqtoid' because it already exists?"); return; @@ -674,8 +691,10 @@ sub FactoidStuff { if (length $message > 64) { &status("unparseable-moron: $message"); - &performReply( &getRandom(keys %{ $lang{'moron'} }) ); +# &performReply( &getRandom(keys %{ $lang{'moron'} }) ); $count{'Moron'}++; + + &performReply("You are moron \002#". $count{'Moron'} ."\002"); return; }