source: trollforge/lenny/playa.tcl @ 60

Revision 48, 1.3 KB checked in by lenny, 8 years ago (diff)
Line 
1#!/usr/local/bin/tclsh
2
3lappend auto_path /usr/lib
4
5package require http
6package require irc
7package require fileutil
8
9::irc::config logger 1
10::irc::config debug 1
11
12# set server "irc.rizon.net"
13# set server "wtfuxnet.ath.cx"
14# set server "irc.mzima.net"
15set server "irc.gnaa.us"
16set nick "playa"
17
18set chan ""
19set play_queue ""
20
21set c [::irc::connection]
22
23$c registerevent PRIVMSG {
24
25        if {[string equal [target] $::nick]} {
26
27                set c [split [msg] " "]
28
29                switch -exact -nocase -- [lindex $c 0] {
30
31                        exit {
32
33                                cmd-quit
34                                set ::forever 1
35                        }
36
37                        join {
38
39                                cmd-join [lindex $c 1]
40                                set ::chan [lindex $c 1]
41                        }
42
43                        part {
44
45                                cmd-part $::chan
46                                set ::chan ""
47                        }
48
49                        play {
50
51#                               catch {
52
53                                        regsub -all -nocase -- {[^a-zA-Z0-9_\-.]} [lindex $c 1] {} fn
54
55                                        set q [::http::geturl "http://pepper.idge.net/slashdot/$fn"]
56
57                                        set ::play_queue [split [::http::data $q] "\n"]
58
59                                        ::http::cleanup $q
60
61                                        play_play_queue
62#                               }
63                        }
64
65                        stop {
66
67                                set ::play_queue ""
68                        }
69                }
70        }
71}
72
73proc play_play_queue {} {
74
75        set l [lindex $::play_queue 0]
76
77        if {[string length $l] > 0} {
78
79                $::c privmsg $::chan $l
80
81        } else {
82
83                $::c privmsg $::chan " "
84        }
85
86        set ::play_queue [lrange $::play_queue 1 end]
87
88        if {[llength $::play_queue]} {
89
90                after 1000 play_play_queue
91        }
92}
93
94# Connect
95$c connect $server
96$c user $nick h d e
97$c nick $nick
98
99vwait forever
Note: See TracBrowser for help on using the repository browser.