All pastes #72151 Raw Edit

iPod

public text v1 · immutable
#72151 ·published 2006-06-26 16:28 UTC
rendered paste body
alias rsstats { 
  if ($1) { 
    /var %i 1 

    while ($sock(rsstats. $+ %i)) { 
      /inc %i 
    } 

    /set %rsstats. $+ %i $+ .user $1- 
    /set %rsstats. $+ %i $+ .self 1 

    /sockopen rsstats. $+ %i hiscore.runescape.com 80 
  } 
} 

#rsstats on 
on *:TEXT:!rs *:*:{ 
  if ($2) { 
    /var %i 1 

    while ($sock(rsstats. $+ %i)) { 
      /inc %i 
    } 

    /set %rsstats. $+ %i $+ .user $2- 

    if ($chan) { 
      /set %rsstats. $+ %i $+ .target $chan 
    } 
    else { 
      /set %rsstats. $+ %i $+ .target $nick 
    } 

    /sockopen rsstats. $+ %i hiscore.runescape.com 80 
  } 
} 
#rsstats end 

on *:SOCKOPEN:rsstats.*:{ 
  /sockwrite -t $sockname GET /lang/en/aff/runescape/hiscorepersonal.ws?user1= $+ $eval(% $+ $sockname $+ .user, 2) HTTP/1.1 $+ $crlf 
  /sockwrite -t $sockname Host: hiscore.runescape.com $+ $crlf 
  /sockwrite -t $sockname $crlf 
} 

on *:SOCKREAD:rsstats.*:{ 
  if ($sockerr) { 
    if ($eval(% $+ $sockname $+ .self, 2)) { 
      /echo -s Socket error while looking up $eval(% $+ $sockname $+ .user, 2) $+ : $sockerr 
    } 
    else { 
      /msg $eval(% $+ $sockname $+ .target, 2) Socket error while looking up $eval(% $+ $sockname $+ .user, 2) $+ : $sockerr 
    } 

    /cleanup $sockname 
  } 
  else { 
    /sockread &read 
    /bwrite $sockname -1 -1 &read 

    if ($bfind(&read, 1, </html>).text) { 
      /results $sockname 
    } 
  } 
} 

on *:SOCKCLOSE:rsstats.*:{ 
  /cleanup $sockname 
} 

alias -l results { 
  if ($1) { 
    /bread $1 1 $file($1).size &statspage 

    /var %statsstring $chr(91) 7 $+ $upper($eval(% $+ $1 $+ .user, 2)) $+  $chr(93) $+ : 

    if ($bfind(&statspage, 1, does not feature in the hiscores.).text) { 
      %statsstring = %statsstring does not feature in the hiscores. 
    } 
    else { 
      /var %currentstat 
      /var %i 0 

      while (1) { 
        %i = $bfind(&statspage, $calc(%i + 1), <td align="left"><a href="overall.ws?table=).text 

        if (!%i) { 
          /break 
        } 

        %currentstat = $striphtml($bvar(&statspage, %i, 150).text) 
        if ($gettok(%currentstat, 3, 32)) { 
          %statsstring = %statsstring $gettok(%currentstat, 1, 32) 02 $+ $gettok(%currentstat, 3, 32) $+  $chr(124) 
        } 
      } 

      %statsstring = $left(%statsstring, -2) 
    } 

    if ($eval(% $+ $1 $+ .self, 2)) { 
      /echo -s %statsstring 
    } 
    else { 
      /msg $eval(% $+ $1 $+ .target, 2) %statsstring 
    } 

    /cleanup $1 
  } 
} 

alias -l striphtml { 
  /var %charcount 1 
  /var %tag 0 
  /var %strippedstring 

  while (%charcount <= $len($1-)) { 
    if ($mid($1-, %charcount, 1) == <) { 
      %tag = 1 
    } 
    elseif ($mid($1-, %charcount, 1) == >) { 
      %tag = 0 
    } 
    elseif (!%tag) { 
      if ($mid($1-, %charcount, 1) == $chr(32)) { 
        %strippedstring = %strippedstring $chr(32) 
      } 
      else { 
        %strippedstring = %strippedstring $+ $mid($1-, %charcount, 1) 
      } 
    } 
    /inc %charcount 1 
  } 

  /return %strippedstring 
} 

alias -l cleanup { 
  if ($1) { 
    /.remove $1 
    /unset % $+ $1 $+ .* 
    /sockclose $1 
  } 
}