return $str
}
-proc check_telling {nl event} {
+proc check_telling_core {nl event} {
# event is `talk', `act' or `come'
-
+FIXME - delay 750ms when you invoke this, except for `talk'
+ which causes `talk' now and `act' later
+FIXME - make it be called with come
+FIXME -
set iml [msgdb_get $nl inbound]
if {![llength $iml]} return
# t talk
# a act
# c come
- # current state
- # n NORECORD
- # m MENTIONED
- # p PASSED
# security level and timing
# ii Insecure
# ss Secure and soon (before interval)
# sl Secure and late (after interval)
+ # current state
+ # n NORECORD
+ # m MENTIONED
+ # p PASSED
# reliability and timing
# uu Unreliable
# rv Remind, very soon (before within-interval)
# v Visible
# h Hidden (invisible, no unique)
- set evstate [string range $stt 0 0]
-
manyset [nickdb_get $n tellsec] sec secwhen
switch -exact $sec {
- insecure { append evstate ii }
- secure { append evstate [expr {$ago<$secwhen ? "sl" : "ss"}] }
- default { append evstate "#$sec#" }
+ insecure { set evstate ii }
+ secure { set evstate [expr {$ago<$secwhen ? "sl" : "ss"}] }
+ default { set evstate "#$sec#" }
}
+ append evstate [string range $stt 0 0]
+
manyset [nickdb_set $n tellrel] rel relint relwithin
switch -exact $rel {
unreliable { append evstate uu }
append evstate [expr {[info exists u] ? "v" : "h"}]
switch -glob $evstate {
+ t??prv?v {
+ # consider delivered:
+ # (very recently passed, and the user talks)
+ tell_delete {} $nl
+ }
+ t??????? {
+ # ignore
+ # (any other `talk's)
+ }
+ ?iin???? - ?iip?l?? - ?ii????? -
+ ?s?n??iv - ?s?m??iv - ?s?p?liv {
+ # pass messages
+ # (insecure and not passed recently, or just arriving;
+ # secure and not passed recently)
+ tells_deliver $nl
+ }
+ ?ssp???? - ???p?s?? - ???p?v?? {
+ # ignore
+ # (recently mentioned or passed
+ # immediate `talk' thing)
+ }
+ ?s?n???? - ?slm???? - cs?????? {
+ # mention messages
+ # (secure and not mentioned recently or just arriving,
+ # and should not pass)
+ sendprivmsg $nl \
+ {You have messages (so identify yourself please).}]
+ }
+ * {
+ error "check_telling_core nl=$nl evstate=$evstate ?"
+ }
+ }
+}
+
+
+
+ }
+
+ {
+ }
+ ns???u