All pastes #222689 Raw Edit

Stuff

public text v1 · immutable
#222689 ·published 2006-10-26 14:10 UTC
rendered paste body
alias c1 { return $+(,$1-) } 
alias c2 { return $+(,$1-) } 

on *:text:*:#: { 
  if ($left($1,1) !isin @!.) || (!$setskill($remove($1,@,!,.))) halt 
  inc %ID 
  set $+(%,stats.display.,%ID) $iif($left($1,1) == @,msg $chan,notice $nick) 
  if ($len($2-) > 12) { $($+(%,stats.display.,%ID),2) $c1(The nick) $c2($2-) $c1(is too long) | cleanup %ID } 
  elseif (!$2) { $+(%,stats.display.,%ID),2) $c1(No nick specified) | cleanup %ID } 
  else { 
    set $+(%,stats.rsn.,%ID) $replace($2-,$chr(32),-,+,-) 
    set $+(%,stats.skill.,%ID) $setskill($remove($1,@,!,.)) 
    sockopen $+(stats.,%ID) spaldox.com 80 
  } 
} 
on *:sockopen:stats.*: { 
  var %id = $gettok($sockname,2,46) 
  sockwrite -n $sockname GET /statbots/BotStats.php?user= $+ $($+(%,stats.rsn.,%ID),2) HTTP/1.0 
  sockwrite -n $sockname Host: spaldox.com $+ $crlf $+ $crlf 
} 
on *:sockread:stats.*: { 
  var -s %ID = $gettok($sockname,2,46), $& 
    %stats.rsn = $($+(%,stats.rsn.,%ID),2), $& 
    %stats.skill = $($+(%,stats.skill.,%ID),2), $& 
    %stats.display = $($+(%,stats.display.,%ID),2) 

  if ($sockerr > 0) { $($+(%,stats.display.,%ID),2) $c1(Socket error - try again later) | cleanup %ID } 
  var %t 
  sockread %t 
  tokenize 32 %t 
  if ($replace($1,$chr(32),+) == $+(%stats.rsn,:)) { 
    if (NIH == $gettok($1-,2,58) ) { 
      %stats.display $c1(The nick) $c2(%stats.rsn) $c1(does not appear in the hi-scores) 
      cleanup %ID 
    } 
    elseif ($2 == %stats.skill) { 
      %stats.display $c2(%stats.skill) $c1(stats for) $c2(%stats.rsn) $+ $c1(:) 
      %stats.display $c1(Rank:) $c2($3) $c1(Level:) $c2($bytes($4,b)) $c1(Exp:) $c2($5) 
      cleanup %ID 
    } 
  } 
} 
alias cleanup { 
  unset $+(%,stats.*.,$1) 
  sockclose $+(Stats.,$1) 
} 
alias setskill { 
  if ($regex($1,/(st|(skill)?total|overall)^/Si)) return Overall 
  elseif ($regex($1,/at(t|k|tack)/Si)) return Attack 
  elseif ($regex($1,/def(en[cs]e)?/Si)) return Defence 
  elseif ($regex($1,/str(ength)?/Si)) return Strength 
  elseif ($regex($1,/hp|hit(s|points?)?/Si)) return Hitpoints 
  elseif ($regex($1,/range(r|d|ing)?/Si)) return Ranged 
  elseif ($regex($1,/Pray(er)?/Si)) return Prayer 
  elseif ($regex($1,/mag(e|ic)/Si)) return Magic 
  elseif ($regex($1,/cook(ing)?/Si)) return Cooking 
  elseif ($regex($1,/wc|wood(cut(ting)?)?/Si)) return Woodcutting 
  elseif ($regex($1,/fletch(ing)?/Si)) return Fletching 
  elseif ($regex($1,/fish(ing)?/Si)) return Fishing 
  elseif ($regex($1,/(fire|fm)(make?(ing)?|ing)?/Si)) return Firemaking 
  elseif ($regex($1,/craft(ing)?/Si)) return Crafting 
  elseif ($regex($1,/(smith|smelt)(ing)?/Si)) return Smithing 
  elseif ($regex($1,/min(e|e?ing)?/Si)) return Mining 
  elseif ($regex($1,/herb(law|lore)?/Si)) return Herblore 
  elseif ($regex($1,/agil(ity)?/Si)) return Agility 
  elseif ($regex($1,/(th(ei|ie)[fv](e|ing)?)/Si)) return Thieving 
  elseif ($regex($1,/slay(er|ing)?/Si)) return Slayer 
  elseif ($regex($1,/farm(er|ing)?/Si)) return Farming 
  elseif ($regex($1,/(rc|runecraft)(er|ing)?/Si)) return Runecraft 
}