[tcl] Ontvangen van msn tekst

Pagina: 1
Acties:

  • Martink
  • Registratie: Juni 2001
  • Laatst online: 11-02-2025
Ik heb een probleem met het ontvangen van tekstjes die van msn komen,
hieronder zie je de code die ik gebruik,
en die stuurt de tekst door naar het command
msn:usetext "NICK" "EMAIL" "TEKST"

Het werkt bijna probleemloos, maar als mensen enter drukken en vlak daarna nog iets sturen stuurt hij berichten door zoals
BlaatMSG martin.kollaard@wanadoo.nl Martin 99
Hoe kan ik dit oplossen?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
proc msn:usergot {sock} {
set line [read $sock]
set len [llength $line]
  if {$len == 0} {
    if {[eof $sock]} {
    msn:putchan "info" "Connection ($sock) closed by server."
    close $sock
    }
    return 0
  }
  global msn
  set usertext "0"
  foreach text [split $line "\n"] {
 msn:putchan "user" ".$text"
 if {[lindex $text 0] == "USR"} {
 if {$msn(user,$msn(newcon,[lindex $text 1]),text) != ""} {
 puts $sock "CAL [lindex $text 1] $msn(newcon,[lindex $text 1])"
 flush $sock
 }
 } 
 
  if {[lindex $text 0] == "JOI"} {
  if {$msn(user,[lindex $text 1],text) != ""} {
  msn:send "[lindex $text 1]" "$msn(user,[lindex $text 1],text)"
  set msn(user,[lindex $text 1],text) ""
  } elseif {$msn(user,[lindex $text 1],crash) == "1"} { msn:crash "[lindex $text 1]"; }
  }
  if {[lindex $text 0] == "MSG"} { 
  set user(len) "[expr [lindex $text 3] - 64]"
  set user(email) "[lindex $text 1]"
  regsub -all "%20" [lindex $text 2] " " user(nick)
  }
  if {$usertext == "1" && $text != ""} { 
  if {$user(len) < [llength [split $text ""]]} { set text "[string range $text 0 [expr $user(len)-1]]" }
  if {$user(len) > [llength [split $text ""]]} { set user(len) "[expr $user(len) - [llength [split $text ""]] -2]" }
  if {$user(len) == [llength [split $text ""]]} { set user(len) "0" }
  if {$text != ""} {
  msn:usetext "$user(nick)" "$user(email)" "$text"
  }
  }
  if {[lindex $text 0] == "X-MMS-IM-Format:"} { 
  set usertext "1"
  set user(len) "[expr $user(len) + [llength $text]]"
  }
  if {$usertext != "1" && [lindex $text 0] == "BYE"} { 
  msn:putchan "info" "BYE command on sock $sock close connection"
  close $sock
  }
} 
  return 0
}