This is the new home of the egghelp.org community forum.
All data has been migrated (including user logins/passwords) to a new phpBB version.


For more information, see this announcement post. Click the X in the top right-corner of this box to dismiss this message.

Shoutcast.tcl

Support & discussion of released scripts, and announcements of new releases.
Post Reply
D
DaRkOoO
Halfop
Posts: 67
Joined: Sat Sep 27, 2008 7:27 am

Shoutcast.tcl

Post by DaRkOoO »

Hi all,

I'm using this shoutcast script :

Code: Select all

##########################
######### README #########
##########################

# This script is written by Sm0ke0ut.
# For shoutcast servers only!
# 
# Available Commands:
# !np !song 		= Current Song
# !dj	!title		= Stream Title/Current DJ
# !server			= Server Status
# !status			= Current Status of Stream (users/kbps)
# !record			= Listeners Peak
# !listen			= 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://69.73.166.80:8207"

# Playlist URL (Leave empty for default stream playlist)
set playlist "http://69.73.166.80:8207"

# Public/User Channel
set streamch "#blood"

# Private/DJ Channel
set djch "#botchan"

##########################
###### DO NOT EDIT #######
##########################

package require http

bind pub -|- !song get_shoutcast_song 
bind pub -|- !np 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 :\002Current Song\002: $title"
	} else {
		puthelp "PRIVMSG $chan :Couldn't receive any information, checking server status..."
		get_shoutcast_server $nick $uhost $hand $chan $arg
	}
   }
}

bind pub -|- !title get_shoutcast_title
bind pub -|- !dj 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 :\002DJ\002: $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 -|- !record get_shoutcast_peak
proc get_shoutcast_peak {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>Listener Peak: </font></td><td><font class=default><b>([^<]+)</b>} $data x title]} {
		puthelp "PRIVMSG $chan :\002Record\002: $title"
	} else {
		puthelp "PRIVMSG $chan :Couldn't receive any information, checking server status..."
		get_shoutcast_server $nick $uhost $hand $chan $arg
	}
   }
}

bind pub -|- !listen 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 :\002Stream/Listen\002: $url/listen.pls"
	} else { 
		puthelp "PRIVMSG $chan :\002Stream/Listen\002: $playlist"
	}
   }
}

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
	}
   }
}

bind pub -|- !request get_shoutcast_request
proc get_shoutcast_request {nick uhost hand chan arg} {
   global streamch djch
   set streamch [string tolower $streamch]
   if {[string tolower $chan] == "$streamch"} {
	puthelp "PRIVMSG $djch :\002\Request\002: $arg  - Requested by: \002$nick\002"
	puthelp "NOTICE $nick :\002$arg\002 is succesfully requested"
   }
}
And it works just fine.
But I need small modification.
As you can see above, I entered #blood as public/user channel.So, command like !np and !status,etc.. works only on #blood.But I want to make that command available for all channels bot is on.
Can someone do that ?

Regards,
Darko.
Post Reply