All pastes #803740 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-12-02 16:22 UTC
rendered paste body
;*********************************************************************
;COMMANDS*************************************************************
;!stats @stats !calc @calc !clan @clan !price @price !combat @combat**
;!kb !kick !ban !unban !voice !devoice !halfop !dehalfop !op !deop****
;SPECIAL COMMANDS:****************************************************
;Type !pcw-on for PCW Script on then type !Pcw. !Pcw-off to turn off**
;Type !mimic-on for Mimic. Then type !mimic NAME. !mimic-off to turn**
;off the mimic script. Mimic script copies the person*****************


on *:TEXT:!stats *:#:{
  if ([**]Genie isin $chan) { halt }
  if (LooterBOT isin $chan) { halt }
  if ($sock(stats)) {
    sockclose stats
  }
  set %nick $nick
  set %rsn $2
  set %display $iif($left($1,1) == @,msg $chan,.notice $nick)
  sockopen stats slushpuppy.silverinterlocution.org 80
}

on *:SOCKOPEN:stats:{
  if (LooterBot isin $chan) { halt }
  sockwrite -nt $sockname GET /rsstats.php?stats= $+ %rsn HTTP/1.1
  sockwrite -nt $sockname Host: slushpuppy.silverinterlocution.org $+ $crlf $+ $crlf
}
on *:SOCKREAD:stats:{
  if (LooterBot isin $chan) { halt }
  if ($sockerr) { %display Socket error | unset %display | unset %rsn | sockclose $sockname | halt }
  else {
    var %read 
    sockread -f %read
    if (*Overall* iswm %read) {
      /set %read $remove(%read,<br />)
      %display Stats for %rsn :
      %display $htmlfree(%read)
    }
  }
}

alias htmlfree { var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x,&nbsp;) | return %x } 

on *:TEXT:@stats *:#:{
  if ([**]Genie isin $chan) { halt }
  if (LooterBOT isin $chan) { halt }
  if ($sock(stats)) {
    sockclose stats
  }
  set %chan $chan
  set %rsn $2
  set %display $iif($left($1,1) == !,.notice $nick,msg $chan)
  sockopen stats slushpuppy.silverinterlocution.org 80
}

on *:SOCKOPEN:stats:{
  sockwrite -nt $sockname GET /rsstats.php?stats= $+ %rsn HTTP/1.1
  sockwrite -nt $sockname Host: slushpuppy.silverinterlocution.org $+ $crlf $+ $crlf
}
on *:SOCKREAD:stats:{
  if ($sockerr) { %display Socket error | unset %display | unset %rsn | sockclose $sockname | halt }
  else {
    var %read
    sockread -f %read
    if (*Overall* iswm %read) {
      /set %read $remove(%read,<br />)
      %display Stats for %rsn :
      %display $htmlfree(%read)
    }
  }
}

alias htmlfree { var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x,&nbsp;) | return %x }


on *:text:!calc*:#:{
/notice $nick [12Calc] The answer to $2 is : $calc( $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15 ) }
on *:text:@calc*:#:{
/msg $chan [12Calc] The answer to $2 is : $calc( $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15 ) }

ALIAS -l c1 RETURN $+($Chr(2),[,$Chr(3),04,$1-,$Chr(3),],$Chr(2),:)

ALIAS -l c2 RETURN $+($Chr(3),07,$1-,$Chr(3))

ALIAS -l Sep RETURN $+($Chr(2),$Chr(3),04,$Chr(124),$Chr(3),$Chr(2))

; Change '3' to however many recent news articles you want to display.
ALIAS -l MaxNews RETURN 2

ALIAS -l CleanUp {
  IF ($Prop == Error) $($+(%,target.,$1),2) Socket Error while connecting to runescape.com!
  .Remove $1
  UNSET $+(%,target.,$1)
  SockClose $1
}

ALIAS -l BExtract {
  VAR %be.1 = $GetTok($2,1,59), %be.2 = $GetTok($2,2,59), %start = $BFind($1, $iif($3, $3, 1), %be.1)
  IF ($Prop == no) VAR %start = $Calc(%start + $Len(%be.1))
  VAR %end = $Calc($BFind($1, %start, %be.2) - 1)
  IF (($Calc(%end - %start) > 255) || ($Calc(%end - %start) < 1)) RETURN $null
  VAR %return = $BVar($1, %start $+ - $+ %end).text
  IF (%return isnum) RETURN $Null
  ELSE RETURN %return
}

ON *:LOAD:.TimerRSNews 0 3600 Signal RSNEWS *

ON *:CONNECT:.TimerRSNews 0 3600 Signal RSNEWS *

ON *:DISCONNECT:.TimerRSNews Off

ON $*:TEXT:/^[!@.>~$%](news|rsnews)$/Si:#:Signal RSNEWS $1 $chan $nick

ON *:SIGNAL:RSNEWS:{
  VAR %s = 1, %chan = $2, %nick = $3
  WHILE ($Sock($+(news.,%s))) INC %s
  IF ($1 == *) SET $+(%,target.news.,%s) amsg $c1(RS News Update)
  ELSE SET $+(%,target.news.,%s) $iif($Left($1,1) == @,msg %chan,.notice %nick) $c1(RS News)
  SockOpen $+(news.,%s) www.runescape.com 80
}

ON *:SOCKOPEN:NEWS.*:{
  IF ($SockErr > 0) Noop $CleanUp($SockName).Error
  SockWrite -nt $SockName GET /lang/en/aff/runescape/title.ws HTTP/1.1
  SockWrite -nt $SockName $+(Host: www.runescape.com,$Str($CrLf,2))
}

ON *:SOCKREAD:NEWS.*:{
  IF ($SockErr > 0) Noop $CleanUp($SockName).Error
  SockRead &news
  BWrite $SockName -1 &news
}

ON *:SOCKCLOSE:NEWS.*:{
  IF ($IsFile($SockName)) {
    BRead $SockName 1 $File($SockName).size &news
    VAR %target = $($+(%,target.,$SockName),2), %news = $Replace($Remove($BExtract(&news,<span class="newsdate">;</dt>),<span 

    class="newsdate">),</span>,;)
    IF (($GetTok(%target,1,32) == amsg) && (%news != %rsnews)) {
      SET %rsnews %news
      %target $+(",$c2($GetTok(%news,2,59)),") on $c2($GetTok(%news,1,59)) $c1(***NEW NEWS***)
    }
    ELSEIF ($GetTok(%target,1,32) != amsg) {
      VAR %newsoutput = $iif($MaxNews > 1,[1]:) $+(",$c2($GetTok(%news,2,59)),") on $c2($GetTok(%news,1,59)), %i = 2
      WHILE (%i <= $MaxNews) {
        VAR %news = $Replace($Remove($BExtract(&news,<span class="newsdate">;</dt>,$Calc($BFind(&news,1,$GetTok(%news,2,59))  

        + 5)),<span class="newsdate">),</span>,;)
        IF (%news) %newsoutput = %newsoutput $Sep $+([,%i,]:) $+(",$c2($GetTok(%news,2,59)),") on $c2($GetTok(%news,1,59))
        INC %i
      }
      %target %newsoutput
    }
  }
  ELSE $($+(%,target.,$SockName),2) Unable to retrieve data from runescape.com!
  CleanUp $SockName

on *:text:*define *:*: { 

  ;COLOR SETTING: 
  set %col 09 

  inc %ID 1 
  set $+(%,search.,%ID) $replace($2-,$chr(32),+) $iif($chan,$iif($left($1,1) == !,notice $nick,msg $chan),msg $nick) 
  sockopen $+(def.,%ID) wordnet.princeton.edu 80 
} 
on *:SOCKOPEN:def.*: { 
  sockwrite -nt $sockname GET /perl/webwn?s= $+ $gettok($($+(%,search.,%ID),2),1,32) HTTP/1.1 
  sockwrite -nt $sockname Accept-Language: en-us 
  sockwrite -nt $sockname Host: wordnet.princeton.edu 
  sockwrite -t $sockname $str($crlf,2) 
} 
on *:SOCKREAD:def.*: { 
  var %IDt = $right($sockname,-4) 
  var %target = $gettok($($+(%,search.,%IDt),2),2-,32) 
  if ($sockerr) { 
    %target $chr(91) $col(ERROR) $chr(93) Socket error 
    sockclose $sockname 
  } 
  else { 
    :nextread 
    var %read | sockread %read 
    if (Your search did not return any results. isin $htmlfree(%read)) { 
      %target $chr(91) $col(DEFINE) $chr(93) No results found 
      unset %search. $+ $right($sockname,-4) 
      sockclose $sockname 
    } 
    elseif (S: isin $htmlfree(%read)) { 
      if (SEARCH DISPLAY OPTION == $remove($htmlfree(%read),S:,)) { goto nextread } 
      if (KEY isincs $remove($htmlfree(%read),S:,)) { goto nextread }      
      if ($($+(%,reads.,%IDt),2) == $null) { set $+(%,reads.,%IDt) 1 } 
      if ($($+(%,reads.,%IDt),2) < 3) { 
        %target $chr(91) $col(DEFINE) $chr(93) $remove($htmlfree(%read),S:,) 
        inc $+(%,reads.,%IDt) 1 
        goto nextread 
      } 
      close -m $nick 
      unset %search. $+ $right($sockname,-4) | unset %reads. $+ $right($sockname,-4) 
      sockclose $sockname 
    } 
  } 
} 
alias -l col { return $+($chr(3),$iif($len(%col) == 2,%col,$+(0,%col)), $1-, $chr(3)) } 
alias -l htmlfree { 
  var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x,&nbsp;) 
  return %x 
} 


on *:TEXT:!rsplayers:#: { 
  if ($sock(RSplay)) { 
    .sockclose RSplay 
  } 
  sockopen RSplay runescape.com 80 
  set %chan $chan 
} 
on *:SOCKOPEN:RSplay: { 
  sockwrite -n $sockname GET /lang/en/aff/runescape/title.ws 
  sockwrite -n $sockname Host: runescape.com 
  sockwrite $sockname $crlf 
} 
on *:SOCKREAD:RSplay: { 
  if ($sockerr) { 
    msg %chan There was an error while the socket was being read. ( $+ $sockerr $+ ) 
    halt 
  } 
  else { 
    var %sockreader 
    sockread %sockreader 
    tokenize 32 $nohtml(%sockreader) 
    if (There are currently * people playing!* iswm $1-) { 
      msg %chan 7There are currently $4 people playing RuneScape. 
      unset %chan 
      sockclose RSplay 
    } 
  } 
} 
alias nohtml { var %x,%y = $regsub($1-,/(<[^>]+>)/g,$null,%x) | return %x }