rendered paste bodyalias 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
}