All pastes #480876 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-05-10 14:02 UTC
rendered paste body
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 (<a href="ratings"> isin %f) { var %v = $remove($_h(%f),$chr(32),votes,$chr(40),$chr(41)) }
    if (<h5>Genre:</h5> isin %f) { var %2 1 }
    if (<h5>Language:</h5> isin %f) { var %4 1 }
    if (<title> isin %f) { var %t = $remove(%f,<title>,</title>) }
    if (<h5>Runtime:</h5> isin %f) { var %3 1 }
    if (<b>User Rating:</b> isin %f) { var %1 1 }
    if (<h5>Country:</h5> 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 (</html> 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 (</html> 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 (</html> isin %f) { sockclose $sockname | return }
    sockread %f
  }
}