rendered paste bodyon $*:TEXT:/^[!'?@]rsnews*/Si:#: {
if ($sock(rsnews)) { halt }
.set %rsn.out $iif($left($1,1) == @ || $left($1,1) == ?,msg $chan,notice $nick)
.set %rsn.ploc $ceil($calc($2 / 20))
.set %rsn.num $iif(!$2 || $2 !isnum,1,$calc($2 - ((%rsn.ploc -1) * 20))))
.set %rsnr $false
.sockopen rsnews news.runescape.com 80
inc %ID 1
}
alias nc1 { return $+($chr(3),14,$1,$chr(3),) }
alias nc2 { return $+($chr(3),04,$1,$chr(3),) }
on *:SOCKOPEN:rsnews: {
if ($sockerr) { echo 4 -s ** SockOpen Error ** $sock($sockname).wsmsg | return }
.sockwrite -n $sockname GET /lang/en/aff/runescape/list.ws?cat=0&page= $+ %rsn.ploc HTTP/1.1
.sockwrite -n $sockname Host: news.runescape.com $+ $crlf $+ $crlf
}
on *:SOCKREAD:rsnews: {
if ($sockerr) { echo 4 -s ** SockRead Error ** $sock($sockname).wsmsg | return }
.sockread %rsn
if (!%rsn) { halt }
if (%rsnr == 4) { .set $+(%,rsn.date.,$calc($var(%rsn.date.*,0) +1)) $nohtml(%rsn) | .set %rsnr $false }
if (%rsnr == 3) { .set $+(%,rsn.title.,$calc($var(%rsn.title.*,0) +1)) $nohtml(%rsn) | inc %rsnr }
if (%rsnr == 2) { inc %rsnr }
if (%rsnr == 1) { .set $+(%,rsn.type.,$calc($var(%rsn.type.*,0) +1)) $nohtml(%rsn) | inc %rsnr }
if (*<td valign="top" style="color:black;">* iswm %rsn) { .set %rsnr 1 }
}
on *:SOCKCLOSE:rsnews: {
%rsn.out $nc1(RuneScape News) $nc1(1[14 $+ Category:) $nc2($($+(%,rsn.type.,%rsn.num),2)) $+ ] $nc2($($+(%,rsn.title.,%rsn.num),2)) $nc1(Posted On) $nc2($($+(%,rsn.date.,%rsn.num),2))
.unset %rsn.*
.unset %rsnr
.unset %rsn
}
alias nohtml {
var %x,%i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x)
%x = $replace(%x, ,$null)
return %x
}