Advertisement
Guest User

Untitled

a guest
Jan 13th, 2014
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
mIRC 14.60 KB | None | 0 0
  1. ;!IMDB Movie Search Script by Ford_Lawnmower irc.Geekshed.net #Script-Help
  2.  
  3. ; 2014-01-13 modification to strip codes for +c channels
  4.  
  5. alias -l IMDB {
  6.   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Start Setup;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  7.   ;;;; Change %tagcolor to the color you want for tags:
  8.   var %tagcolor $+($chr(15),$chr(2))
  9.   ;;;; Change %textcolor to the color you want for normal text
  10.   var %textcolor $+($chr(15),$chr(3),04)
  11.   ;;;; Change %linkcolor to the color/format you want for links
  12.   var %linkcolor $+($chr(15),$chr(31))
  13.   ;;;; Change %ratingcolor+ to the color you want for the positive stars in the rating.
  14.   var %ratingcolor+ $+($chr(15),$chr(3),04)
  15.   ;;;; Change %ratingcolor- to the color you want for the negative stars in the rating.
  16.   var %ratingcolor- $+($chr(15),$chr(3),14)
  17.   ;;;; You can change the way this script prints out by editing
  18.   ;;;; %lineone, %linetwo and %linethree below.
  19.   ;;;; tags must be valid and separated by a space.
  20.   ;;;; valid tags are as follows: title rating votes genres
  21.   ;;;; runtime director writer language country date plot
  22.   ;;;; shortplot cast link trailer reviews critics
  23.   ;;;; If you want to omit a line, just change it to 0
  24.   ;;;; Use title instead of otitle if you want the title in the language related to your ip address
  25.   var %lineone otitle rating votes reviews critics genres runtime director writer language country date
  26.   var %linetwo shortplot
  27.   var %linethree cast link trailer
  28.   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;End Setup;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  
  29.   var %sockname $+(IMDB,$network,$2,$ticks)
  30.   hadd -m %sockname lineone %lineone
  31.   hadd %sockname linetwo %linetwo
  32.   hadd %sockname linethree %linethree
  33.   sockopen %sockname www.imdb.com 80
  34.   sockmark %sockname $1-2 $+(/title/,$3,/) 0 %tagcolor %textcolor %linkcolor 0 0 %ratingcolor+ %ratingcolor-
  35. }
  36. menu Channel,Status {
  37.   .$iif($group(#IMDB) == On,$style(1)) IMDB IMDB Trigger
  38.   ..$iif($group(#IMDB) == On,$style(2)) On: .enable #IMDB
  39.   ..$iif($group(#IMDB) == Off,$style(2)) Off: .disable #IMDB
  40. }
  41. #IMDB on
  42. On $*:Text:/^(\+|-|!|@)IMDB.*/Si:#: {
  43.   var %action $regml(1)
  44.   unset %imdstrip
  45.   if c isincs $chan(#).mode && %action == @ { set %imdstrip $true }
  46.   if (%action isin +-) && ($regex($nick($chan,$nick).pnick,/(!|~|&|@|%)/)) {
  47.     if (%action == +) {
  48.       if ($istok(%IMDBChanList,$+($network,$chan),32)) { .msg $chan $nick $chan is already running the IMDB script }
  49.       else {
  50.         .enable #IMDB
  51.         Set %IMDBChanList $addtok(%IMDBChanList,$+($network,$chan),32)
  52.         .msg $chan $nick has activated the IMDB script for $chan .
  53.       }
  54.     }
  55.     else {
  56.       if (!$istok(%IMDBChanList,$+($network,$chan),32)) { .msg $chan $nick $chan is not running the IMDB script }
  57.       else {
  58.         Set %IMDBChanList $remtok(%IMDBChanList,$+($network,$chan),1,32)
  59.         .msg $chan $nick has deactivated the IMDB script for $chan .
  60.       }
  61.     }
  62.   }
  63.   elseif (!$timer($+(IMDB,$network,$nick))) && ($istok(%IMDBChanList,$+($network,$chan),32)) {
  64.     .timer $+ $+(IMDB,$network,$nick) 1 6 noop
  65.     var %method $iif(%action == !,.notice $nick,$iif($regex($nick($chan,$nick).pnick,/(!|~|&|@|%|\+)/),.msg $chan,.notice $nick))
  66.     GIMDB %method $2-
  67.   }
  68. }
  69. alias EIMDB { GIMDB echo -a $1- }
  70. alias -l GIMDB {
  71.   $1-2 Searching For: $strip($3-) .............
  72.   var %sockname $+(GIMDB,$network,$2,$ticks)
  73.   sockopen %sockname www.google.com 80
  74.   sockmark %sockname $1-2 $+(/search?q=,$replace($3-,$chr(32),+),+site:imdb.com&rls=en&hl=en) $3-
  75. }
  76. On *:sockopen:GIMDB*: {
  77.   if (!$sockerr) {
  78.     sockwrite -nt $sockname GET $gettok($sock($sockname).mark,3,32) HTTP/1.0
  79.     sockwrite -n $sockname Host: www.google.com
  80.     sockwrite -n $sockname User-Agent: Opera 9.6
  81.     sockwrite -n $sockname $crlf
  82.   }
  83.   else { echo -st Socket Error $nopath($script) | hfree $sockname | sockclose $sockname }
  84. }
  85. On *:sockread:GIMDB*: {
  86.   if ($sockerr) { echo -st Socket Error $nopath($script) | hfree $sockname | sockclose $sockname }
  87.   else {
  88.     sockread &GIMDB
  89.     if ($bintween(&GIMDB,<cite>www.imdb.com/title/,/</cite>,1)) {
  90.       IMDB $gettok($sock($sockname).mark,1-2,32) $v1
  91.       sockclose $sockname
  92.       return    
  93.     }
  94.     elseif ($bintween(&GIMDB,Your search,</b> - did not match any documents.,1)) {
  95.       $gettok($sock($sockname).mark,1-2,32) Sorry - Cannot find $strip($gettok($sock($sockname).mark,4-,32))
  96.       sockclose $sockname
  97.       return
  98.     }
  99.   }
  100. }
  101. On *:sockclose:GIMDB*: { $gettok($sock($sockname).mark,1-2,32) Sorry - Cannot find $strip($gettok($sock($sockname).mark,4-,32)) }
  102. On *:sockopen:IMDB*: {
  103.   if (!$sockerr) {
  104.     sockwrite -nt $sockname GET $gettok($sock($sockname).mark,3,32) HTTP/1.0
  105.     sockwrite -n $sockname Host: www.imdb.com
  106.     sockwrite -n $sockname User-Agent: Opera 9.6
  107.     sockwrite -n $sockname $crlf
  108.   }
  109.   else { echo -st Socket Error $nopath($script) | sockclose $sockname | return }
  110. }
  111. On *:sockclose:IMDB*: hfree $sockname
  112. On *:sockread:IMDB*: {
  113.   if ($sockerr) { echo -st Socket Error $nopath($script) | sockclose $sockname | return }
  114.   else {
  115.     var %IMDb | sockread %IMDb
  116.     if ($regex(%imdb,/<title>(.*?)<\/title>/i)) hadd -m $sockname title $+($gettok($sock($sockname).mark,5,32),Title:,$chr(32),$gettok($sock($sockname).mark,6,32)) $Xchr($remove($regml(1),IMDb -))
  117.     elseif ($regex(%imdb,/'og:title'\s?content="(.*?)"\s?\/>/i)) {
  118.       hadd -m $sockname otitle $+($gettok($sock($sockname).mark,5,32),Title:,$chr(32),$gettok($sock($sockname).mark,6,32)) $Xchr($gettok($regml(1),1,45))
  119.     }
  120.     elseif ($regex(%imdb,/([a-z]{6,8}:)/i)) sockmark $sockname $puttok($sock($sockname).mark,$regml(1),4,32)
  121.     elseif (class="title-extra" isin %imdb) { sockmark $sockname $puttok($sock($sockname).mark,etitle:,4,32) }
  122.     elseif (($regex(%imdb,/"(.*)"/i)) && ($gettok($sock($sockname).mark,4,32) == etitle:)) {
  123.       hadd -m $sockname otitle $+($gettok($sock($sockname).mark,5,32),Title:,$chr(32),$gettok($sock($sockname).mark,6,32)) $Xchr($gettok($regml(1),1,45))
  124.       sockmark $sockname $puttok($sock($sockname).mark,natta:,4,32)
  125.     }
  126.     elseif (<h2>Storyline</h2> isin %imdb) sockmark $sockname $puttok($sock($sockname).mark,plot:,4,32)
  127.     elseif (<table class="cast_list"> isin %imdb) sockmark $sockname $puttok($sock($sockname).mark,cast:,4,32)
  128.     elseif (Release Date: isin %imdb) sockmark $sockname $puttok($sock($sockname).mark,date:,4,32)
  129.     elseif ($regex(%imdb,/itemprop="ratingCount">(.*?)<\/span>/i)) hadd -m $sockname votes $+($gettok($sock($sockname).mark,5,32),Votes:,$gettok($sock($sockname).mark,6,32)) $regml(1)
  130.     elseif ($regex(shortplot,%imdb,/<meta name="description"\scontent="(.*?)"\s/>/i)) {
  131.       hadd -m $sockname shortplot $+($gettok($sock($sockname).mark,5,32),Plot:,$chr(32),$gettok($sock($sockname).mark,6,32)) $Xchr($regml(shortplot,1))
  132.       sockmark $sockname $puttok($sock($sockname).mark,0,4,32)
  133.     }
  134.     elseif ($regex(%imdb,/itemprop="reviewCount">(.*?)<\/span>/i)) {
  135.       if ($gettok($sock($sockname).mark,4,32) == critics:) hadd -m $sockname critics $+($gettok($sock($sockname).mark,5,32),Critics:,$gettok($sock($sockname).mark,6,32)) $regml(1)
  136.       else {
  137.         hadd -m $sockname reviews $+($gettok($sock($sockname).mark,5,32),Reviews:,$gettok($sock($sockname).mark,6,32)) $regml(1)
  138.         sockmark $sockname $puttok($sock($sockname).mark,critics:,4,32)
  139.       }
  140.     }
  141.     elseif (*star-box-giga-star"  iswm %imdb) { sockmark $sockname $puttok($sock($sockname).mark,votes:,4,32) }
  142.     elseif ($gettok($sock($sockname).mark,4,32) == votes: && %imdb isnum) {
  143.       hadd -m $sockname votes $+($gettok($sock($sockname).mark,5,32),Votes:,$gettok($sock($sockname).mark,6,32)) %imdb
  144.       sockmark $sockname $puttok($sock($sockname).mark,nothing,4,32)
  145.     }
  146.     elseif ($gettok($sock($sockname).mark,4,32) == Critics:) {
  147.       if ($regex(%imdb,/>([\d\x2C]+)\sreviews<\/a>/i)) hadd -m $sockname critics $+($gettok($sock($sockname).mark,5,32),Critics:,$gettok($sock($sockname).mark,6,32)) $regml(1)
  148.     }    
  149.     elseif ($gettok($sock($sockname).mark,4,32) == runtime:) {
  150.       if ($regex(%imdb,/<time.*>(.*?)<\/time>/i)) {
  151.         hadd -m $sockname runtime $+($gettok($sock($sockname).mark,5,32),Runtime:,$gettok($sock($sockname).mark,6,32)) $regml(1)
  152.         sockmark $sockname $puttok($sock($sockname).mark,$v1,4,32)
  153.         tokenize 32 $sock($sockname).mark
  154.         hadd -m $sockname link $+($6,$5,Link:,$chr(32),$7,http://www.imdb.com,$3)
  155.         if ($hget($sockname,lineone)) put $1-2 $regsubex($v1,/([\S]+)/g,$hget($sockname,\t))
  156.         if ($hget($sockname,linetwo)) put $1-2 $regsubex($v1,/([\S]+)/g,$hget($sockname,\t))
  157.         if ($hget($sockname,linethree)) put $1-2 $regsubex($v1,/([\S]+)/g,$hget($sockname,\t))
  158.         hfree $sockname
  159.         sockclose $sockname
  160.         return
  161.       }
  162.     }
  163.     elseif ($gettok($sock($sockname).mark,4,32) == genres:) {
  164.       if ($regex(%imdb,/>([^<]*)<\/a>/g)) hadd -m $sockname genres $addtok($hget($sockname,genres),$regml(1),32)
  165.       elseif (</div> isin %imdb) {
  166.         hadd -m $sockname genres $+($gettok($sock($sockname).mark,5,32),Genres:,$gettok($sock($sockname).mark,6,32)) $hget($sockname,genres)
  167.         sockmark $sockname $puttok($sock($sockname).mark,$v1,4,32)
  168.       }
  169.     }
  170.     elseif ($gettok($sock($sockname).mark,4,32) == director:) {
  171.       if ($regex(%imdb,/"name">(.*?)<\/span>/i)) hadd -m $sockname director $+($gettok($sock($sockname).mark,5,32),Director:,$gettok($sock($sockname).mark,6,32)) $Xchr($regml(1))
  172.       elseif (</div> isin %imdb) sockmark $sockname $puttok($sock($sockname).mark,$v1,4,32)
  173.     }
  174.     elseif ($gettok($sock($sockname).mark,4,32) == writer:) {
  175.       if ($regex(%imdb,/"name">(.*?)<\/span>/i)) hadd -m $sockname writer $+($gettok($sock($sockname).mark,5,32),Writer:,$gettok($sock($sockname).mark,6,32)) $Xchr($regml(1))
  176.       elseif (</div> isin %imdb) sockmark $sockname $puttok($sock($sockname).mark,$v1,4,32)
  177.     }
  178.     elseif ($gettok($sock($sockname).mark,4,32) == country:) {
  179.       if ($regex(%imdb,/>(.*?)<\/a>/)) set %IMDb.Country $+($iif(%IMDb.Country,$+($v1,$chr(44))),$Xchr($regml(1)))
  180.       elseif (</div> isin %imdb) {
  181.         sockmark $sockname $puttok($sock($sockname).mark,$v1,4,32)
  182.         hadd -m $sockname country $+($gettok($sock($sockname).mark,5,32),Country:,$gettok($sock($sockname).mark,6,32)) %IMDb.Country
  183.         unset %IMDb.Country
  184.       }
  185.     }
  186.     elseif ($gettok($sock($sockname).mark,4,32) == language:) {
  187.       if ($regex(%imdb,/>([^<]*)<\/a>/)) set %IMDb.Language $+($iif(%IMDb.Language,$+($v1,$chr(44))),$Xchr($regml(1)))
  188.       elseif (</div> isin %imdb) {
  189.         sockmark $sockname $puttok($sock($sockname).mark,$v1,4,32)
  190.         hadd -m $sockname language $+($gettok($sock($sockname).mark,5,32),Language:,$gettok($sock($sockname).mark,6,32)) %IMDb.Language
  191.         unset %IMDb.Language
  192.       }
  193.     }
  194.     elseif ($gettok($sock($sockname).mark,4,32) == plot:) {
  195.       if ($regex(%imdb,/<p>(.*)/)) {
  196.         tokenize 32 $sock($sockname).mark
  197.         hadd -m $sockname plot $6 $+($5,Plot:,$6) $Xchr($regml(1))
  198.         sockmark $sockname $puttok($sock($sockname).mark,0,4,32)
  199.       }
  200.     }
  201.     elseif ($gettok($sock($sockname).mark,4,32) == cast:) {
  202.       if ($regex(%imdb,/href="\/name\/.*\/">([^<]*)<\/a>/)) set %IMDb.Cast $+($iif(%IMDb.Cast,$+($v1,$chr(44))),$Xchr($regml(1)))
  203.       elseif ($regex(%imdb,/alt="(.*?)"/)) set %IMDb.Cast $addtok(%IMDb.Cast,$Xchr($regml(1)),44)
  204.       elseif (</table> isin %imdb) {
  205.         sockmark $sockname $puttok($sock($sockname).mark,0,4,32)
  206.         hadd -m $sockname cast $+($gettok($sock($sockname).mark,5,32),Cast:,$gettok($sock($sockname).mark,6,32)) %IMDb.Cast
  207.         unset %IMDb.Cast        
  208.         tokenize 32 $sock($sockname).mark
  209.         sockmark $sockname $deltok($sock($sockname).mark,10-,32)
  210.       }
  211.     }
  212.     elseif ($gettok($sock($sockname).mark,4,32) == date:) {
  213.       if ($regex(%imdb,/>(.*?)<\/time>/i)) {
  214.         sockmark $sockname $puttok($sock($sockname).mark,notag:,4,32)
  215.         tokenize 32 $sock($sockname).mark
  216.         hadd -m $sockname date $+($5,Release Date:,$chr(32),$6,$regml(1))
  217.       }
  218.     }
  219.     elseif (watch trailer isin %imdb && $regex(%imdb,/<a\shref="([^<]*)"\sonclick="/)) {
  220.       tokenize 32 $sock($sockname).mark
  221.       hadd -m $sockname trailer $+($5,Trailer:,$chr(32),$7,http://www.imdb.com,$regml(1))
  222.     }
  223.     elseif (Reviews: isin %imdb || </html> isin %imdb) {
  224.       tokenize 32 $sock($sockname).mark
  225.       hadd -m $sockname link $+($6,$5,Link:,$chr(32),$7,http://www.imdb.com,$3)
  226.       if ($hget($sockname,lineone)) put $1-2 $strip($regsubex($v1,/([\S]+)/g,$hget($sockname,\t)))
  227.       if ($hget($sockname,linetwo)) put $1-2 $strip($regsubex($v1,/([\S]+)/g,$hget($sockname,\t)))
  228.       if ($hget($sockname,linethree)) put $1-2 $strip($regsubex($v1,/([\S]+)/g,$hget($sockname,\t)))
  229.       hfree $sockname
  230.       sockclose $sockname
  231.       return
  232.     }
  233.     elseif ($regex(%imdb,/star-box-giga-star">\s?(.*?)\s?<\/div>/i)) {
  234.       var %L $round($regml(1),0), %R $calc(10 - %L)
  235.       tokenize 32 $sock($sockname).mark
  236.       hadd -m $sockname rating $+($5,Rating:,$chr(32),$5,$chr(91),$10,$str(*,%L),$11,$str(*,%R),$5,$chr(93),$6) $regml(1)
  237.     }
  238.   }
  239. }
  240. alias -l AddMark { sockmark $sockname $addtok($sock($sockname).mark,$1-,32) }
  241. alias -l Xchr {
  242.   var %return $regsubex($regsubex($1-,/&#x([A-F0-9]{1,2});/g,$chr($base($regml(\n),16,10))),/&#([0-9]{2});/g,$chr(\1))
  243.   return $replacecs(%return,&ndash;,–,&middot;,·,&raquo;,»,&laquo;,«,&Uuml;,Ü,&uuml;,ü,&Aacute;,Á,&aacute;,á,&Eacute;,$&
  244.     É,&eacute;,é,&Iacute;,Í,&iacute;,í,&Oacute;,Ó,&oacute;,ó,&Ntilde;,Ñ,&ntilde;,ñ,&Uacute;,Ú,&uacute;,ú,&nbsp;,$chr(32),$&
  245.     &aelig;,æ,&quot;,")
  246. }
  247. alias -l Put {
  248.   if (!$regex($1,/(\.|^)(msg|notice|echo)$/Si)) || (!$3) { return }
  249.   var %tokens $0, %Tstart 4, %Dtimer 1500
  250.   if ($timer($+(Put,$2,$network)).secs) { %Dtimer = $calc($v1 * 1000) }  
  251.   while ($len($($+($,%Tstart,-,%tokens),2)) > 430) {
  252.     dec %tokens
  253.     if ($len($($+($,%Tstart,-,%tokens),2)) <= 430) {
  254.       .timer -m 1 %Dtimer $1-3 $($+($,%Tstart,-,%tokens),2))
  255.       inc %Dtimer 1500
  256.       %Tstart = $calc(%tokens + 1)
  257.       %tokens = $0
  258.     }
  259.   }
  260.   if (%imdstrip) { .timer -m 1 %Dtimer $strip($1-3 $($+($,%Tstart,-,%tokens),2))) }
  261.   else $1-3 $($+($,%Tstart,-,%tokens),2))
  262.   .timer $+ $+(Put,$2,$network) -m 1 $calc(%Dtimer + 1500) noop
  263. }
  264. alias -l bintween {
  265.   var %count = 1, %mark = 0, %mark2 = 0
  266.   while (%count <= $4) {
  267.     if ($bfind($1, %mark2, $2).text) {
  268.       %mark = $calc($bfind($1, %mark2, $2).text + $len($2))
  269.       if ($bfind($1, %mark, $3).text) {
  270.         %mark2 = $bfind($1, %mark, $3).text
  271.       }
  272.       else { return 0 }
  273.     }
  274.     else { return 0 }
  275.     inc %count
  276.   }
  277.   return $bvar($1, $iif(%mark > 0,%mark,1), $calc(%mark2 - %mark)).text
  278. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement