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 

IMDB Tcl
Goto page Previous  1, 2
 
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    egghelp.org community Forum Index -> Archive
View previous topic :: View next topic  
Author Message
blas
Voice


Joined: 08 Feb 2005
Posts: 1

PostPosted: Tue Feb 08, 2005 5:17 pm    Post subject: Reply with quote

hi
my code is:

############################################################
## This iMDB.tcl requires Eggdrop1.6.0 or higher ##
## (c) 2003 by B0unTy ##
############################################################
## ##
## INSTALL: ##
## ======== ##
## 1- Copy iMDB.tcl in your dir scripts/ ##
## 2- Add iMDB.tcl in your eggdrop.conf: ##
## source scripts/imdb.tcl ##
## ##
## For each channel you want users to use !imdb cmd ##
## Just type in partyline: .chanset #channel +imdb ##
## ##
############################################################
# COOKIES ARE :
# =============
# TITLE = %title | BOLD = %bold
# URL = %url | UNDERLINE = %uline
# DIRECTOR = %name | COLORS = %color#,#
# GENRE = %genre | NEW LINE = \n
# SYNOPSIS = %plot |-----------------------------
# RATING = %rating | !! to reset color code !!
# VOTES = %votes | !! use %color w/o args !!
# RUNTIME = %time |
# BUDGET = %budget |
# SCREENS = %screens |
# TAGLINE = %tagline |
# MPAA = %mpaa |
# COUNTRY = %country |
# LANGUAGE = %language |
# SOUND MIX = %soundmix |
# TOP 250 = %top250 |
#
# RANDOMIZING OUTPUT :
# ====================
# Exemple:
# set random(IMDBIRC-0) "IMDB info for %bold%title%bold Directed by %name"
# set random(IMDBIRC-1) "IMDB info for %title Directed by %bold%name%bold"
# set random(IMDBIRC-2) "IMDB info for %title Directed by %name"
# TYPE --------^ ^
# ID --------^
#
# set announce(IMDBIRC) "random 3"
# TYPE ---------^ ^ ^
# RANDOM ----------^ ^
# # OF IDS ---------^
#
# exemple random announces:
# set announce(IMDBIRC) "random 3"
# set random(IMDBIRC-0) "IMDB info for %bold%title%bold Directed by %name -> rated %uline%rating%uline (%votes votes) - genre:
%genre - runtime: %time mins >> URL: %uline%url%uline >> Budget: %budget >> Screens: (USA) %screens"
# set random(IMDBIRC-1) "TITLE: %bold%title%bold - DIRECTOR: %name - RATE: %rating by %votes users - GENRE: %genre - RUNTIME:
%time mins - URL: %url - BUDGET: %budget - SCREENS: (USA) %screens"
# set random(IMDBIRC-2) "%bold%title%bold - %url\n%boldDirected by:%bold %name\n%boldGenre:%bold %genre\n%boldTagline:%bold %t
agline\n%boldSynopsis:%bold %plot\n%boldRating:%bold %rating (%votes votes) top 250:%bold%top250%bold\n%boldMPAA:%bold %mpaa\n
%boldRuntime:%bold %time mins.\n%boldCountry:%bold %country\n%boldLanguage:%bold %language\n%boldSound Mix:%bold %soundmix\n%b
oldBudget:%bold %budget \n%boldOpening Weekend:%bold (USA) %screens"

# exemple normal announce:
set announce(IMDBIRC) "%bold%title%bold - %url\n%boldDirected by:%bold %name\n%boldGenre:%bold %genre\n%boldTagline:%bold %tag
line\n%boldSynopsis:%bold %plot\n%boldRating:%bold %rating (%votes votes) top 250:%bold%top250%bold\n%boldMPAA:%bold %mpaa\n%b
oldRuntime:%bold %time mins.\n%boldCountry:%bold %country\n%boldLanguage:%bold %language\n%boldSound Mix:%bold %soundmix\n%bol
dBudget:%bold %budget \n%boldOpening Weekend:%bold (USA) %screens"

# for a channel !imdb request
# set to 1 = all results will be sent publicly to the channel
# set to 0 = all results will be sent as private notice
set pub_or_not 1

# use or not the imdb debugger (1=enable debug 0=disable debug)
set IMDB_DEBUG 0

# set IMDB_ALTERNATIVE 0 = use the internal tcl http 2.3 package
# set IMDB_ALTERNATIVE 1 = use the external curl 6.0+
set IMDB_ALTERNATIVE 1

# set here the location path where find curl 6.0+
set binary(CURL) ""

#################################################################
# DO NOT MODIFY BELOW HERE UNLESS YOU KNOW WHAT YOU ARE DOING! #
#################################################################
if { $IMDB_ALTERNATIVE == 0 } { package require http 2.3 }
setudef flag imdb
bind pub -|- !imdb imdb_proc

proc htmlcodes {tempfile} {
set mapfile [string map {" ' & & [ ( \ / ] ) { ( } ) £ Ł ¨ ¨ © Š « Ť &#1
73; ­ ® Ž } $tempfile]
set mapfile [string map {´ ´ · ˇ ¹ š » ť ¼ ź ½ ˝ ¾ ž À Ŕ Á Á Â Â } $mapfile]
set mapfile [string map {Ã Ă Ä Ä Å Ĺ Æ Ć Ç Ç È Č É É Ê Ę Ë Ë Ì Ě Í Í &#206
; Î Ï Ď Ð Đ Ñ Ń Ò Ň Ó Ó Ô Ô Õ Ő Ö Ö } $mapfile]
set mapfile [string map {× × Ø Ř Ù Ů Ú Ú Û Ű Ü Ü Ý Ý Þ Ţ ß ß à ŕ á á &#226
; â ã ă ä ä å ĺ æ ć ç ç è č é é ê ę } $mapfile]
set mapfile [string map {ë ë ì ě í í î î ï ď ð đ ñ ń ò ň ó ó ô ô õ ő &#246
; ö ÷ ÷ ø ř ù ů ú ú û ű ü ü ý ý þ ţ } $mapfile]
return $mapfile
}

proc channel_check { chan } {
foreach setting [channel info $chan] {
if {[regexp -- {^[\+-]} $setting]} {
if {![string compare "+imdb" $setting]} {
set permission 1
break
} else {
set permission 0
}
}
}
return $permission
}

proc replacevar {strin what withwhat} {
set output $strin
set replacement $withwhat
set cutpos 0
while { [string first $what $output] != -1 } {
set cutstart [expr [string first $what $output] - 1]
set cutstop [expr $cutstart + [string length $what] + 1]
set output [string range $output 0 $cutstart]$replacement[string range $output $cutstop end]
}
return $output
}

proc imdb_proc { nick uhost handle chan arg } {
global IMDB_DEBUG pub_or_not announce random binary IMDB_ALTERNATIVE
set arg [string map {\\ \\\\ \" \\\" \' \\\' \{ \\\{ \} \\\} \[ \\\[ \] \\\] \( \\\( \) \\\)} $arg]
# channel_check permission
set permission_result [channel_check $chan]
if {$IMDB_DEBUG == 1} { puthelp "NOTICE $nick :IMDB_DEBUG permission_result == $permission_result" }
if { $permission_result == 0 } { return }
# public or private
if {$pub_or_not == 1 } { set toput "PRIVMSG $chan" } else { set toput "NOTICE $nick" }
if {$IMDB_DEBUG == 1} { puthelp "NOTICE $nick :IMDB_DEBUG toput_result == $toput" }
# if no arg passed, show help
if {$arg == ""} {
if { $IMDB_ALTERNATIVE == 0 } { set using "Http 2.3+" } else { set using "Curl 6.0+" }
if {$IMDB_DEBUG == 1} { puthelp "NOTICE $nick :IMDB_DEBUG no arg passed, show help" }
putserv "$toput :IMDb info script \002v2.3.4\002 by B0unTy using \002$using\002"
putserv "$toput :\002Syntax: !imdb <movie title>\002 exemple: !imdb Beautiful Mind"
return
}
# initial search
set imdburl "http://www.imdb.com"
set imdbsearchurl "http://akas.imdb.com/find?tt=on;nm=on;mx=5;"
set searchString [string map {\ %20 & %26 , %2C . %20} $arg]
if {$IMDB_DEBUG == 1} { puthelp "NOTICE $nick :IMDB_DEBUG searchString: \"$searchString\"" }
if { $IMDB_ALTERNATIVE == 0 } {
set page [::http::config -useragent "MSIE 6.0"]
if {$IMDB_DEBUG == 1} { puthelp "NOTICE $nick :IMDB_DEBUG ${imdbsearchurl}q=$searchString" }
set page [::http::geturl ${imdbsearchurl}q=$searchString]
set html [::http::data $page]
::http::Finish $page
} else {
catch { exec $binary(CURL) "${imdbsearchurl}q=$searchString" } html
}
#if redirect necessary, find first link and redirect
if { [regexp {<title>IMDb name and title search</title>} $html] == 1 } {
if {$IMDB_DEBUG == 1} { puthelp "NOTICE $nick :IMDB_DEBUG redirect 1" }
set ttcode "0000001"
if [regexp {/title/tt[0-9]+} $html ttcode] {
set pos [string last / $ttcode] ; incr pos
set ttcode [string range $ttcode $pos end]
}
# for bogus ttcode
if { $ttcode == "0000001" } {
puthelp "$toput :No no no! I can't find that!"
if {$IMDB_DEBUG == 1} { puthelp "NOTICE $nick :IMDB_DEBUG bogus ttcode" }
return
}
set newurl "$imdburl/title/$ttcode/"
if {$IMDB_DEBUG == 1} { puthelp "NOTICE $nick :IMDB_DEBUG redirect 1 = $newurl" }
# get the page redirected to
unset html
if { $IMDB_ALTERNATIVE == 0 } {
set page [::http::config -useragent "MSIE 6.0"]
set page [::http::geturl $newurl]
set html [::http::data $page]
::http::Finish $page
} else {
catch { exec $binary(CURL) "$newurl" } html
}
# if no redirect happened, then get first page on match
} else {
if {$IMDB_DEBUG == 1} { puthelp "NOTICE $nick :IMDB_DEBUG redirect 0" }
if { $IMDB_ALTERNATIVE == 0 } {
upvar 0 $page oldpage
regexp {title/tt[0-9]+/} $oldpage(meta) location
} else {
set result [catch { exec $binary(CURL) -i "${imdbsearchurl}q=$searchString" } oldpage]
regexp {title/tt[0-9]+/} $oldpage location
}
if {$IMDB_DEBUG == 1} { puthelp "NOTICE $nick :IMDB_DEBUG redirect 0 Location == $location" }
set newurl "$imdburl/$location"
if {$IMDB_DEBUG == 1} { puthelp "NOTICE $nick :IMDB_DEBUG redirect 0 = $newurl" }
unset html
if { $IMDB_ALTERNATIVE == 0 } {
set page [::http::config -useragent "MSIE 6.0"]
set page [::http::geturl $newurl]
set html [::http::data $page]
::http::Finish $page
} else {
catch { exec $binary(CURL) "$newurl" } html
}
}
# for bogus searches
if {[string length $newurl] == 0} {
puthelp "$toput :No no no! I can't find that!"
if {$IMDB_DEBUG == 1} { puthelp "NOTICE $nick :IMDB_DEBUG bogus searches" }
return
}
set title "N/A" ; set name "N/A" ; set genre "N/A" ; set tagline "N/A"
set plot "N/A" ; set rating "N/A" ; set votes "N/A" ; set mpaa "N/A"
set runtime "N/A" ; set budget "N/A" ; set screens "N/A" ; set country "N/A"
set language "N/A" ; set soundmix "N/A" ; set top250 "N/A"
## get title
if [regexp {<title>[^<]+} $html title] {
set pos [expr [string last > $title] + 1]
set title [string range $title $pos end]
set title [htmlcodes $title]
}
if {$IMDB_DEBUG == 1} { puthelp "NOTICE $nick :IMDB_DEBUG title == $title" }
## get director
if [regexp {Directed by</b><br>\n<[^>]+>[^<]+} $html name] {
set pos [string last > $name] ; incr pos
set name [string range $name $pos end]
set name [htmlcodes $name]
}
if {$IMDB_DEBUG == 1} { puthelp "NOTICE $nick :IMDB_DEBUG director == $name" }
## get genre
if [regexp {<a href=./Sections/Genres[^\n]+} $html genre] {
regsub -all {<[^\>]*>} $genre {} genre
regsub {\(.*\)} $genre {} genre
}
if {$IMDB_DEBUG == 1} { puthelp "NOTICE $nick :IMDB_DEBUG genre == $genre" }
## get tagline
if [regexp {<b class="ch">Tagline:</b>[^<]+} $html tagline] {
set pos [string last > $tagline] ; incr pos
set tagline [string range $tagline $pos end]
set tagline [string trim $tagline]
set tagline [htmlcodes $tagline]
}
if {$IMDB_DEBUG == 1} { puthelp "NOTICE $nick :IMDB_DEBUG tagline == $tagline" }
## get plot
if [regexp {<b class=\"ch\">Plot (Summary|Outline):</b>[\s\n]+[^<]+} $html plot] {
set pos [string last > $plot] ; incr pos
set plot [string range $plot $pos end]
set plot [string trim $plot]
set plot [htmlcodes $plot]
}
if {$IMDB_DEBUG == 1} { puthelp "NOTICE $nick :IMDB_DEBUG plot == $plot" }
## get iMDb rating
if [regexp {<b>\d.\d/10</b> \([\w\s\d,]+\)} $html rating] {
set pos [string last ( $rating]
set pos1 [string first { } $rating $pos]
incr pos ; incr pos1 -1
set votes [string range $rating $pos $pos1]
set rating [string range $rating 3 8]
}
if {$IMDB_DEBUG == 1} { puthelp "NOTICE $nick :IMDB_DEBUG rating == $rating | votes == $votes" }
## get TOP 250
if [regexp {<a href="/top_250_films">[^\n]+} $html top250] {
regexp {#[^<]+} $top250 top250
}
if {$IMDB_DEBUG == 1} { puthelp "NOTICE $nick :IMDB_DEBUG top250 == $top250" }
## get MPAA
if [regexp {<b class="ch"><a href="/mpaa">[^\n]+} $html mpaa] {
regsub -all {<[^\>]*>} $mpaa {} mpaa
regsub {MPAA: } $mpaa {} mpaa
set mpaa [htmlcodes $mpaa]
}
if {$IMDB_DEBUG == 1} { puthelp "NOTICE $nick :IMDB_DEBUG mpaa == $mpaa" }
## get runtime
if [regexp {<b class=\"ch\">Runtime:</b>([\n\s]+)([\w:]+)(\d+)} $html runtime] {
regsub -all {[\n\s]+} $runtime {} runtime
set pos [string last > $runtime] ; incr pos
set runtime [string range $runtime $pos end]
set pos [string last : $runtime]
if {$pos != -1} {incr pos ; set runtime [string range $runtime $pos end]}
}
if {$IMDB_DEBUG == 1} { puthelp "NOTICE $nick :IMDB_DEBUG runtime == $runtime" }
## get country
if [regexp {<a href=./Sections/Countries[^\n]+} $html country] {
regsub -all {<[^\>]*>} $country {} country
}
if {$IMDB_DEBUG == 1} { puthelp "NOTICE $nick :IMDB_DEBUG country == $country" }
## get language
if [regexp {<a href=./Sections/Languages[^\n]+} $html language] {
regsub -all {<[^\>]*>} $language {} language
}
if {$IMDB_DEBUG == 1} { puthelp "NOTICE $nick :IMDB_DEBUG language == $language" }
## get soundmix
if [regexp {<a href=./List.sound-mix=[^\n]+} $html soundmix] {
regsub -all {<[^\>]*>} $soundmix {} soundmix
}
if {$IMDB_DEBUG == 1} { puthelp "NOTICE $nick :IMDB_DEBUG language == $language" }
unset html
if { $IMDB_ALTERNATIVE == 0 } {
set page2 [::http::config -useragent "MSIE 6.0"]
set page2 [::http::geturl ${newurl}business]
set html [::http::data $page2]
::http::Finish $page2
} else {
catch { exec $binary(CURL) "${newurl}business" } html
}
## get budget
if [regexp {<b>Budget</b></dt>[\s\n]?<dd><[^>]+>[^<]+} $html budget] {
set pos [string last > $budget] ; incr pos
set budget [string range $budget $pos end]
set budget [string map {€ £ Ł } $budget]
}
if {$IMDB_DEBUG == 1} { puthelp "NOTICE $nick :IMDB_DEBUG budget == $budget" }
## get screens
if [regexp {<b>Opening Weekend</b></dt>[\s\n]?[^\n]+} $html opweek] {
if [regexp {\(USA\) \([^)]+\) \([^)]+\)} $opweek screens] {
set pos [string last ( $screens]
set pos1 [string last ) $screens]
incr pos ; incr pos1 -1
set screens [string range $screens $pos $pos1]
}
}
if {$IMDB_DEBUG == 1} { puthelp "NOTICE $nick :IMDB_DEBUG screens == $screens" }
## output results
if { ! [string compare [lindex $announce(IMDBIRC) 0] "random"] && [string is alnum -strict [lindex $announce(IMDBIRC)
1]] == 1 } {
set output $random(IMDBIRC\-[rand [lindex $announce(IMDBIRC) 1]])
} else {
set output $announce(IMDBIRC)
}
set output [replacevar $output "%bold" "\002"]
set output [replacevar $output "%color" "\003"]
set output [replacevar $output "%uline" "\037"]
set output [replacevar $output "%title" $title]
set output [replacevar $output "%url" $newurl]
set output [replacevar $output "%name" $name]
set output [replacevar $output "%genre" $genre]
set output [replacevar $output "%tagline" $tagline]
set output [replacevar $output "%plot" $plot]
set output [replacevar $output "%rating" $rating]
set output [replacevar $output "%votes" $votes]
set output [replacevar $output "%top250" $top250]
set output [replacevar $output "%mpaa" $mpaa]
set output [replacevar $output "%time" $runtime]
set output [replacevar $output "%country" $country]
set output [replacevar $output "%language" $language]
set output [replacevar $output "%soundmix" $soundmix]
set output [replacevar $output "%budget" $budget]
set output [replacevar $output "%screens" $screens]
foreach line [split $output "\n"] {
puthelp "$toput :$line"
}
}

putlog "IMDB info version 2.3.4 loaded"




--



and its not working

i've tried to channel:

!imdb matrix
_________________
there's only one problem with life, there's no bg music.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Alchera
Revered One


Joined: 11 Aug 2003
Posts: 3344
Location: Ballarat Victoria, Australia

PostPosted: Tue Feb 08, 2005 5:23 pm    Post subject: Reply with quote

You will find a fully functional IMDB script here.
Code:
.chanset #channel +imdb

_________________
Add [SOLVED] to the thread title if your issue has been.
Search | FAQ | RTM
Back to top
View user's profile Send private message Visit poster's website
FuE-
Halfop


Joined: 27 Nov 2004
Posts: 57

PostPosted: Fri Feb 25, 2005 8:21 pm    Post subject: Reply with quote

my boy die when i do !imdb and it say in partyline something about debug, bugg report bug...
Back to top
View user's profile Send private message
Ofloo
Owner


Joined: 13 May 2003
Posts: 953
Location: Belguim

PostPosted: Sat Feb 26, 2005 4:15 am    Post subject: Reply with quote

? maybe paste it ..
_________________
XplaiN but think of me as stupid
Back to top
View user's profile Send private message Visit poster's website
awyeah
Revered One


Joined: 26 Apr 2004
Posts: 1580
Location: Switzerland

PostPosted: Sat Feb 26, 2005 8:05 am    Post subject: Reply with quote

Paste the error, and also try .tcl set errorInfo in DCC to check where is the script choking.
_________________
·­awyeah·

==================================
Facebook: jawad@idsia.ch (Jay Dee)
PS: Guys, I don't accept script helps or requests personally anymore.
==================================
Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger MSN Messenger
FuE-
Halfop


Joined: 27 Nov 2004
Posts: 57

PostPosted: Sat Feb 26, 2005 1:16 pm    Post subject: Reply with quote

and now suddely i cant dcc chat to my bot he not respond on any dcc cheat request and when i start the bot with cmd. then i see to accept dcc chat with FuE- do /dccanswer FuE- .... can you help me
Back to top
View user's profile Send private message
FuE-
Halfop


Joined: 27 Nov 2004
Posts: 57

PostPosted: Sun Feb 27, 2005 1:29 pm    Post subject: Reply with quote

hm, i read it and i have downloaded B0unTy's "working" script
but i get

Quote:
[18:01] Tcl error [imdb_proc]: can't read "location": no such variable


when i using !imdb <movie>

And in imdb.tcl

Code:
# set IMDB_ALTERNATIVE 0 = use the internal tcl http 2.3 package
# set IMDB_ALTERNATIVE 1 = use the external curl 6.0+
set IMDB_ALTERNATIVE 1

# set here the location path where find curl 6.0+
set binary(CURL) "C:/Jul/bot/scripts/imdb/"


And then regxp fix...

Code:
proc imdb_proc { nick uhost handle chan arg } {
   global IMDB_DEBUG pub_or_not announce random binary IMDB_ALTERNATIVE
   set arg [string map {\\ \\\\ \" \\\" \' \\\' \{ \\\{ \} \\\} \[ \\\[ \] \\\] \( \\\( \) \\\)} $arg]
   # channel_check permission


What shall i do? I feel stupid to ask this but i can't find anything in the fourm who can help me right now....
Back to top
View user's profile Send private message
ctatay
Voice


Joined: 05 Mar 2005
Posts: 1

PostPosted: Sat Mar 05, 2005 1:30 pm    Post subject: Reply with quote

dont feel bad, on !imdb Friday it will work but on !imdb Snow Dogs it gives me the same error. Ive tried everything as well.
Back to top
View user's profile Send private message
Alchera
Revered One


Joined: 11 Aug 2003
Posts: 3344
Location: Ballarat Victoria, Australia

PostPosted: Sat Mar 05, 2005 5:42 pm    Post subject: Reply with quote

You need to enclose within quotes. Smile
Code:
!imdb 'Snow Dogs'

_________________
Add [SOLVED] to the thread title if your issue has been.
Search | FAQ | RTM
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    egghelp.org community Forum Index -> Archive All times are GMT - 4 Hours
Goto page Previous  1, 2
Page 2 of 2

 
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