tagged release 0.6.4
[parrot.git] / languages / tcl / examples / ircbot.tcl
blob00519e6520bc0637418b4073b80493e486340505
2 set nick jane
3 set server irc.perl.org
4 set channels [list #parrot]
6 source irc.tcl
8 proc privmsg {who target msg} {
9 set first [string wordstart $msg 0]
10 set last [string wordend $msg 0]
12 if {[string range $msg $first [expr {$last-1}]] ne "expr"} return
14 set expr [string range $msg $last end-1]
15 if {[string first \[ $expr] != -1} return
17 puts "expr: '$expr'"
18 if {$target eq $::nick} {set target $who}
19 if { [catch {$::cxn privmsg $target "$who: [expr $expr]"} err] } {
20 $::cxn privmsg $target "$who: $err"
24 set cxn [irc::connection]
26 # event handlers
27 $cxn registerevent PRIVMSG {::privmsg [who] [target] [msg]}
28 $cxn registerevent defaultevent {puts "(event) [header]: [msg]"}
30 $cxn connect $server
31 $cxn user $nick localhost domain www.tcl.tk
32 $cxn nick $nick
33 foreach channel $channels {
34 $cxn join $channel
37 # event loop
38 vwait ::exit