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
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
Hoe kan ik dit oplossen?BlaatMSG martin.kollaard@wanadoo.nl Martin 99
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
} |