; imdb title searcher v1 ; LtGuide (ltguide xscripters.com) ; 11 January 2006 ; msg channel alias -l imdb.chan return #scripting ; displays X possible matches ; (integer >0 for on, 0 for off) alias -l imdb.mtch return 3 on $*:text:/^!imdb .*$/:#:{ if (!%imdb_spam) && ($chan == $imdb.chan) { set -u10 %imdb_spam 1 imdb $chan $2- } } on *:sockopen:imdb:{ if (!$sockerr) { var %s sockwrite -n imdb %s GET $+(/find?q=,$replace($gettok($sock(imdb).mark,3-,32),$chr(32),% $+ 20),;s=tt) HTTP/1.0 %s Host: imdb.com %s } else imdb.msg $gettok($sock(imdb).mark,1,32) unable to search imdb, $sock(imdb).wsmsg } on *:sockread:imdb:{ var %r sockread %r if ($sockerr) return tokenize 32 $sock(imdb).mark .echo -q $regex(%r,/Location: (.*)/) if ($regml(1)) { imdb.msg $1 $+(',$3-,') @ $gettok($v1,1,63) sockclose imdb } elseif ($2 == $imdb.mtch) || ( isin %r) || (%r == Suggestions For Improving Your Results) { imdb.msg $1 search for $+(',$3-,') ended sockclose imdb } else { .echo -q $regex(%r,/
  • [ ]*(.*)([^<]+)/) if ($regml(1)) { var %i $v1 imdb.msg $1 $imdb.ent($regml(2) $regml(3)) @ http://imdb.com $+ %i sockmark imdb $1 $calc($2 +1) $3- } } } on *:sockclose:imdb:{ imdb.msg $gettok($sock(imdb).mark,1,32) unable to search imdb, $sock(imdb).wsmsg (socket closed prematurely) } alias imdb.ent { var %r $1-,%l = $regex($1-,/(&#(?:\d{1,3});)/g) while (%l) { %r = $+($left(%r,$calc($regml(%l).pos -1)),$chr($mid($regml(%l),3,-1)),$mid(%r,$calc($regml(%l).pos + $len($regml(%l))))) dec %l } return %r } alias -l imdb.msg { if ($me ison $1) msg $1- } alias imdb { if (!$sock(imdb)) && ($me ison $1) { sockopen imdb imdb.com 80 sockmark imdb $1 0 $left($$2-,50) } }