chiark / gitweb /
ypp-chatlog-alerter: disable debugging; do clear properly (new notification)
[ypp-sc-tools.db-live.git] / ypp-chatlog-alerter
index fb6bba79d8aae695356c5b96c9303ad0d8d6c086..6df461bec6d4e37cb96f0fdd0e0c7b320433dad4 100755 (executable)
@@ -74,12 +74,15 @@ proc hidenotice {} {
 }
 
 proc newfile {} {
-    global currentfile defaultfile
+    global currentfile defaultfile logfile
     
     set newfile [tk_getOpenFile -multiple 0 -initialfile $currentfile \
                     -title "Select YPP log to track"]
     if {![string length $newfile]} return
 
+    catch { close $logfile }
+    catch { unset logfile }
+
     set currentfile $newfile
     set newdefaults [open $defaultfile.new w]
     puts $newdefaults "[list set currentfile $currentfile]"
@@ -116,14 +119,14 @@ proc retint {} {
        set age [expr {$now-$time}]
        if {!$time} {
            lappend newprtimes {}
-       } elseif {$age < 120} {
+       } elseif {$age < 60} {
            lappend newprtimes [format "%3ds" $age]
        } else {
-           lappend newprtimes [format "%3dm" [expr {$age/120}]]
+           lappend newprtimes [format "%3dm" [expr {$age/60}]]
        }
        set latest [expr { $time > $latest ? $time : $latest }]
        set tint [expr { exp( (-($age >= 0 ? $age : 0) + 0.0) / $e_life ) }]
-puts "AGE $age LA $latest TI $tint"
+#puts "AGE $age LA $latest TI $tint"
        tintentries .msg $i $tint
        incr i
     }
@@ -212,7 +215,7 @@ proc file-read-lines {lvar body} {
            set l "$bufdata$lhs"
            set bufdata {}
            set got $rhs
-puts ">>$l<<"
+#puts ">>$l<<"
            uplevel 1 $body
        }
        append bufdata $got
@@ -256,7 +259,7 @@ proc pollfile {} {
     file-read-lines l {
        hidenotice
        if {[regexp {^\[\d+:\d+:\d+\] (.*)} $l dummy rhs]} {
-puts PROCLINE
+#puts PROCLINE
            process-line $rhs
        }
     }
@@ -264,13 +267,13 @@ puts PROCLINE
 
 proc process-line {l} {
     if {[regexp {^(\w+) tells ye, \"(.*)\"$} $l dummy pirate msg]} {
-puts "MESSAGE $l"
+#puts "MESSAGE $l"
        message $pirate $msg
     }
 }
 
 proc message {pirate msg} {
-    global times pirates messages
+    global times pirates messages height
     global lw_ls lw_ws
     
     set ix [lsearch -exact $pirates $pirate]
@@ -285,13 +288,20 @@ proc message {pirate msg} {
            }
            incr cix
        }
+       for_lw {
+           set $l [lreplace [set $l] $ix $ix]
+           lappend $l {}
+           $w delete $ix
+           $w insert end {}
+       }
+       set ix [expr {$height-1}]
     }
     for_lw new [list $now $pirate $msg] {
        set $l [lreplace [set $l] $ix $ix $new]
        $w delete $ix
        $w insert $ix $new
     }
-puts "TIMES $times"
+#puts "TIMES $times"
     .pirate itemconfigure $ix -foreground white
     retint
 }