egghelp.org community Forum Index
[ egghelp.org home | forum home ]
egghelp.org community
Discussion of eggdrop bots, shell accounts and tcl scripts.
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Shoutcast.tcl

 
Post new topic   Reply to topic    egghelp.org community Forum Index -> Script Support & Releases
View previous topic :: View next topic  
Author Message
DaRkOoO
Halfop


Joined: 27 Sep 2008
Posts: 67

PostPosted: Mon Oct 19, 2009 2:56 pm    Post subject: Shoutcast.tcl Reply with quote

Hi all,

I'm using this shoutcast script :
Code:
##########################
######### 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.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    egghelp.org community Forum Index -> Script Support & Releases All times are GMT - 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Forum hosting provided by Reverse.net

Powered by phpBB © 2001, 2005 phpBB Group
subGreen style by ktauber