All pastes #561535 Raw Edit

Something

public text v1 · immutable
·published 2007-06-12 14:30 UTC
rendered paste body
  elseif ($StatsID($1)) {
    inc %sc
    var %name = $+(Stats.,%sc)
    hadd -m %name goal $iif($regex($2-,/#([0-9]+)/S),$regml(1),00)
    hadd -m %name monster $iif($gettok($1-,2,64),$v1,00))
    hadd -m %name user $iif($remove($regsubex($2-,/#[0-9]+/S,),$gettok($1-,2,64),@,$chr(35)),$v1,$iif($readini(C:\program files\mircmight\defname.ini,Defname,$address($nick,2)),$v1,$nick))
    hadd -m %name sendway $iif($regex($1,/^@/S),msg $chan,notice $nick)
    hadd -m %name skill $StatsID($1)
    sockopen %name hiscore.runescape.com 80
  }


on *:SOCKOPEN:Stats.*:{
  sockwrite -nt $sockname GET /hiscorepersonal.ws?user1= $+ $hr($hget($sockname,user)) HTTP/1.0
  sockwrite -nt $sockname Host: $+(hiscore.runescape.com,$str($crlf,2))
}
on *:SOCKREAD:Stats.*:{
  while ($sock($sockname).rq) {
    sockread &rst
    bwrite $sockname -1 -1 &rst
  }
  bread $sockname 0 $file($sockname).size &rst
  if ($bfind(&rst,1,</HTML>)) {
    if (!$regex($hget($sockname,skill),/^(Overall|Combatp?)$/i)) {
      hadd -m $sockname result $htmlfree($replace($bvar(&rst,$bfind(&rst,$bfind(&rst,1,$regsubex($hget($sockname,skill),/(.)/g,$+($asc(\1),$chr(32)))),<td align="right">),100).text,$chr(10),$chr(32)))
      hadd -m $sockname rgoal $iif($hget($sockname,goal),$v1,$calc($gettok($hget($sockname,result),2,32) + 1))
      if (<img class="miniimg"* iswm $hget($sockname,result)) $hget($sockname,sendway) $+($c1,[,$flc($hget($sockname,user)) $c2,does not feature in the highscores for,$c1 $hget($sockname,skill),])
      else $hget($sockname,sendway) $+($c1,[,$c2,$hget($sockname,skill) for,$c1 $flc($hget($sockname,user)),] [,$c2,Level:,$c1 $gettok($hget($sockname,result),2,32) |,$c2 Rank:,$c1 $gettok($hget($sockname,result),1,32) |,$c2 Exp:,$c1 $gettok($hget($sockname,result),3,32),$iif($gettok($hget($sockname,result),2,32) != 99,$+($chr(32),|,$c2 Exp till,$c1 $hget($sockname,rgoal),$c2,:,$c1 $bytes($calc($getxp($hget($sockname,rgoal)) - $remove($gettok($hget($sockname,result),3,32),$chr(44))),b) $chr(40),$c2,$round($calc(($remove($gettok($hget($sockname,result),3,32),$chr(44)) / $getxp($hget($sockname,rgoal))) * 100),2),$c1,%,$chr(41))),])
    }
    elseif ($hget($sockname,skill) == overall) {
      hadd -m $sockname overall $gettok($htmlfree($replace($bvar(&rst,$bfind(&rst,1,</a></td>),120).text,$chr(10),$chr(32))),1-3,32)
      var %c 1,%k
      while ($bfind(&rst,%c,gif"></td>)) {
        inc %k
        if (%k isnum 1-7) hadd -m $sockname cmb $hget($sockname,cmb) $iif(Not Ranked isin $gettok($htmlfree($replace($bvar(&rst,$calc($bfind(&rst,%c,gif"></td>) + ($len($hget($sockname,user)) + 64)),150).text,$chr(10),$chr(32))),1-4,32),1,$gettok($v2,3,32))
        if (Not Ranked !isin $htmlfree($replace($bvar(&rst,$calc($bfind(&rst,%c,gif"></td>) + ($len($hget($sockname,user)) + 64)),150).text,$chr(10),$chr(32)))) hadd -m $sockname stats $hget($sockname,stats) $+($c2,$gettok($v2,1,32),:,$c1 $gettok($v2,3,32) |)
        var %c = $bfind(&rst,%c,gif"></td>) + 10
      }
      $hget($sockname,sendway) $+($c1,[,$c2,Overall for,$c1 $flc($hget($sockname,user)),] [,$c2,Total:,$c1 $gettok($hget($sockname,overall),2,32) |,$c2 Rank:,$c1 $gettok($hget($sockname,overall),1,32) |,$c2 Exp:,$c1 $gettok($hget($sockname,overall),3,32),] [,$c2,Combat:,$c1 $cmb($hget($sockname,cmb)),$c1,])
      $hget($sockname,sendway) $+($c1,[,$left($hget($sockname,stats),-2),])
    }
    .remove $sockname
    .hdel -sw $sockname *
    sockclose $sockname
  }
}