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 

!tv script

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


Joined: 06 Dec 2008
Posts: 30

PostPosted: Sun Mar 15, 2009 11:25 pm    Post subject: !tv script Reply with quote

I'm looking for a script that does this:

<user>!tv some show
<bot> Show Name: Some Show
<bot> Latest Show: SeasonxEpisode - episode name - launch date
<bot> Next Show: SeasonxEpisode - episode name - launch date

I found some similar scripts in the tcl archive, but I couldn't find any scripts that's like I wan't em to be.
Back to top
View user's profile Send private message
zerodtk
Voice


Joined: 25 Mar 2009
Posts: 20

PostPosted: Sun Apr 19, 2009 6:40 am    Post subject: Reply with quote

there's a script like this called tvshow.tcl written by Ryal
it gets the data from episodeworld.com

Code:
#####################
# EPisodeWorld 1.4  #
#####################

# Enable with .chanset #channel +epw

# Set your chan name here
set mychan "#szabadka"

#  e.g. set tgcmdhelp "helpme" will make the bot give help when someone
#  does "/msg <botnick> helpme"
set epwcmdhelp "!ephelp"

# [0/1] public or private reply's (public 0, private 1)
set epinforeply 0
set whatsonreply 0

# offset to EST
# 6 hours makes sense for CET (Europe)
set tvoffset 6

if ![info exists egghttp(version)] {
   putlog "egghttp.tcl was NOT successfully loaded."
}

set whatsontime 1
set whatsontimer [timer $whatsontime whatson]

setudef flag epw

bind pub - $epwcmdhelp epwgivehelp
bind join -|- "$mychan *" epwjoinmsg
bind pub - !epinfo epinfo
#bind pub - !tomorrow whatsontomorrowdisplay
#bind pub - !today whatsontodaydisplay
#bind pub - !yesterday whatsonyesterdaydisplay
#bind pub - !whatson whatsondisplay

proc epinfo {nick uhost hand chan text} {
   if ![channel get $chan epw] return
   if {$::epinforeply} {set target $nick} {set target $chan}
   if {$text==""} {putserv "PRIVMSG $chan :\002Usage: $::lastbind <show> -l <language>"; return}
   set sep "-l"
   set data [split [string map [list $sep \0] $text] \0]
   set text [string trim [lindex $data 0]]
   if {[llength $data] >1} {
      set language [string trim [lindex $data 1]]
   } else {
      set language "english"
   }
   set search [join [lrange [split $text] 0 e] {+}]
   set language [join [lrange [split $language] 0 e] {+}]
   set d [date:offset [clock seconds] %m%d%y]
   set url "http://episodeworld.com/botsearch/$search/$language"
   set sock [egghttp:geturl $url [list parseinfo.episodeworld.com $target $url] -headers "Cookie: tv_promo_$d=1"]
}

proc parseinfo.episodeworld.com {target url sock} {
   set data [egghttp:data $sock]
   egghttp:cleanup $sock

   set i 0
   if {$data==""} {
      putserv "PRIVMSG $target :\002Unknown Show, check the spelling"
   } else {
      foreach line [split $data \n] {
         incr i
         if {$i==1} {
            if [regexp {(.*)<br>} $line . titletemp] {
               set title $titletemp
            }
         }
         if {$i==2} {
            if [regexp {Previous: (.*) Name} $line . number_prevtemp] {
               set number_prev $number_prevtemp
            }
            if [regexp {Name: (.*) Date} $line . name_prevtemp] {
               set name_prev $name_prevtemp
            }
            if [regexp {Date: (.*)<br>} $line . date_prevtemp] {
               set date_prev $date_prevtemp
            }
         }
         if {$i==3} {
            if [string match -nocase "*Next:  Name:  Date: <br>*" $line] {
               set date "No Info Available"
            } else {
               if [regexp {Next: (.*) Name} $line . numbertemp] {
                  set number $numbertemp
               }
               if [regexp {Name: (.*) Date} $line . nametemp] {
                  set name $nametemp
               }
               if [regexp {Date: (.*)<br>} $line . datetemp] {
                  set date $datetemp
               }
            }
         }
         if {$i==4} {
            if [regexp {(.*)<br>} $line . urltemp] {
               set url $urltemp
            }
         }
      }
      if {$i==4} {
         if {$date==   "No Info Available"} {
            putquick "PRIVMSG $target :(Show: \00304$title\00300)-(\00304No Info Available\00300)-(Previous: \00304$number_prev\00300-\00304$name_prev\00300 - aired the \00304$date_prev\00300)"
         } else {
            if {$date==   "0000-00-00"} {
               putquick "PRIVMSG $target :(Show: \00304$title\00300)-(Next: \00304$number\00300-\00304$name\00300 - \00304Airing date unknown\00300)-(Previous: \00304$number_prev\00300-\00304$name_prev\00300 - aired the \00304$date_prev\00300)"
            } else {
               putquick "PRIVMSG $target :(Show: \00304$title\00300)-(Next: \00304$number\00300-\00304$name\00300 - airs the \00304$date\00300)-(Previous: \00304$number_prev\00300-\00304$name_prev\00300 - aired the \00304$date_prev\00300)"
            }
         }
         putquick "PRIVMSG $target :For more info: \00304$url"
      }
   }
}

proc whatson {} {
   global mychan whatsontime whatsontimer
   global first

   if ![channel get $mychan epw] return
   set d [date:offset [clock seconds] %m%d%y]
   set langs(1) "english"
   set langs(2) "german"
   set langs(3) "french"
   set langs(4) "spanish"
   set langs(5) "italian"
   set langs(6) "polish"
   set langs(7) "japanese"
   set langs(8) "portuguese"
   set langs(9) "finnish"

   for {set j 1} {$j<10} {incr j 1} {
      set url "http://www.episodeworld.com/rss/rss-all.php?l=$j"
      set language $langs($j)
      set sock [egghttp:geturl $url [list parseinfo.home.episodeworld.com $url $language] -headers "Cookie: tv_promo_$d=1"]
   }

   if {[timerexists whatson]!=""} {killtimer $whatsontimer}
   if {[info exists first]} {
      set whatsontime 240
      putlog "Next parsing scheduled in 240'"
   } else {
      set whatsontime 1
      putlog "Parsing failed, next try in 1'"
   }
   set whatsontimer [timer $whatsontime whatson]
}

proc parseinfo.home.episodeworld.com {url language sock} {
   global nb show number epname
   global first

   set today [clock format [clock sec] -format %Y-%m-%d]

   set data [egghttp:data $sock]
   egghttp:cleanup $sock

   putlog "Parsing www.episodeworld.com"
   
   if {[info exists nb("$today","$language")]} {
      unset nb("$today","$language")
   }

   if {[info exists first]} {
#      unset first
   }

   foreach day [array names goon] {
      set goon($day) 0
   }

   set first 0
   foreach line [split $data \n] {
      if  {[regexp {<description>(.*) - } $line . showtemp]} {
         if  {[regexp {Broadcast: (.*)&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;} $line . datetemp]} {
            set day $datetemp
            if {![info exists nb("$day","$language")]} {
               set goon("$day") 1
               set nb("$day","$language") 0
            }
            if {$goon("$day")==1} {
               incr nb("$day","$language")
               if  {[regexp { - (.*) - } $line . numbertemp]} {
                  set number("$day","$language",$nb("$day","$language")) $numbertemp
               } else {
                  set number("$day","$language",$nb("$day","$language")) ""
               }
               if  {[regexp { - (.*)&lt;BR&gt;&lt;BR&gt;} $line . nametemp]} {
                  set sep " *"
                  set epnamedata [lindex [split [string map [list $sep \0] $nametemp] \0] 0]
                  set sep " - "
                  set epnamedata2 [split [string map [list $sep \0] $epnamedata] \0]
                  set epname("$day","$language",$nb("$day","$language")) [lindex $epnamedata2 [expr [llength $epnamedata2] -1]]
               } else {
                  set epname("$day","$language",$nb("$day","$language")) ""
               }
               set sep " - "
               set show("$day","$language",$nb("$day","$language")) [lindex [split [string map [list $sep \0] $showtemp] \0] 0]
            }
         }
      }
         
   }
}

proc whatsondisplay {nick uhost hand chan text} {
   global first
   global compt
   global nb show number epname

   if {[info exists first]} {
      if {$::whatsonreply} {set target $nick} {set target $chan}
      if {$text==""} {putserv "PRIVMSG $chan :\002Usage: $::lastbind <day> -l <language>"; return} 
      set sep "-l"
      set data [split [string map [list $sep \0] $text] \0]
      set text [string trim [lindex $data 0]]
      if {[llength $data] >1} {
         set language [string trim [lindex $data 1]]
      } else {
         set language "english"
      }
      set day [join [lrange [split $text] 0 e] {+}]
      set language [join [lrange [split $language] 0 e] {+}]
      if {$day=="today"} { set day [clock format [clock sec] -format %Y-%m-%d] }
      if {$day=="yesterday"} { set day [clock format [expr [clock sec] - 86400] -format %Y-%m-%d] }
      putserv "PRIVMSG $target :**************************************"
      putserv "PRIVMSG $target :Airing Date - Show Name - Episode Name"
      putserv "PRIVMSG $target :**************$day**************"
      set compt($nick) 0
      if {[info exists nb("$day","$language")]} {
         if {$nb("$day","$language")>0} {
            whatsondisplay2 $nick $target $day $language
         }
      } else {
         putserv "PRIVMSG $target :**************************************"
      }
   } else {
      if {$::whatsonreply} {set target $nick} {set target $chan}
      putserv "PRIVMSG $target :Please $nick, wait for the bot to actually parse something."
   }
}

proc whatsondisplay2 {name target day language} {
   global compt nb show number epname

#   putserv "PRIVMSG $target :$nb("$day","$language") $compt($name)"

   if {[expr $compt($name)+4] < $nb("$day","$language")} {
      for {set k 1} {$k<5} {incr k 1} {
         incr compt($name)
         putserv "PRIVMSG $target :\00304$day \00301- \00302$show("$day","$language",$compt($name)) \00301- $number("$day","$language",$compt($name)) - \00303$epname("$day","$language",$compt($name))"
      }
   } else {
      set tempcompt $compt($name)
      for {set k 1} {$k< [expr $nb("$day","$language") - $tempcompt+1]} {incr k 1} {
         incr compt($name)
         putserv "PRIVMSG $target :\00304$day \00301- \00302$show("$day","$language",$compt($name)) \00301- $number("$day","$language",$compt($name)) - \00303$epname("$day","$language",$compt($name))"
      }
   }

   if {$compt($name) < $nb("$day","$language")} {
      if {[utimerexists whatsondisplay2]!=""} {killutimer $whatsontimer2}
      set whatsontime2 5
      set whatsontimer2 [utimer $whatsontime2 "whatsondisplay2 $name $target $day $language"]]
   } else {
      putserv "PRIVMSG $target :**************************************"
   }
}

proc date:offset {epox arg} {
   set t [expr $epox-((60*60)*$::tvoffset)]
   set w [clock format $t -format $arg]
   return $w
}

proc epwjoinmsg {nick host hand chan} {
   global botnick epwcmdhelp
   if {$nick != $botnick} {
      putnotc $nick "Type !epinfo <show> -l <language> to get airing info, !whatson <day> -l <language> to get whats on tv, $epwcmdhelp if you need help. Enjoy your stay! :-)"
   }
}

proc epwgivehelp {nick uhost hand chan text} {
   putnotc $nick "You have access to the following commands: !epinfo <show> -l <language>, !whatson <day> -l <language>"
   putnotc $nick "If you have any suggestion or want to report a bug just use the www.episodeworld.com forums or send a mail to h124186@hotmail.com"
}



putlog "*********************************************************"
putlog "*                script made by ryal                    *"
putlog "*     episodeworld.com.tcl v1.4 successfully loaded     *"
putlog "* Thanks goes to wuff whose tv site is really the best. *"
putlog "*       Go check it out: www.episodeworld.com           *"
putlog "*********************************************************"
Back to top
View user's profile Send private message MSN Messenger
tigrato
Voice


Joined: 04 Jul 2009
Posts: 22

PostPosted: Sat Jul 04, 2009 7:48 am    Post subject: Reply with quote

Someone have a working script?
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