Advertisement
Guest User

Ford_Lawnmower - Wikipedia Old Version

a guest
Apr 3rd, 2010
459
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
mIRC 4.78 KB | None | 0 0
  1. ;Wikipedia Script by Ford_Lawnmower -- irc.mindforge.org #USA-Chat
  2. alias wikisocket {
  3.   var %sockname $+(wiki,$network,$1,$ticks)
  4.   sockclose %sockname
  5.   sockopen %sockname en.wikipedia.org 80
  6.   sockmark %sockname $2-3 $fixurl($formaturl($4-))
  7. }
  8. alias wikipedia { wikisocket $me echo -a $1- }
  9. On $*:Text:/(^[!@])wiki +/Si:#: {
  10.   if ($regml(1) == @) && ($nick isop $chan) {
  11.     wikisocket $chan .msg $chan $2-
  12.   }
  13.   else {
  14.     if (!$timer(wiki $+ $nick)) {
  15.       .timer $+ $+(wiki,$nick) 1 10 noop
  16.       wikisocket $chan .notice $nick $2-
  17.     }  
  18.   }
  19. }
  20. On *:Sockopen:wiki*: {
  21.   sockwrite -nt $sockname GET $+(/w/index.php?title=,$gettok($sock($sockname).mark,3,32),&redirect=yes) HTTP/1.1
  22.   sockwrite -n $sockname User-Agent: Opera 9.6
  23.   sockwrite -n $sockname Host: en.wikipedia.org $+ $str($crlf,2)
  24. }
  25. on *:sockread:wiki*: {
  26.   if ($sockerr > 0) { echo -at >Sock Error< Wikipedia | sockclose $sockname }
  27.   else {
  28.     sockread -n &wiki
  29.     if $bvar(&wiki, 0) {
  30.       if ($bintween(&wiki,<b>,</p>,1)) {
  31.         var %msgs $gettok($sock($sockname).mark,1,32), %targets $gettok($sock($sockname).mark,2,32)
  32.         bset -t &result 1 $bvar($bintween(&wiki,<p>,</p>,1), 1, $bvar(&wiki, 0)).text
  33.         if (may refer to: isin $bvar($binstrip(&result),1,429).text) {
  34.           %msgs %targets Nothing Found! Please refine your search and check your spelling.
  35.           sockclose $sockname
  36.           halt
  37.         }
  38.         put %msgs %targets $fixascii($bvar($binstrip(&result),1,$bvar(&result, 0)).text) $+(http://en.wikipedia.org/w/index.php?title=,$gettok($sock($sockname).mark,3,32),&redirect=yes)
  39.         sockclose $sockname
  40.       }
  41.     }
  42.   }
  43. }
  44. alias -l binstrip {
  45.   while ($bfind($1, 1 ,<)) && ($bfind($1, 1, >)) {
  46.     var %first = $bfind($1, 1, <), %last $calc($bfind($1, 1, >) - $bfind($1, 1, <) + 1)
  47.     noop = $bremove($1, $bvar($1, %first, %last).text)
  48.   }
  49.   while ($bfind($1, 1 ,$chr(91))) && ($bfind($1, 1, $chr(93))) {
  50.     %first = $bfind($1, 1, $chr(91))
  51.     %last = $calc($bfind($1, 1, $chr(93)) - $bfind($1, 1, $chr(91)) + 1)
  52.     noop = $bremove($1, $bvar($1, %first, %last).text)
  53.   }
  54.   return $1
  55. }
  56. ;bremove by jaytea
  57. alias bremove {
  58.   if (!$isid) || ($0 < 2) || (!$regex($1,/^&[^ ]+$/)) {
  59.     echo -ces i * Invalid parameters: $!bremove
  60.     return
  61.   }
  62.   if ($bvar($1,0)) {
  63.     var %x = 1
  64.     while (%x < $0) {
  65.       inc %x
  66.       var %i = 1, %t = $eval($ $+ %x,2) $chr(32)
  67.       while ($bfind($1,%i,$left(%t,-2)) [ $+ [ $iif($prop == text,.text) ] ]) {
  68.         var %i = $v1, %p = $iif($prop != text && $regex(bremove,%t,/^ *\d+(?: +\d+)* *$/i),$numtok(%t,32),$len($mid(%t,3))) + %i
  69.         if (%p <= $bvar($1,0)) bcopy -c $1 %i $1 %p -1
  70.         elseif ($calc(%i - 1)) bset -c $1 $v1 $bvar($1,$v1)
  71.         else bunset $1
  72.       }
  73.       inc %x 2
  74.     }
  75.   }
  76.   return $1
  77. }
  78. alias -l bintween {
  79.   bunset &tempbin
  80.   var %count = 1, %mark = 0, %mark2 = 0
  81.   while (%count <= $4) {
  82.     if ($bfind($1, %mark2, $2).text) {
  83.       %mark = $calc($bfind($1, %mark2, $2).text + $len($2))
  84.       if ($bfind($1, %mark, $3).text) {
  85.         %mark2 = $bfind($1, %mark, $3).text
  86.       }
  87.       else { return 0 }
  88.     }
  89.     else { return 0 }
  90.     inc %count
  91.   }
  92.   bset -t &tempbin 1 $bvar($1, $iif(%mark > 0,%mark,1), $calc(%mark2 - %mark)).text
  93.   return &tempbin
  94. }
  95. alias -l Put {
  96.   if (!$regex($1,/(\.|^)(msg|notice|echo)$/Si)) || (!$3) { echo -st **Put error** Syntax /Put msg #channel text - or - /Put notice nickname text  | return }
  97.   var %tokens $0, %Tstart 3, %Dtimer 1000
  98.   if ($timer($+(Put,$2,$network)).secs) { %Dtimer = $calc($v1 * 1000) }  
  99.   while ($len($($+($,%Tstart,-,%tokens),2)) > 430) {
  100.     dec %tokens
  101.     if ($len($($+($,%Tstart,-,%tokens),2)) <= 430) {
  102.       .timer -m 1 %Dtimer $1-2 $($+($,%Tstart,-,%tokens),2))
  103.       inc %Dtimer 1500
  104.       %Tstart = $calc(%tokens + 1)
  105.       %tokens = $0
  106.     }
  107.   }
  108.   .timer -m 1 %Dtimer $1-2 $($+($,%Tstart,-,%tokens),2))
  109.   .timer $+ $+(Put,$2,$network) -m 1 $calc(%Dtimer + 1000) noop
  110. }
  111. alias -l fixascii { return $regsubex($1-,/&#(\d{2,3});/g,$chr($regml(\n))) }
  112. alias -l fixurl return $regsubex($strip($1-),/([^a-z0-9])/ig,% $+ $base($asc(\t),10,16,2))
  113. alias -l formaturl {
  114.   var %count = $gettok($1-,0,32), %counter = 1, %return
  115.   while (%counter <= %count) {
  116.     if ($regex($gettok($1-,%counter,32),/^us$|^up$|^to$|^so$|^or$|^on$|^of$|^off$|^no$|^it$|^in$|^if$|^go$|^do$|^by$|^be$|^at$|$&
  117.       |^as$|^an$|^is$|^the$|^are$|^there$|^where$|^not$|^and$|^flew$|^over$|^the$|^nest$|^was$/)) {
  118.       %return = %return $gettok($1-,%counter,32)
  119.     }
  120.     else {
  121.       %return = %return $upper($left($gettok($1-,%counter,32),1)) $+ $right($gettok($1-,%counter,32),$calc($len($gettok($1-,%counter,32)) - 1))
  122.     }
  123.     inc %counter
  124.   }
  125.   return $replace($upper($left(%return,1)) $+ $right(%return,$calc($len(%upper) - 1)),$chr(32),_)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement