From 0abaa3a9a3fe0c6737d36df45f598dadae579510 Mon Sep 17 00:00:00 2001 Message-Id: <0abaa3a9a3fe0c6737d36df45f598dadae579510.1715874841.git.mdw@distorted.org.uk> From: Mark Wooding Date: Thu, 14 Feb 2002 17:58:39 +0000 Subject: [PATCH] Many bugfixes from actual testing! Organization: Straylight/Edgeware From: Ian Jackson --- bot.tcl | 54 +++++++++++++++++++++++++++++++++--------------------- test.tcl | 1 + 2 files changed, 34 insertions(+), 21 deletions(-) diff --git a/bot.tcl b/bot.tcl index 8a10d05..ac5714b 100755 --- a/bot.tcl +++ b/bot.tcl @@ -290,7 +290,9 @@ proc tell_event_core1 {nl event} { pt???rv { # consider delivered: # (very recently passed, and the user talks) - tell_delete_msgs {} $nl + set ndel [tell_delete_msgs {} $nl] + sendprivmsg $nl \ + "I'm assuming you got the $ndel message(s) I just passed on." return delivered } pm????? { @@ -308,7 +310,7 @@ proc tell_event_core1 {nl event} { return ignoretalk } ui????? - - uaii?uu - uaii??l - uas?i?l - + uaii?uu - uaii??l - uas?iuu - uas?i?l - mi????? - pa????l - ?Tii??? - ?Ts?i?? { # pass and then stuff @@ -1174,8 +1176,7 @@ def_ucmd invite { } set invitees {} while {[ta_anymore]} { - set invitee [ta_word] - check_nick $invitee + set invitee [ta_nick] lappend invitees $invitee } foreach invitee $invitees { @@ -1249,11 +1250,12 @@ proc nickdb_get_sec_effective {n} { } proc tell_peernicks {text} { + global errorInfo errorCode set text [irctolower [string trim $text]] set senders [split $text " "] foreach sender $senders { if {[catch { check_nick $sender } emsg]} { - error "invalid sender nick `$sender': $emsg" $errorInfo $errorCode + error "invalid nick `$sender': $emsg" $errorInfo $errorCode } } return $senders @@ -1330,10 +1332,20 @@ def_ucmd delmsg { error "delmsg sec $sec" } } + if {![llength [msgsdb_get $n inbound]]} { + ucmdr "No incoming messages to delete." {} + } tell_getcstate + if {![info exists u]} { + usererror \ + "I can't delete your messages unless I can see you on a channel with me.\ + Otherwise I might delete a message I hadn't told you about yet." + } if {"$stt" != "passed"} { + set telling [list $u undelivered 0] usererror \ - "There are message(s) you've not yet seen; I'll deliver them to you now.\ + "There are message(s) you may not yet have seen;\ + I'll deliver them to you now.\ If you actually want to delete them, just tell me `delmsg' again." } set senders [tell_peernicks $text] @@ -1341,8 +1353,6 @@ def_ucmd delmsg { if {!$ndel} { if {[llength $senders]} { ucmdr "No relevant incoming messages to delete." {} - } else { - ucmdr "No incoming messages to delete." {} } } switch -exact [llength $senders] { @@ -1370,7 +1380,7 @@ def_ucmd tell { global nick_case ownmailaddr ownfullname prefix_nick - set target [ta_word] + set target [ta_nick] if {![string length $text]} { error "tell them what?" } if {[string length $text] > 400} { error "message too long" } @@ -1451,7 +1461,7 @@ $n asked me[expr {[ischan $dest] ? " on $dest" : ""}] to tell you: def_ucmd who { if {[ta_anymore]} { - set target [ta_word]; ta_nomore + set target [ta_nick]; ta_nomore set myself 1 } else { prefix_nick @@ -1578,7 +1588,7 @@ proc tellme_sec_desc {v n} { } } -proc tellme_rel_desc {v} { +proc tellme_rel_desc {v n} { manyset $v rel every within switch -exact $rel { unreliable { @@ -1661,7 +1671,7 @@ proc tellme_setting_sec_simple {} { proc tellme_setting_neednomsgs {} { uplevel 1 { if {[llength [msgsdb_get $n inbound]]} { - usererror "You must delete the messages you have, first." + usererror "You must delete the incoming messages you have, first." } } } @@ -1672,7 +1682,7 @@ def_setting tellme { manyset $secv sec switch -exact $sec { insecure - secure { - set mr [tellme_rel_desc [nickdb_get $n tellrel]] + set mr [tellme_rel_desc [nickdb_get $n tellrel] $n] return "$ms $mr" } refuse - mailto { @@ -1692,13 +1702,13 @@ def_setting tellme { set v [list secure $every] } refuse { - telling_setting_neednomsgs - telling_setting_sec_simple + tellme_setting_neednomsgs + tellme_setting_sec_simple } mailto { - telling_setting_neednomsgs + tellme_setting_neednomsgs - if {[string length [set u [nickdb_get_username $n]]]} { + if {![string length [set u [nickdb_get_username $n]]]} { usererror \ "Sorry, you must register securely to have your messages mailed\ (to prevent the use of this feature for spamming). See `help register'." @@ -1718,7 +1728,7 @@ def_setting tellme { set sr rel set v $setting if {"$setting" != "unreliable"} { - set every [parse_interval_optional 300 3600] + set every [ta_interval_optional 300 3600] lappend v $every } if {"$setting" == "remind"} { @@ -1735,14 +1745,16 @@ def_setting tellme { } } nickdb_set $n tell$sr $v - ucmdr [tellme_${sr}_desc $v] {} + upvar #0 nick_telling([irctolower $n]) telling + catch { unset telling } + ucmdr [tellme_${sr}_desc $v $n] {} } proc lnick_checktold {luser} { set ml [msgsdb_get $luser outbound] if {![llength $ml]} return set is1 [expr {[llength $ml]==3}] - set m1 "FYI, I haven't yet passed on your" + set m1 "FYI, I haven't yet delivered your" set ol {} set now [clock seconds] while {[llength $ml]} { @@ -1815,7 +1827,7 @@ def_ucmd identpass { irc-identpass $n upvar #0 nick_username($luser) rec_username set rec_username $username - tell_event $luser ident + after 50 [list tell_event $luser ident] ucmdr "Pleased to see you, $username." {} } diff --git a/test.tcl b/test.tcl index 5f9b20c..993a1aa 100644 --- a/test.tcl +++ b/test.tcl @@ -5,5 +5,6 @@ set nick testbot set ownfullname confused set socketargs {} set marktime_min 10 +set ownmailaddr ijackson@chiark.greenend.org.uk source bot.tcl -- [mdw]