##########################
######### README #########
##########################
# This script is written by Sm0ke0ut.
# For shoutcast servers only!
#
# Available Commands:
# !np !titre = Current Song
# !titre !titre = Stream Title/Current DJ
# !server = Server Status
# !status = Current Status of Stream (users/kbps)
# !record = Listeners Peak
# !radio = Get playlist
# !genre = Shows Genre
# !website !site !url = Shows url/site
# !icq = ICQ Number
# !aim = AIM Address
# !request <text> = Request Song
#
# indeed, there's also `Stream IRC`, but that's pretty useless because you're already at IRC...
#
# irc.fayntic.com #fatalerrorgroup
##########################
######## Settings ########
##########################
# Stream URL (e.g. http://domain.tld:port OR http://IP:port)
set url "http://www.tonsite.com:8000"
# Playlist URL (Leave empty for default stream playlist)
set playlist "http://www.tonsite:8000/playlist.m3u"
# Public/User Channel
set streamch "#radio"
# Private/DJ Channel
set djch "#radio+"
##########################
###### DO NOT EDIT #######
##########################
package require http
bind pub -|- !titre get_shoutcast_song
bind pub -|- !zik get_shoutcast_song
proc get_shoutcast_song {nick uhost hand chan arg} {
global url streamch
set streamch [string tolower $streamch]
::http::config -useragent "Mozilla/5.0; Shoutinfo"
if {[string tolower $chan] == "$streamch"} {
set http_req [::http::geturl $url -timeout 2000]
if {[::http::status $http_req] != "ok"} {
puthelp "PRIVMSG $chan :Stream is unavailable";
}
set data [::http::data $http_req]
::http::cleanup $http_req
if {[regexp {<font class=default>Current Song: </font></td><td><font class=default><b>([^<]+)</b>} $data x title]} {
puthelp "PRIVMSG $chan :\00212Musique En cours\002:13 $title"
} else {
puthelp "PRIVMSG $chan :Couldn't receive any information, checking server status..."
get_shoutcast_server $nick $uhost $hand $chan $arg
}
}
}
bind pub -|- !onair get_shoutcast_title
bind pub -|- !onair get_shoutcast_title
proc get_shoutcast_title {nick uhost hand chan arg} {
global url streamch
set streamch [string tolower $streamch]
::http::config -useragent "Mozilla/5.0; Shoutinfo"
if {[string tolower $chan] == "$streamch"} {
set http_req [::http::geturl $url -timeout 2000]
if {[::http::status $http_req] != "ok"} {
puthelp "PRIVMSG $chan :Stream is unavailable";
}
set data [::http::data $http_req]
::http::cleanup $http_req
if {[regexp {<font class=default>Stream Title: </font></td><td><font class=default><b>([^<]+)</b>} $data x title]} {
puthelp "PRIVMSG $chan :\00212On04-13Air \002:07 $title"
} else {
puthelp "PRIVMSG $chan :Couldn't receive any information, checking server status..."
get_shoutcast_server $nick $uhost $hand $chan $arg
}
}
}
bind pub -|- !site get_shoutcast_site
bind pub -|- !url get_shoutcast_site
bind pub -|- !website get_shoutcast_site
proc get_shoutcast_site {nick uhost hand chan arg} {
global url streamch
set streamch [string tolower $streamch]
::http::config -useragent "Mozilla/5.0; Shoutinfo"
if {[string tolower $chan] == "$streamch"} {
set http_req [::http::geturl $url -timeout 2000]
if {[::http::status $http_req] != "ok"} {
puthelp "PRIVMSG $chan :Stream is unavailable";
}
set data [::http::data $http_req]
::http::cleanup $http_req
if {[regexp {>http://([^<]+)</a></b>} $data x title]} {
puthelp "PRIVMSG $chan :\002Website\002: http://$title"
} elseif {[regexp {>www.([^<]+)</a></b>} $data x title]} {
puthelp "PRIVMSG $chan :\002Website\002: http://www.$title"
} else {
puthelp "PRIVMSG $chan :Couldn't receive any information, checking server status..."
get_shoutcast_server $nick $uhost $hand $chan $arg
}
}
}
bind pub -|- !server get_shoutcast_server
proc get_shoutcast_server {nick uhost hand chan arg} {
global url streamch
set streamch [string tolower $streamch]
::http::config -useragent "Mozilla/5.0; Shoutinfo"
if {[string tolower $chan] == "$streamch"} {
set http_req [::http::geturl $url -timeout 2000]
if {[::http::status $http_req] != "ok"} {
puthelp "PRIVMSG $chan :Stream is unavailable";
}
set data [::http::data $http_req]
::http::cleanup $http_req
if {[regexp {<font class=default>Server Status: </font></td><td><font class=default><b>([^<]+)</b>} $data x title]} {
puthelp "PRIVMSG $chan :\002Server\002: $title"
} else {
puthelp "PRIVMSG $chan :Couldn't contact the server, please check the configuration and/or streaming server"
}
}
}
bind pub -|- !genre get_shoutcast_genre
proc get_shoutcast_genre {nick uhost hand chan arg} {
global url streamch
set streamch [string tolower $streamch]
::http::config -useragent "Mozilla/5.0; Shoutinfo"
if {[string tolower $chan] == "$streamch"} {
set http_req [::http::geturl $url -timeout 2000]
if {[::http::status $http_req] != "ok"} {
puthelp "PRIVMSG $chan :Stream is unavailable";
}
set data [::http::data $http_req]
::http::cleanup $http_req
if {[regexp {<font class=default>Stream Genre: </font></td><td><font class=default><b>([^<]+)</b>} $data x title]} {
puthelp "PRIVMSG $chan :\002Genre\002: $title"
} else {
puthelp "PRIVMSG $chan :Couldn't receive any information, checking server status..."
get_shoutcast_server $nick $uhost $hand $chan $arg
}
}
}
bind pub -|- !status get_shoutcast_status
proc get_shoutcast_status {nick uhost hand chan arg} {
global url streamch
set streamch [string tolower $streamch]
::http::config -useragent "Mozilla/5.0; Shoutinfo"
if {[string tolower $chan] == "$streamch"} {
set http_req [::http::geturl $url -timeout 2000]
if {[::http::status $http_req] != "ok"} {
puthelp "PRIVMSG $chan :Stream is unavailable";
}
set data [::http::data $http_req]
::http::cleanup $http_req
if {[regexp {B>([^<]+) of} $data x title]} {
regexp { of ([^<]+) listeners} $data x title2
regexp {listeners ([^<]+)} $data x title3
regexp {Stream is up at ([^<]+) with} $data x title4
puthelp "PRIVMSG $chan :\002Status\002: $title of $title2 $title3 at $title4"
} else {
puthelp "PRIVMSG $chan :Couldn't receive any information, checking server status..."
get_shoutcast_server $nick $uhost $hand $chan $arg
}
}
}
bind pub -|- !radio get_shoutcast_listen
proc get_shoutcast_listen {nick uhost hand chan arg} {
global url streamch playlist
set streamch [string tolower $streamch]
if {[string tolower $chan] == "$streamch"} {
if {$playlist == ""} {
puthelp "PRIVMSG $chan :\002Pour ecouter la radio www.tonlien.com"
} else {
puthelp "PRIVMSG $chan :\002Pour ecouter la radio www.tonlien.com"
}
}
}
bind pub -|- !icq get_shoutcast_icq
proc get_shoutcast_icq {nick uhost hand chan arg} {
global url streamch
set streamch [string tolower $streamch]
::http::config -useragent "Mozilla/5.0; Shoutinfo"
if {[string tolower $chan] == "$streamch"} {
set http_req [::http::geturl $url -timeout 2000]
if {[::http::status $http_req] != "ok"} {
puthelp "PRIVMSG $chan :Stream is unavailable";
}
set data [::http::data $http_req]
::http::cleanup $http_req
if {[regexp {<font class=default>Stream ICQ: </font></td><td><font class=default><b>([^<]+)</b>} $data x title]} {
puthelp "PRIVMSG $chan :\002ICQ\002: $title"
} else {
puthelp "PRIVMSG $chan :Couldn't receive any information, checking server status..."
get_shoutcast_server $nick $uhost $hand $chan $arg
}
}
}
bind pub -|- !aim get_shoutcast_aim
proc get_shoutcast_aim {nick uhost hand chan arg} {
global url streamch
set streamch [string tolower $streamch]
::http::config -useragent "Mozilla/5.0; Shoutinfo"
if {[string tolower $chan] == "$streamch"} {
set http_req [::http::geturl $url -timeout 2000]
if {[::http::status $http_req] != "ok"} {
puthelp "PRIVMSG $chan :Stream is unavailable";
}
set data [::http::data $http_req]
::http::cleanup $http_req
if {[regexp {<font class=default>Stream AIM: </font></td><td><font class=default><b>([^<]+)</b>} $data x title]} {
puthelp "PRIVMSG $chan :\002AIM\002: $title"
} else {
puthelp "PRIVMSG $chan :Couldn't receive any information, checking server status..."
get_shoutcast_server $nick $uhost $hand $chan $arg
}
}
}