alias imdb { unset %imdb.* | set %imdb.screens 0 sockclose imdb* | sockclose boximdb | set %imdb.url $1 sockopen $+(imdb,$rand(111,999)) www.imdb.com 80 sockopen boximdb www.imdb.com 80 echo -a %imdb.url } on *:sockopen:imdb*: { var %s = sockwrite -tn $sockname | var %p $remove(%imdb.url,http://,www.,imdb.com) %s GET %p HTTP/1.1 | %s Host: www.imdb.com | %s } on *:SOCKREAD:imdb*: { var %f,%s,%1,%2,%3,%4,%5,%6,%7,%8,%9,%0,%r,%t,%c,%l,%g,%u,%r,%v sockread %f | while $sockbr { var %s = sockwrite -tn $sockname if (%1) { var %r = $remove(%f,<,/b,b,>) | var %1 } if (%2) { var %g = $remove($_h(%f),more,/) | var %2 } if (%3) { var %u = %f | var %3 } if (%4) { var %l = $remove($_h(%f),/) | var %4 } if (%5) { var %c = $remove($_h(%f),/) | var %5 } if ( isin %f) { var %v = $remove($_h(%f),$chr(32),votes,$chr(40),$chr(41)) } if (
Genre:
isin %f) { var %2 1 } if (
Language:
isin %f) { var %4 1 } if ( isin %f) { var %t = $remove(%f,<title>,) } if (
Runtime:
isin %f) { var %3 1 } if (User Rating: isin %f) { var %1 1 } if (
Country:
isin %f) { var %5 1 } sockread %f if (%t) set %imdb.title %t if (%g) set %imdb.genre %g if (%r) set %imdb.rating %r if (%v) set %imdb.votes %v if (%u) set %imdb.runtime %u if (%l) set %imdb.languages %l if (%c) set %imdb.country %c if ( isin %f) { kill $sockname } } } on *:sockopen:boximdb: { var %s = sockwrite -tn $sockname | var %p $remove(%imdb.url,http://,www.,imdb.com) %s GET $+(%p,business) HTTP/1.1 | %s Host: www.imdb.com | %s } on *:SOCKREAD:boximdb: { var %f,%s,%o,%p sockread %f | while $sockbr { var %s = sockwrite -tn $sockname if (screens isin $_h(%f)) { if (USA isin $_h(%f)) || (UK isin $_h(%f)) { set %imdb.screens $_h(%f) } } if (Gross isin $_h(%f)) { kill $sockname | return } sockread %f if ( isin %f) { kill $sockname } } } alias -l kill { if (!%imdb.rdy) { set %imdb.rdy 1 | return } echo -a %imdb.title echo -a %imdb.genre echo -a %imdb.rating echo -a %imdb.votes echo -a %imdb.runtime echo -a %imdb.languages echo -a %imdb.country echo -a %imdb.screens unset %imdb.* sockclose $1 } alias -l _h { if ($1) { var %strip,%parm = <> $remove($1-,> <,><,$chr(9)) <>,%n = 2 while ($gettok($gettok(%parm,%n,62),1,60)) { %strip = %strip $ifmatch inc %n } return %strip } } alias fimdb { sockopen fimdb www.imdb.com 80 | set %imdb.search $1- } on *:sockopen:fimdb: { var %s = sockwrite -tn $sockname | var %p $remove(%imdb.url,http://,www.,imdb.com) %s GET $+(/find?s=all&q=,$_e(%imdb.search)) HTTP/1.1 | %s Host: www.imdb.com | %s | unset %imdb.search } alias _e { var %s, %p = $len($1-) while (%p) { if ($mid($1-,%p,1) isalnum) { %s = $+($ifmatch,%s) } else { %s = $+(%,$base($asc($mid($1-,%p,1)),10,16),%s) } dec %p } return %s } on *:SOCKREAD:fimdb: { sockread %f | while $sockbr { var %s = sockwrite -tn $sockname if (/title/tt isin %f) { imdb $+(www.imdb.com/,$gettok($remove($gettok(%f,2,61),"),1-2,47),/) sockclose $sockname | return } if ( isin %f) { sockclose $sockname | return } sockread %f } }