All pastes #390583 Raw Edit

Untitled

public text v1 · immutable
·published 2007-03-11 15:39 UTC
rendered paste body
alias -l c1 { return $+($chr(3),01,$1-) }
alias -l c2 { return $+($chr(3),04,$1-) }
on *:TEXT:*:#shift:{
  unset $+(%,item.*)
  if ($1 == shit) || ($regex($1,/(=|[^<]*>|<[^>]*>|<[^>]|[0-9]|$chr(95))/Si)) { halt }
  inc %ID 1
  if ($right($1,-1) == defname) && ($2) && ($len($2) <= 12) { 
    writeini DefRSN.ini RSNs $mask($fulladdress,3) $replace($2,$chr(32),-) 
    notice $nick $c1(your nickname for the adress) $c2($mask($fulladdress,3)) $c1(has been set to) $c2($2-)
    halt
  }
  if ($setskill($right($1,-1))) {
    if ($len($2) > 12) { $($+(%,Rs.return.,%id),2) $c1(The nickname) $c2($2-) $c1(is too long) | halt }
    if ($3 isnum 1-99) set $+(%,Rs.getlvl.,%ID) $remove($3,#) 
    if ($2 isnum 1-99) && ($3 == $null) { set $+(%,Rs.getlvl.,%ID) $remove($2,#) }
    set $+(%,Rs.style.,%ID) single
    set $+(%,Rs.skill.,%ID) $setskill($remove($1,@,!,.))
    set $+(%,Rs.rsn.,%ID) $replace($2,$chr(32),$chr(95))
    set $+(%,Rs.return.,%ID) $iif($left($1,1) == @,msg $chan,notice $nick)
    elseif ($2) && (!$($+(%,rs.style.,%ID),2)) { set $+(%,Rs.rsn.,%ID) $replace($2,$chr(32),$chr(95)) }
    elseif ($readini(DefRSN.ini,RSNs,$mask($fulladdress,3))) set $+(%,Rs.rsn.,%ID) target. $+ %ID $ifmatch 
    elseif ($readini(DefRSN.ini,RSNs,$nick)) set $+(%,Rs.rsn.,%ID) $ifmatch 
    else set $+(%,Rs.rsn.,%ID) $nick 
    sockopen $+(rs.,%ID) hiscore.runescape.com 80
  }
  elseif ($right($1,-1) == stats) {
    if ($len($2-) > 12) { $($+(%,Rs.return.,%id),2) $c1(The nickname) $c2($2-) $c1(is too long) | halt }
    set $+(%,Rs.style.,%ID) Stats
    set $+(%,Rs.return.,%ID) $iif($left($1,1) == @, msg $chan, notice $nick)
    if ($2) set $+(%,Rs.rsn.,%ID) $replace($2-,$chr(32),$chr(95))
    elseif ($readini(DefRSN.ini,RSNs,$mask($fulladdress,3))) set $+(%,Rs.rsn.,%ID) $ifmatch 
    elseif ($readini(DefRSN.ini,RSNs,$nick)) set $+(%,Rs.rsn.,%ID) $ifmatch 
    else set $+(%,Rs.rsn.,%ID) $nick 
    sockopen $+(Rs.,%ID) hiscore.runescape.com 80
  }
  elseif ($regex($1,/co?mb(at)?/Si)) {
    if ($len($2-) > 12) { $($+(%,Rs.return.,%id),2) $c1(The nickname) $c2($2-) $c1(is too long) | halt }    
    set $+(%,Rs.style.,%ID) combat 
    set $+(%,Rs.rsn.,%ID) $replace($2-,$chr(32),$chr(95))
    /hadd -m table. $+ %ID display. $+ %ID $iif($left($1,1) == @,msg $chan,notice $nick)
    if ($2-) set $+(%,Rs.rsn.,%ID) $replace($2-,$chr(32),$chr(95))
    elseif ($readini(DefRSN.ini,RSNs,$mask($fulladdress,3))) set $+(%,Rs.rsn.,%ID) $ifmatch 
    elseif ($readini(DefRSN.ini,RSNs,$nick)) set $+(%,Rs.rsn.,%ID) $ifmatch 
    else set $+(%,Rs.rsn.,%ID) $nick 
    sockopen $+(rs.,%ID) hiscore.runescape.com 80
    halt
  }
  else { halt }
}
on *:SOCKOPEN:Rs.*: {
  var %ID = $gettok($sockname,2,46)
  sockwrite -n $sockname GET /lang/en/aff/runescape/hiscorepersonal.ws?user1= $+ $($+(%,Rs.rsn.,%ID),2) HTTP/1.1
  sockwrite -n $sockname Host: hiscore.runescape.com $+ $str($crlf,2)
}
on *:SOCKREAD:Rs.*: {
  var %ID = $gettok($sockname,2,46), $&
    %display = $($+(%,Rs.return.,%id),2), $&
    %style = $($+(%,Rs.style.,%ID),2), $&
    %skill = $($+(%,Rs.skill.,%ID),2)
  if ($sockerr) {
    echo -a Error in stats lookup
    sockclose $sockname
    halt
  }
  else { 
    var %read
    sockread %read
    if (<td align="right">*</td> iswm %read) {
      inc %stage
      set $+(%,level.,%stage) $htmlfree(%read)
    }
    if (*<img class="mainscroll-bottom"* iswm %read) {
      if (%style == stats) {
        $($+(%,Rs.return.,%ID),2) $c1(Stats for) $c2($($+(%,Rs.rsn.,%ID),2)) $c1(-) $c1(Overall:) $c2($($+(%,level.,2),2))
        var %x = 6, %y = 1
        while (%x <= 95) {
          while (%y isnum 1-23) {
            if ($len($($+(%,level.,%x),2)) == 2) var %file = %file $c1($setskill(%x)) $c2($($+(%,level.,%x),2))
            inc %x 4
            inc %y
          }
        }
        %display %file
        %display %logo
        sockclose $sockname
        /unset $+(%,level.*)
        /unset $+(%,rs.*)
        set %stage 0
      }
    }
  }
}
alias -l htmlfree { var %x,%y = $regsub($1-,/(<[^>]+>)/g,$null,%x) | return %x }
alias -l setskill {
  if ($1 == 0) || ($regex($1,/^(st|(skill)?total|overall)$/Si)) return Overall
  elseif ($1 == 6) || ($regex($1,/^at(t|k|tack)$/Si)) return Attack
  elseif ($1 == 10) || ($regex($1,/^def(en[cs]e)?$$/Si)) return Defence
  elseif ($1 == 14) || ($regex($1,/^str(ength)?$/Si)) return Strength
  elseif ($1 == 18) || ($regex($1,/^hp|hit(s|points?)?$/Si)) return Hitpoints
  elseif ($1 == 22) || ($regex($1,/^range(r|d|ing)?$/Si)) return Ranged
  elseif ($1 == 26) || ($regex($1,/^Pray(er)?$$/Si)) return Prayer
  elseif ($1 == 30) || ($regex($1,/^mag(e|ic)$$/Si)) return Magic
  elseif ($1 == 34) || ($regex($1,/^cook(ing)?$/Si)) return Cooking
  elseif ($1 == 38) || ($regex($1,/^wc|wood(cut(ting)?)?$/Si)) return Woodcutting
  elseif ($1 == 42) || ($regex($1,/^fletch(ing)?$/Si)) return Fletching
  elseif ($1 == 46) || ($regex($1,/^fish(ing)?$/Si)) return Fishing
  elseif ($1 == 50) || ($regex($1,/^(fire|fm)(make?(ing)?|ing)?$/Si)) return Firemaking
  elseif ($1 == 54) || ($regex($1,/^craft(ing)?$/Si)) return Crafting
  elseif ($1 == 58) || ($regex($1,/^(smith|smelt)(ing)?$/Si)) return Smithing
  elseif ($1 == 62) || ($regex($1,/^min(e|ing)?$/Si)) return Mining
  elseif ($1 == 66) || ($regex($1,/^herb(law|lore)?$/Si)) return Herblore
  elseif ($1 == 70) || ($regex($1,/^agil(ity)?$/Si)) return Agility
  elseif ($1 == 74) || ($regex($1,/^(th(ei|ie)[fv](e|ing)?)$/Si)) return Thieving
  elseif ($1 == 78) || ($regex($1,/^slay(er|ing)?$/Si)) return Slayer
  elseif ($1 == 82) || ($regex($1,/^farm(er|ing)?$/Si)) return Farming
  elseif ($1 == 86) || ($regex($1,/^(rc|runecraft)(er|ing)?$/Si)) return Runecraft
  elseif ($1 == 90) || ($regex($1,/^hunt(er|ing)?$/Si)) return Hunter
  elseif ($1 == 94) || ($regex($1,/^(construct)(ion|ing)?$/Si)) return Construction
}