Code: Select all
Tcl error [imdb::imdb_evaluate_search::search_evaluate_imdb]: wrong # args: should be "putserv text ?options?"
Code: Select all
putserv "$imdb_pub :\00308\[Cast\]\017 $actors" - \00308\[Plot\]\017 $plot"
putserv "PRIVMSG $imdb_pub :\00308\[Cast\]\017 $actors" - \00308\[Plot\]\017 $plot"
Code: Select all
putserv "PRIVMSG $imdb_pub :\00308\[Link\]\017 http://www.imdb.com/title/$id/" - \00308\[Title\]\017 $title \00308\[Year\]\017 $year \00308\[Genre\]\017 $genre" - \00308\[Directed By\]\017 $director \00308\[Writen By\]\017 $writer" - \00308\[Released\]\017 $released \00308\[Rated\]\017 $rated"
putserv "PRIVMSG $imdb_pub :\00308\[Cast\]\017 $actors" - \00308\[Plot\]\017 $plot"
putserv "PRIVMSG $imdb_pub :\00308\[Runtime\]\017 $runtime \00308\[Rating\]\017 $rating \00308\[Votes\]\017 $votes" - \00308\[Poster\]\017 $poster"
okay, here's where I got so far:nml375 wrote:You've got a quote in there, just after $actors. Remove it, or escape it using \
Code: Select all
putserv "PRIVMSG $imdb_pub :\00308\[Link\]\017 http://www.imdb.com/title/$id/ - \00308\[Title\]\017 $title \00308\[Year\]\017 $year \00308\[Genre\]\017 $genre - \00308\[Directed By\]\017 $director \00308\[Writen By\]\017 $writer - \00308\[Released\]\017 $released \00308\[Rated\]\017 $rated"
putserv "PRIVMSG $imdb_pub :\00308\[Cast\]\017 $actors - \00308\[Plot\]\017 $plot"
putserv "PRIVMSG $imdb_pub :\00308\[Runtime\]\017 $runtime \00308\[Rating\]\017 $rating \00308\[Votes\]\017 $votes - \00308\[Poster\]\017 $poster"
Code: Select all
putserv "$imdb_pub :\00308\[Link\]\017 http://www.imdb.com/title/$id/ - \00308\[Title\]\017 $title \00308\[Year\]\017 $year \00308\[Genre\]\017 $genre - \00308\[Directed By\]\017 $director \00308\[Writen By\]\017 $writer - \00308\[Released\]\017 $released \00308\[Rated\]\017 $rated"
putserv "$imdb_pub :\00308\[Cast\]\017 $actors - \00308\[Plot\]\017 $plot"
putserv "$imdb_pub :\00308\[Runtime\]\017 $runtime \00308\[Rating\]\017 $rating \00308\[Votes\]\017 $votes - \00308\[Poster\]\017 $poster"
Code: Select all
putserv "$imdb_pub :\00308\[Link\]\017 http://www.imdb.com/title/$id/ - \00308\[Title\]\017 $title \00308\[Year\]\017 $year \00308\[Genre\]\017 $genre - \00308\[Directed By\]\017 $director \00308\[Writen By\]\017 $writer - \00308\[Released\]\017 $released \00308\[Rated\]\017 $rated"
putserv "$imdb_pub :\00308\[Cast\]\017 $actors - \00308\[Plot\]\017 $plot"
putserv "$imdb_pub :\00308\[Runtime\]\017 $runtime \00308\[Rating\]\017 $rating \00308\[Votes\]\017 $votes - \00308\[Poster\]\017 $poster"
Code: Select all
putserv "$imdb_pub :\002\[Link\]\017 http://www.imdb.com/title/$id/ \00304-\017 \002\[Title\]\017 $title \002\[Year\]\017 $year \00304-\017 \002\[Genre\]\017 $genre \00304-\017 \002\[Directed By\]\017 $director \00304-\017 \002\[Writen By\]\017 $writer \00304-\017 \002\[Released\]\017 $released \00304-\017 \002\[Rated\]\017 $rated \00304-\017 \002\[Runtime\]\017 $runtime \00304-\017 \002\[Rating\]\017 $rating \00304-\017 \002\[Votes\]\017 $votes"
putserv "$imdb_pub :\002\[Cast\]\017 $actors \00304-\017 \002\[Plot\]\017 $plot"
putserv "$imdb_pub :\002\[Poster\]\00303 $poster"
Code: Select all
putquick "$imdb_pub :\0033Title:\003 \002$title\002 \u00E2\u0080\u00A2 \0033Year:\003 $year \u00E2\u0080\u00A2 \0033Rated:\003 $rated \u00E2\u0080\u00A2 \0033Genre:\003 $genre"
putquick "$imdb_pub :\0033Director:\003 $director \u00E2\u0080\u00A2 \0033Actors:\003 $actors"
putquick "$imdb_pub :\0033Rating:\003 \002$rating\002/10 \u00E2\u0080\u00A2 \0033Runtime:\003 $runtime \u00E2\u0080\u00A2 \0033URL:\003 http://imdb.com/title/$id"
Code: Select all
putserv "$imdb_pub :\002$title ($year) \00304/\017 \002Directed By:\017 $director \00304/\017 http://www.imdb.com/title/$id/"
putserv "$imdb_pub :\002Genre:\017 $genre \00304/\017 \002Rated:\017 $rated"
putserv "$imdb_pub :\002Cast:\017 $actors"
putserv "$imdb_pub :\002Rating:\017 $rating ($votes votes) \00304/\017 \002Runtime:\017 $runtime"
putserv "$imdb_pub :\002Plot:\017 $plot"
Code: Select all
# 15/02/2013
# by doggo #omgwtfnzbs @ EFNET
# drop in and try this script ;) all feedback is welcome
# to add channels, do: .chanset #somechan +imdbapi
setudef flag imdbapi
namespace eval imdb {
namespace eval api {
#time limit between cmds
variable flood_set "10"
#trigger to search by ttid
variable info_tttrig ".tt"
#title search trigger
variable info_strig ".imdb"
variable ttsearch_url "http://www.omdbapi.com/?i"
variable titlesearch_url "http://www.omdbapi.com/?t"
variable info_htrig "??imdb"
}
#binds
bind pub -|- $imdb::api::info_tttrig imdb::imdb_evaluate::evaluate_imdb
bind pub -|- $imdb::api::info_strig imdb::imdb_evaluate_search::search_evaluate_imdb
bind pub -|- $imdb::api::info_htrig imdb::imdb_helper::helper_imdb
# get info from ttid proc
namespace eval imdb_evaluate {
proc evaluate_imdb {nick hand host chan titleid} {
if {![channel get $chan "imdbapi"]} { return 0 }
set imdb_pub "PRIVMSG $chan"
#flood protection, borrowed from http://forum.egghelp.org/viewtopic.php?t=17078 :D
variable imdb_flood
if {[info exists imdb_flood(lasttime,$chan)] && [expr { $imdb_flood(lasttime,$chan) + $imdb::api::flood_set }] > [clock seconds]} {
puthelp "$imdb_pub :You can use only 1 command in $imdb::api::flood_set seconds. Wait [expr { $imdb::api::flood_set + $imdb_flood(lasttime,$chan) - [clock seconds] }] seconds and try again."
return
}
set titleid [split [stripcodes bcruag $titleid]]
if {![string length [set ttid [lindex $titleid 0]]]} {
putquick "$imdb_pub :Usage: $imdb::api::info_tttrig tt1899353"
return
}
set action [lindex $titleid 1]
if {![regexp {^tt([0-9]+)$} $ttid match imdbid] } {
putquick "$imdb_pub :Error: not a valid ttid."
return
}
if {![catch { ::http::geturl $imdb::api::ttsearch_url=tt$imdbid -timeout 15000 } token]} {
set information [::http::data $token]
::http::cleanup $token
if {![regexp -nocase {response\"\:\"(.*?)\"} $information match response]} {
putquick "$imdb_pub :$imdb::api::ttsearch_url=tt$imdbid timed out.. try again in a bit "
return
} elseif {![string match "True" $response]} {
putquick "$imdb_pub :Error: Unknown IMDb ID"
return
}
::imdb::imdb_trigger::trigger_imdb $information $action $chan
} else {
putquick "$imdb_pub :Error: $token"
return
}
set imdb_flood(lasttime,$chan) [clock seconds]
}
}
# get info from title search proc
namespace eval imdb_evaluate_search {
proc search_evaluate_imdb {nick hand host chan imdbsearch} {
if {![channel get $chan "imdbapi"]} { return 0 }
set imdb_pub "PRIVMSG $chan"
#flood protection, borrowed from http://forum.egghelp.org/viewtopic.php?t=17078 :D
variable imdb_flood
if {[info exists imdb_flood(lasttime,$chan)] && [expr { $imdb_flood(lasttime,$chan) + $imdb::api::flood_set } ] > [clock seconds]} {
puthelp "$imdb_pub :You can use only 1 command in $imdb::api::flood_set seconds. Wait [expr { $imdb::api::flood_set + $imdb_flood(lasttime,$chan) - [clock seconds] } ] seconds and try again."
return
}
if {![llength [set imdbsearch [split [stripcodes bcruag $imdbsearch]]]]} {
putquick "$imdb_pub :Usage: $imdb::api::info_strig Mission Impossible"
return
}
set yearvar "";
if {[regexp {([0-9]{4})} $imdbsearch match yearvar]} {
regsub -all {([0-9]{4})} $imdbsearch {} imdbsearch
}
if {[string index [set imdbswitch [lindex $imdbsearch end]] 0] == "-"} {
set imdbsearch [join [lrange $imdbsearch 0 end-1]]
set imdbswitch [string range $imdbswitch 1 end]
} else {
set imdbswitch ""
set imdbsearch [join $imdbsearch]
}
if {$yearvar == ""} {
set omdbsearchurl "$imdb::api::titlesearch_url=[http::formatQuery $imdbsearch]"
} else {
set omdbsearchurl "$imdb::api::titlesearch_url=[http::formatQuery $imdbsearch]&y=[http::formatQuery $yearvar]"
}
#putquick "$imdb_pub :$omdbsearchurl"
if {![catch { ::http::geturl $omdbsearchurl -timeout 15000 } token]} {
set information [::http::data $token]
::http::cleanup $token
regexp -nocase {response\"\:\"(.*?)\"} $information match response
if {![info exists response]} {
putquick "$imdb_pub :Error: $omdbsearchurl timed out.. try again in a bit "
return
} elseif {![string match "True" $response]} {
putquick "$imdb_pub :Error: 0 Results for $imdbsearch $yearvar "
return
}
::imdb::imdb_trigger::trigger_imdb $information $imdbswitch $chan
} else {
putquick "$imdb_pub :Error: $token"
return
}
set imdb_flood(lasttime,$chan) [clock seconds]
}
}
# parse the returned json proc
namespace eval imdb_trigger {
proc trigger_imdb {information action chan} {
regexp -nocase {title\"\:\"(.*?)\"} $information match title
regexp -nocase {year\"\:\"(.*?)\"} $information match year
regexp -nocase {rated\"\:\"(.*?)\"} $information match rated
regexp -nocase {released\"\:\"(.*?)\"} $information match released
regexp -nocase {genre\"\:\"(.*?)\"} $information match genre
regexp -nocase {director\"\:\"(.*?)\"} $information match director
regexp -nocase {writer\"\:\"(.*?)\"} $information match writer
regexp -nocase {actors\"\:\"(.*?)\"} $information match actors
regexp -nocase {plot\"\:\"(.*?)\"} $information match plot
regexp -nocase {poster\"\:\"(.*?)\"} $information match poster
regexp -nocase {runtime\"\:\"(.*?)\"} $information match runtime
regexp -nocase {rating\"\:\"(.*?)\"} $information match rating
regexp -nocase {votes\"\:\"(.*?)\"} $information match votes
regexp -nocase {ID\"\:\"(.*?)\"} $information match id
set imdb_pub "PRIVMSG $chan"
switch -exact -- [string tolower $action] {
"title" { putquick "$imdb_pub :\00308\[IMDB Title\]\017 $title" }
"year" { putquick "$imdb_pub :\00308\[IMDB Year\]\017 $year" }
"rated" { putquick "$imdb_pub :\00308\[IMDB Rated\]\017 $rated" }
"released" { putquick "$imdb_pub :\00308\[IMDB Released\]\017 $released" }
"genre" { putquick "$imdb_pub :\00308\[IMDB Genre\]\017 $genre" }
"director" { putquick "$imdb_pub :\00308\[IMDB Directed By\]\017 $director" }
"writer" { putquick "$imdb_pub :\00308\[IMDB Written By\]\017 $writer" }
"cast" { putquick "$imdb_pub :\00308\[IMDB Cast\]\017 $actors" }
"plot" { putquick "$imdb_pub :\00308\[IMDB Plot\]\017 $plot" }
"poster" { putquick "$imdb_pub :\00308\[IMDB Poster\]\017 $poster" }
"runtime" { putquick "$imdb_pub :\00308\[IMDB Runtime\]\017 $runtime" }
"rating" { putquick "$imdb_pub :\00308\[IMDB Rating\]\017 $rating" }
"votes" { putquick "$imdb_pub :\00308\[IMDB Votes\]\017 $votes" }
"link" { putquick "$imdb_pub :\00308\[Link\]\017 http://www.imdb.com/title/$id/" }
default {
putserv "$imdb_pub :\002$title ($year) \00304/\017 \002Directed By:\017 $director \00304/\017 http://www.imdb.com/title/$id/"
putserv "$imdb_pub :\002Genre:\017 $genre \00304/\017 \002Rated:\017 $rated"
putserv "$imdb_pub :\002Cast:\017 $actors"
putserv "$imdb_pub :\002Rating:\017 $rating ($votes votes) \00304/\017 \002Runtime:\017 $runtime"
putserv "$imdb_pub :\002Plot:\017 $plot"
}
}
}
}
# usage helper proc
namespace eval imdb_helper {
proc helper_imdb {nick hand host chan text} {
if {![channel get $chan "imdbapi"]} { return }
set imdb_pub "PRIVMSG $chan"
putquick "$imdb_pub :\00308\[IMDB Search Help\]\017"
putquick "$imdb_pub :\00308\[Search IMDB Id\]\017 $imdb::api::info_tttrig tt0234215 | or | $imdb::api::info_tttrig tt0234215 switch"
putquick "$imdb_pub :\00308\[Search Titles\]\017 $imdb::api::info_strig the matrix reloaded | or | $imdb::api::info_strig the matrix reloaded --switch"
putquick "$imdb_pub :\00308\[Search Switches\]\017 title year rated released genre director writer cast plot poster runtime rating votes link | no switch = spam :D"
}
}
}
#eof
Code: Select all
putserv "$imdb_pub :\002\[Link\]\017 http://www.imdb.com/title/$id/ \00304-\017 \002\[Title\]\017 $title \002\[Year\]\017 $year \00304-\017 \002\[Genre\]\017 $genre \00304-\017 \002\[Directed By\]\017 $director \00304-\017 \002\[Writen By\]\017 $writer \00304-\017 \002\[Released\]\017 $released \00304-\017 \002\[Rated\]\017 $rated \00304-\017 \002\[Runtime\]\017 $runtime \00304-\017 \002\[Rating\]\017 $rating \00304-\017 \002\[Votes\]\017 $votes"
putserv "$imdb_pub :\002\[Cast\]\017 $actors \00304-\017 \002\[Plot\]\017 $plot"
putserv "$imdb_pub :\002\[Poster\]\00303 $poster"