IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   TCL Scriptler (https://www.ircforumlari.net/tcl-scriptler/)
-   -   sc_serv_control.tcl (https://www.ircforumlari.net/tcl-scriptler/525024-sc_serv_controltcl.html)

PRaNGaLaR 26 Şubat 2013 09:58

sc_serv_control.tcl
 
Kod:

#
# Return information about SHOUTcast DNAS Server 2 (last Build 29)
#
# It requires tDOM.
# On Debian install it by apt-get install tdom
# I dont know other OS
# You will find the Source of tDOM on [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
#
# If you have any suggestions you can find me on IRC Network bluemoon-radio.de:6667 channel #BMR (I am Breeze ;) )
# or via mail breeze@[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]radio.de
#
#
# Version 0.1
# !info misc
# Return misc information like listener, peak, current track, bitrate, etc....
#
# Version 0.2
# !info history
# Return Songhistory
#
#
# Version 0.3
# !info listener
# Return Listeners with ip and connect time



package require http
package require tdom

set cmdchar "!"

proc notice {who what} {
        putserv "NOTICE $who :$what"
}

proc say {who what} {
        putserv "PRIVMSG $who :$what"
}

proc duration {s} {

        set hours [expr {$s / 3600}]
        set minutes [expr {($s / 60) % 60}]
        set seconds [expr {$s % 60}]
        set res ""
        if {$hours != 0} {append res "$hours hours"}                               
        if {$minutes != 0} {append res " $minutes minutes"}
        if {$seconds != 0} {append res " $seconds seconds"}
        return $res
}

### settings of your admin connect to SHOUTcast Server
set scserv(pass) ""
set scserv(url) ""
set scserv(port) ""
set scserv(version) "0.3"



#### Just edit from this line below if you know what you do ;) ####



bind pub n "[string trim $cmdchar]info" pub:info


proc pub:info {nick host hand chan arg} {


        http::config -useragent "Mozilla 9.0"
        set con [http::geturl $::scserv(url):$::scserv(port)/admin.cgi?pass=$::scserv(pass)&sid=1&mode=viewxml&page=9 -timeout 10000]
        set urldata [http::data $con]
        http::cleanup $con

        set doc [dom parse $urldata]
        set root [$doc documentElement]

        set cmd [lindex $arg 0]

        switch -- $cmd {
                "misc" {
                        notice $nick "Listener: [[$root selectNodes /SHOUTCASTSERVER/CURRENTLISTENERS/text()] data]"
                        notice $nick "Max.: [[$root selectNodes /SHOUTCASTSERVER/MAXLISTENERS/text()] data]"
                        notice $nick "Peak: [[$root selectNodes /SHOUTCASTSERVER/PEAKLISTENERS/text()] data]"
                        notice $nick "Unique: [[$root selectNodes /SHOUTCASTSERVER/UNIQUELISTENERS/text()] data]"
                        notice $nick "Genre: [[$root selectNodes /SHOUTCASTSERVER/SERVERGENRE/text()] data]"
                        notice $nick "Url: [[$root selectNodes /SHOUTCASTSERVER/SERVERURL/text()] data]"
                        notice $nick "Titel: [[$root selectNodes /SHOUTCASTSERVER/SERVERTITLE/text()] data]"
                        notice $nick "Track: [[$root selectNodes /SHOUTCASTSERVER/SONGTITLE/text()] data]"
                        notice $nick "next Track: [[$root selectNodes /SHOUTCASTSERVER/NEXTTITLE/text()] data] (if playlist is connected)"
                        notice $nick "Status: [[$root selectNodes /SHOUTCASTSERVER/STREAMSTATUS/text()] data]"
                        notice $nick "MP3: $::scserv(url):$::scserv(port)[[$root selectNodes /SHOUTCASTSERVER/STREAMPATH/text()] data]"
                        notice $nick "Bitrate: [[$root selectNodes /SHOUTCASTSERVER/BITRATE/text()] data] kb/s"
                        notice $nick "Codec: [[$root selectNodes /SHOUTCASTSERVER/CONTENT/text()] data]"
                        notice $nick "Version: [[$root selectNodes /SHOUTCASTSERVER/VERSION/text()] data]"
                }

                "listener" {
                        notice $nick "-- \002LISTENER\002"
                        notice $nick "IP | CONNECTED | PLAYER"

                        foreach node [$root selectNodes /SHOUTCASTSERVER/LISTENERS/LISTENER] {
                                foreach node2 {HOSTNAME CONNECTTIME USERAGENT} {
                                        set getnode [$node selectNodes $node2]
                                        if {[llength $getnode] > 0} {
                                                lappend nodeList [join [$getnode text]]
                                        } else {
                                                lappend nodeList N/A
                                        }
                                }
                        }
                       
                        foreach {a b c} $nodeList {
                                notice $nick "$a | [duration $b] | $c"
                        }
                }

                "history" {
                        set nodeList ""

                        notice $nick "-- \002SONGHISTORY\002"
                        notice $nick "AT | TITLE"

                        foreach node [$root selectNodes /SHOUTCASTSERVER/SONGHISTORY/SONG] {
                                foreach node2 {PLAYEDAT TITLE} {
                                        set getnode [$node selectNodes $node2]
                                        if {[llength $getnode] > 0} {
                                                lappend nodeList [join [$getnode text]]
                                        }
                                }
                        }
                       
                        foreach {a b} $nodeList {
                                notice $nick "[clock format $a -format {%H:%M:%S}] | $b|"
                        }
                }

                "default" {
                        notice $nick "!info misc|listener|history"
                }
        }
}

putlog "loaded sc_serv_control.tcl $::scserv(version) successfully"


MesqeN 26 Şubat 2013 13:23

Cevap: sc_serv_control.tcl
 
kardeş iyi güzel paylaşmışsında sc_serv bu tcl nedir ne işe yarar sen ben bilirizde bilmeyenler icin bir acıklama yapma geregi duysaydın cokdaha yararlı bir paylaşım yapmış olacaktın @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 03:48.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2025 IRCForumlari.Net Sparhawk