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 

Need to improve script a bit

 
Post new topic   Reply to topic    egghelp.org community Forum Index -> Scripting Help
View previous topic :: View next topic  
Author Message
Gordon
Voice


Joined: 04 Apr 2007
Posts: 34

PostPosted: Sun Nov 16, 2008 5:45 am    Post subject: Need to improve script a bit Reply with quote

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://xx.xx.xx.xx:xxxx"

# Playlist URL (Leave empty for default stream playlist)
set playlist ""

# Public/User Channel
set streamch "#Radio"

# Private/DJ Channel
set djch "#Radio-mods"

##########################
###### 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 :\002Prave hraje\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 -|- !req 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"
   }
}


i use this shoutcast script and i want commands to be available in every channel (or selected) the bot is in. Now its only responding in chan #Radio.

I tried something like: set streamch "#Radio #Chan2 #Chan3" or set streamch "#Radio,#Chan2,#Chan3" but it didnt work.
Back to top
View user's profile Send private message
nml375
Revered One


Joined: 04 Aug 2006
Posts: 2857

PostPosted: Sun Nov 16, 2008 9:50 am    Post subject: Reply with quote

You'll have to replace the part below in each of your procs with something else...
Code:
   set streamch [string tolower $streamch]
   if {[string tolower $chan] == "$streamch"} {


What you should replace it with would depend on the behaviour you'd like. Personally, I'd suggest creating a user-defined channel flag. Others may prefer different approaches.
A rough example on how to use custom channel flags is shown below.
Code:
setudef flag shoutcast

proc someproc ....
 if {[channel get $chan shoutcast]} {
...

_________________
NML_375, idling at #eggdrop@IrcNET
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 -> Scripting Help 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