on $*:TEXT:/^['?]rsnews*/Si:#: { if ($sock(rsnews)) { halt } .set %rsn.out $iif($left($1,1) == ?,msg $chan,notice $nick) .set %rsn.num $iif(!$2 || $2 !isnum,1,$iif($2 > 20,20,$2)) .set %rsnr $false .sockopen rsnews news.runescape.com 80 } alias nc1 { return $+($chr(3),04,$1,$chr(3),) } alias nc2 { return $+($chr(3),07,$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 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 (** iswm %rsn) { .set %rsnr 1 } } on *:SOCKCLOSE:rsnews: { %rsn.out $nc1(RuneScape News) ( $+ $nc2($($+(%,rsn.type.,%rsn.num),2)) $+ ): $nc2($($+(%,rsn.title.,%rsn.num),2)) $nc1(Posted On) $nc2($($+(%,rsn.date.,%rsn.num),2)) .unset %rsn.* } alias nohtml { var %x,%i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x) %x = $replace(%x, ,$null) return %x }