Ford

Imdb for mIRC - No Colors

Apr 2nd, 2011
853
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
mIRC 10.13 KB | None | 0 0
  1. ;!IMDB Movie Search Script by Ford_Lawnmower irc.GeekShed.net #Script-Help
  2. alias -l IMDB {
  3.   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Start Setup;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  4.   ;; Change %tagcolor to the color you want for tags:             ;;
  5.   var %tagcolor $chr(3)
  6.   ;; Change %textcolor to the color you want for normal text  ;;
  7.   var %textcolor $chr(3)
  8.   ;; Change %linkcolor to the color/format you want for links  ;;
  9.   var %linkcolor $chr(3)
  10.   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;End Setup;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  
  11.   var %sockname $+(IMDB,$network,$2,$ticks)
  12.   sockopen %sockname www.imdb.com 80
  13.   sockmark %sockname $1-2 $+(/title/,$3,/) 0 %tagcolor %textcolor %linkcolor 0 0
  14. }
  15. menu Channel,Status {
  16.   .$iif($group(#IMDB) == On,$style(1)) IMDB IMDB Trigger
  17.   ..$iif($group(#IMDB) == On,$style(2)) On: .enable #IMDB
  18.   ..$iif($group(#IMDB) == Off,$style(2)) Off: .disable #IMDB
  19. }
  20. #IMDB on
  21. On $*:Text:/^(!|@)IMDB.*/Si:#: {
  22.   if ($timer($+(IMDB,$network,$nick))) { return }
  23.   .timer $+ $+(IMDB,$network,$nick) 1 6 noop
  24.   var %method $iif($regml(1) == !,.notice $nick,$iif($regex($nick($chan,$nick).pnick,/(!|~|&|@|%)/),.msg $chan,.notice $nick))
  25.   GIMDB %method $2-
  26. }
  27. #IMDB end
  28. alias EIMDB { GIMDB echo -a $1- }
  29. alias -l GIMDB {
  30.   $1-2 Searching For: $3- .............
  31.   var %sockname $+(GIMDB,$network,$2,$ticks)
  32.   sockopen %sockname www.google.com 80
  33.   sockmark %sockname $1-2 $+(/search?q=,$replace($3-,$chr(32),+),+site:imdb.com&rls=en&hl=en) $3-
  34. }
  35. On *:sockopen:GIMDB*: {
  36.   if (!$sockerr) {
  37.     sockwrite -nt $sockname GET $gettok($sock($sockname).mark,3,32) HTTP/1.0
  38.     sockwrite -n $sockname Host: www.google.com
  39.     sockwrite -n $sockname User-Agent: Opera 9.6
  40.     sockwrite -n $sockname $crlf
  41.   }
  42.   else { echo -st Socket Error $nopath($script) | sockclose $sockname | return }
  43. }
  44. On *:sockread:GIMDB*: {
  45.   if ($sockerr) { echo -st Socket Error $nopath($script) | sockclose $sockname | return }
  46.   else {
  47.     sockread &GIMDB
  48.     if ($bintween(&GIMDB,Search Results</h2><div id=ires><ol><li class=g><h3 class="r"><a href="http://www.imdb.com/title/,/" class=l,1)) {
  49.       IMDB $gettok($sock($sockname).mark,1-2,32) $v1
  50.       sockclose $sockname
  51.       return    
  52.     }
  53.     elseif ($bintween(&GIMDB,<div id=resultStats>,0 results,1)) {
  54.       $gettok($sock($sockname).mark,1-2,32) Sorry - No cannot find $gettok($sock($sockname).mark,4-,32)
  55.       sockclose $sockname
  56.       return
  57.     }
  58.   }
  59. }
  60. On *:sockclose:GIMDB*: { echo -a sockclose | $gettok($sock($sockname).mark,1-2,32) Sorry - No cannot find $gettok($sock($sockname).mark,4-,32) }
  61. On *:sockopen:IMDB*: {
  62.   if (!$sockerr) {
  63.     sockwrite -nt $sockname GET $gettok($sock($sockname).mark,3,32) HTTP/1.0
  64.     sockwrite -n $sockname Host: www.imdb.com
  65.     sockwrite -n $sockname $crlf
  66.   }
  67.   else { echo -st Socket Error $nopath($script) | sockclose $sockname | return }
  68. }
  69. On *:sockread:IMDB*: {
  70.   if ($sockerr) { echo -st Socket Error $nopath($script) | sockclose $sockname | return }
  71.   else {
  72.     var %IMDb | sockread %IMDb
  73.     if ($regex(%imdb,/<title>([^<]*)\s-\sIMDb<\/title>/i)) { addmark $+($gettok($sock($sockname).mark,5,32),Title:,$chr(32),$gettok($sock($sockname).mark,6,32)) $Xchr($regml(1)) }
  74.     elseif ($regex(%imdb,/([a-z]{6,8}:)/i)) sockmark $sockname $puttok($sock($sockname).mark,$regml(1),4,32)
  75.     elseif (<h2>Storyline</h2> isin %imdb) sockmark $sockname $puttok($sock($sockname).mark,plot:,4,32)
  76.     elseif (<table class="cast_list"> isin %imdb) sockmark $sockname $puttok($sock($sockname).mark,cast:,4,32)
  77.     elseif (Release Date: isin %imdb) sockmark $sockname $puttok($sock($sockname).mark,date:,4,32)
  78.     elseif ($gettok($sock($sockname).mark,4,32) == runtime:) {
  79.       if (min isin %imdb) {
  80.         addmark $+($gettok($sock($sockname).mark,5,32),Runtime:,$gettok($sock($sockname).mark,6,32)) %imdb
  81.         sockmark $sockname $puttok($sock($sockname).mark,$v1,4,32)
  82.         tokenize 32 $sock($sockname).mark
  83.         put $1-2 $6 $+($10-,$chr(32),$iif($8,$replace($8,_,$chr(32))),$chr(32),$chr(15),$5,$chr(32),Link:,$chr(32),$7,http://www.imdb.com,$3)
  84.         sockclose $sockname
  85.         return
  86.       }
  87.     }
  88.     elseif ($gettok($sock($sockname).mark,4,32) == genres:) {
  89.       if ($regex(%imdb,/">([^<]*)<\/a>/g)) addmark $+($gettok($sock($sockname).mark,5,32),Genres:,$gettok($sock($sockname).mark,6,32)) $regml(1) $regml(2) $regml(3) $regml(4) $regml(5)
  90.       elseif (</div> isin %imdb) sockmark $sockname $puttok($sock($sockname).mark,$v1,4,32)
  91.     }
  92.     elseif ($gettok($sock($sockname).mark,4,32) == director:) {
  93.       if ($regex(%imdb,/\/">([^<]*)<\/a>/)) addmark $+($gettok($sock($sockname).mark,5,32),Director:,$gettok($sock($sockname).mark,6,32)) $Xchr($regml(1))
  94.       elseif (</div> isin %imdb) sockmark $sockname $puttok($sock($sockname).mark,$v1,4,32)
  95.     }
  96.     elseif ($gettok($sock($sockname).mark,4,32) == writer:) {
  97.       if ($regex(%imdb,/\/">([^<]*)<\/a>/)) addmark $+($gettok($sock($sockname).mark,5,32),Writer:,$gettok($sock($sockname).mark,6,32)) $Xchr($regml(1))
  98.       elseif (</div> isin %imdb) sockmark $sockname $puttok($sock($sockname).mark,$v1,4,32)
  99.     }
  100.     elseif ($gettok($sock($sockname).mark,4,32) == country:) {
  101.       if ($regex(%imdb,/">([^<]*)<\/a>/)) set %IMDb.Country $+($iif(%IMDb.Country,$+($v1,$chr(44))),$Xchr($regml(1)))
  102.       elseif (</div> isin %imdb) {
  103.         sockmark $sockname $puttok($sock($sockname).mark,$v1,4,32)
  104.         addmark $+($gettok($sock($sockname).mark,5,32),Country:,$gettok($sock($sockname).mark,6,32)) %IMDb.Country
  105.         unset %IMDb.Country
  106.       }
  107.     }
  108.     elseif ($gettok($sock($sockname).mark,4,32) == language:) {
  109.       if ($regex(%imdb,/">([^<]*)<\/a>/)) set %IMDb.Language $+($iif(%IMDb.Language,$+($v1,$chr(44))),$Xchr($regml(1)))
  110.       elseif (</div> isin %imdb) {
  111.         sockmark $sockname $puttok($sock($sockname).mark,$v1,4,32)
  112.         addmark $+($gettok($sock($sockname).mark,5,32),Language:,$gettok($sock($sockname).mark,6,32)) %IMDb.Language
  113.         unset %IMDb.Language
  114.       }
  115.     }
  116.     elseif ($gettok($sock($sockname).mark,4,32) == plot:) {
  117.       if ($regex(%imdb,/<p>(.*)/)) {
  118.         tokenize 32 $sock($sockname).mark
  119.         put $1-2 $6 $+($5,Plot:,$6) $Xchr($regml(1))
  120.         sockmark $sockname $puttok($sock($sockname).mark,0,4,32)
  121.       }
  122.     }
  123.     elseif ($gettok($sock($sockname).mark,4,32) == cast:) {
  124.       if ($regex(%imdb,/href="\/name\/.*\/">([^<]*)<\/a>/)) set %IMDb.Cast $+($iif(%IMDb.Cast,$+($v1,$chr(44))),$Xchr($regml(1)))
  125.       elseif (</table> isin %imdb) {
  126.         sockmark $sockname $puttok($sock($sockname).mark,0,4,32)
  127.         addmark $+($gettok($sock($sockname).mark,5,32),Cast:,$gettok($sock($sockname).mark,6,32)) %IMDb.Cast
  128.         unset %IMDb.Cast        
  129.         tokenize 32 $sock($sockname).mark
  130.         put $1-2 $6 $10-
  131.         sockmark $sockname $deltok($sock($sockname).mark,10-,32)
  132.       }
  133.     }
  134.     elseif ($gettok($sock($sockname).mark,4,32) == date:) {
  135.       if (</div> isin %imdb) {
  136.         sockmark $sockname $puttok($sock($sockname).mark,$v1,4,32)
  137.         tokenize 32 $sock($sockname).mark
  138.         addmark $+($5,Release Date:,$chr(32),$6,%IMDb.Date)
  139.         unset %IMDb.Date
  140.       }
  141.       elseif (<span class="see-more inline"> isin %imdb) {
  142.         sockmark $sockname $puttok($sock($sockname).mark,0,4,32)
  143.         unset %IMDb.Date
  144.       }
  145.       else set %IMDb.Date %IMDb.Date %imdb
  146.     }
  147.     elseif (watch trailer isin %imdb && $regex(%imdb,/<a\shref="([^<]*)"\sonclick="/)) {
  148.       tokenize 32 $sock($sockname).mark
  149.       sockmark $sockname $puttok($sock($sockname).mark,$+($5,Trailer:_,$7,http://www.imdb.com,$regml(1)),8,32)
  150.     }
  151.     elseif (<h2>Coming soon</h2> isin %imdb || </html> isin %imdb) {
  152.       tokenize 32 $sock($sockname).mark
  153.       put $1-2 $6 $+($10-,$chr(32),$iif($8,$replace($8,_,$chr(32))),$chr(32),$chr(15),$5,$chr(32),Link:,$chr(32),$7,http://www.imdb.com,$3)
  154.       sockclose $sockname
  155.       return
  156.     }
  157.     elseif ($regex(%imdb,/\|imdb\|([^|]*)\|/)) {
  158.       var %L $round($gettok($regml(1),1,47),0), %R $calc(10 - $round($gettok($regml(1),1,47),0))
  159.       tokenize 32 $sock($sockname).mark
  160.       addmark $+($5,Rating:,$chr(32),$5,$chr(91),$6,$str(*,%L),14,$str(*,%R),$5,$chr(93),$6) $regml(1)
  161.     }
  162.   }
  163. }
  164. alias -l AddMark { sockmark $sockname $addtok($sock($sockname).mark,$1-,32) }
  165. alias Xchr {
  166.   var %return $regsubex($regsubex($1-,/&#x([A-F0-9]{1,2});/g,$chr($base($regml(\n),16,10))),/&#([0-9]{2});/g,$chr(\1))
  167.   ;Use lines below to make the replace subset
  168.   ;var %sub &ndash; &middot; &raquo; &laquo; &Uuml; &uuml; &Aacute; &aacute; &Eacute; &eacute; &Iacute; &iacute; &Oacute; &oacute; &Ntilde; &ntilde; &Uacute; &uacute;
  169.   ;var %subs – · » « Ü ü Á á É é Í í Ó ó Ñ ñ Ú ú
  170.   ;var %subset $regsubex($str(.,$gettok(%sub,0,32)),/./g,$+($gettok(%sub,\n,32),$chr(44),$gettok(%subs,\n,32),$chr(44)))
  171.   ;echo -a %subset
  172.   return $replacecs(%return,&ndash;,–,&middot;,·,&raquo;,»,&laquo;,«,&Uuml;,Ü,&uuml;,ü,&Aacute;,Á,&aacute;,á,&Eacute;,É,&eacute;,é,&Iacute;,Í,&iacute;,í,&Oacute;,Ó$&
  173.     ,&oacute;,ó,&Ntilde;,Ñ,&ntilde;,ñ,&Uacute;,Ú,&uacute;,ú,&nbsp;,$chr(32))
  174. }
  175. alias -l Put {
  176.   if (!$regex($1,/(\.|^)(msg|notice|echo)$/Si)) || (!$3) { echo -st **Put error** Syntax /Put msg #channel text - or - /Put notice nickname text  | return }
  177.   var %tokens $0, %Tstart 4, %Dtimer 1500
  178.   if ($timer($+(Put,$2,$network)).secs) { %Dtimer = $calc($v1 * 1000) }  
  179.   while ($len($($+($,%Tstart,-,%tokens),2)) > 430) {
  180.     dec %tokens
  181.     if ($len($($+($,%Tstart,-,%tokens),2)) <= 430) {
  182.       .timer -m 1 %Dtimer $1-3 $($+($,%Tstart,-,%tokens),2))
  183.       inc %Dtimer 1500
  184.       %Tstart = $calc(%tokens + 1)
  185.       %tokens = $0
  186.     }
  187.   }
  188.   .timer -m 1 %Dtimer $1-3 $($+($,%Tstart,-,%tokens),2))
  189.   .timer $+ $+(Put,$2,$network) -m 1 $calc(%Dtimer + 1500) noop
  190. }
  191. alias -l bintween {
  192.   var %count = 1, %mark = 0, %mark2 = 0
  193.   while (%count <= $4) {
  194.     if ($bfind($1, %mark2, $2).text) {
  195.       %mark = $calc($bfind($1, %mark2, $2).text + $len($2))
  196.       if ($bfind($1, %mark, $3).text) {
  197.         %mark2 = $bfind($1, %mark, $3).text
  198.       }
  199.       else { return 0 }
  200.     }
  201.     else { return 0 }
  202.     inc %count
  203.   }
  204.   return $bvar($1, $iif(%mark > 0,%mark,1), $calc(%mark2 - %mark)).text
  205. }
Advertisement
Add Comment
Please, Sign In to add comment