All pastes #914754 Raw Edit

Someone

public text v1 · immutable
#914754 ·published 2008-02-23 04:18 UTC
rendered paste body
on $*:TEXT:/^[!@.](rs)?stats/Si:#:{
  if ($len($remove($2-,$)) <= 12) {
    var %ticks $ticks
    set $+(%,prefix.,%ticks) $iif(@* iswm $1,msg $chan,notice $nick)
    sockopen $+(st.,%ticks) hiscore.runescape.com 80
    set $+(%,erm.,%ticks) $iif(!$2,$iif($readini(defname.ini,name,$address($nick,3)),$v1,$nick),$regsubex($replace($remove($2-,$),$chr(32),_),/\b(\w)/g,$upper(\1))))
  }
  else { notice $nick 14[07Stats14]:14 The runescape name can only be 12 letters long! }
}
on *:SOCKOPEN:st.*:{
  sockwrite -nt $sockname GET /index_lite.ws?player= $+ %erm. [ $+ [ $remove($sockname,st.) ] ] HTTP/1.1
  sockwrite -nt $sockname Host: hiscore.runescape.com
  sockwrite -nt $sockname $crlf
}

on *:SOCKREAD:st.*:{
  if ($sockerr) { echo -a $sockerr | halt }
  else {
    var %read
    sockread %read
    if (Sorry, the page you were looking for was not found. isin %read) {
      $($+(%,prefix.,$remove($sockname,st.)),2) 14[07Stats14]:14 %erm. [ $+ [ $remove($sockname,st.) ] ] 14was not found in the runescape hiscores.
    }
    elseif (*,*,* iswm %read) {
      inc %stats.inc
      writeini stats.ini $remove($sockname,st.) %stats.inc $replace(%read,-1,0)
    }
  }
}
on *:SOCKCLOSE:st.*:{
  if (%stats.inc) {
    var %x 1
    while ($readini(stats.ini,$remove($sockname,st.),%x)) { var %output %output $stat2($remove($sockname,st.),%x) | inc %x }
    $($+(%,prefix.,$remove($sockname,st.)),2) 14[7 $+ %erm. [ $+ [ $remove($sockname,st.) ] ] $+ 14]: $+ $gettok(%output,1-19,124)
    $iif($gettok(%output,20-25,124),$($+(%,prefix.,$remove($sockname,st.)),2) 14[7 $+ %erm. [ $+ [ $remove($sockname,st.) ] ] $+ 14]: $+ $gettok(%output,20-25,124),$null)
    remini stats.ini $remove($sockname,st.)
  }
  unset $+(%,erm.,$remove($sockname,st.)) | unset $+(%,prefix.,$remove($sockname,st.)) | unset %stats.inc
}

alias stat {
  if ($1 == 1) return Overall
  elseif ($1 == 2) return Attack
  elseif ($1 == 3) return Defence
  elseif ($1 == 4) return Strength
  elseif ($1 == 5) return Hitpoints
  elseif ($1 == 6) return Range
  elseif ($1 == 7) return Prayer
  elseif ($1 == 8) return Magic
  elseif ($1 == 9) return Cooking
  elseif ($1 == 10) return Woodcutting
  elseif ($1 == 11) return Fletching
  elseif ($1 == 12) return Fishing
  elseif ($1 == 13) return Firemaking
  elseif ($1 == 14) return Crafting
  elseif ($1 == 15) return Smithing
  elseif ($1 == 16) return Mining
  elseif ($1 == 17) return Herblore
  elseif ($1 == 18) return Agility
  elseif ($1 == 19) return Thieving
  elseif ($1 == 20) return Slayer
  elseif ($1 == 21) return Farming
  elseif ($1 == 22) return Runecrafting
  elseif ($1 == 23) return Hunter
  elseif ($1 == 24) return Construction
  elseif ($1 == 25) return Summoning
}

alias stat2 {
  if ($gettok($readini(stats.ini,$1,$2),2,44) == 0) { return $null } | else { return |07 $stat($2) $+ 14 $gettok($readini(stats.ini,$1,$2),2,44) }
}