Advertisement
Guest User

Untitled

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