here is a converted @window ( note i didn't test much so you may have to fix some things )
;;Menu
menu status,channel,menubar {
SPCNRoomlister: { rlister }
.View Category
..City Chats: { rlister ge }
..Computing: { rlister cp }
..Fun and Games: { rlister ea }
..General: { rlister gn }
..Interests: { rlister ii }
..Life Styles: { rlister lf }
..News: { rlister nw }
..Peers: { rlister pr }
..Religion: { rlister rl }
..Role Play: { rlister rp }
..Romance: { rlister rm }
..Sports: { rlister sp }
..Teens: { rlister tn }
-
}
;;Close
on *:CLOSE:@SPCNRoomlist: { /window -c @SPCNRoomlistb | /window -c @SPCNRoomlistc }
;;Aliases
alias rlister {
if (!$window(@SPCNRoomlist)) { window -blMk -t40,50,70 +benstx @SPCNRoomlist verdana 13 }
if (!$window(@SPCNRoomlistb)) { window -l @SPCNRoomlistb }
if (!$window(@SPCNRoomlistc)) { window -l @SPCNRoomlistc }
rlisterstart | rlistget $1
}
alias rlistget {
if ($1) { set %rlistroom.category $1 }
if (!%rlistroom.number) { set -e %rlistroom.number 1 | rlistclear }
if (!%rlistroom.total) { set -e %rlistroom.total 1 }
if (!%rlistroom.category) { set -e %rlistroom.category gn }
sockclose rlister | sockopen rlister www.sparkpea.net 80 | rlshowcat
}
alias rlistclear { clear @SPCNRoomlistb | clear @SPCNRoomlistc }
alias rlshowcat { titlebar @SPCNRoomlist $rlistcatr(%rlistroom.category) }
alias rlisterstart { clear @SPCNRoomlist | aline @SPCNRoomlist Roomname $chr(9) Users $chr(9) Language $chr(9) Topic | aline @SPCNRoomlist $chr(160) }
alias rlisterror { noop $input(Unable to obtain roomlist $crlf $replace(%rlisterror,3,failure establishing socket connection,4,error resolving given hostname),uowd,Attention!) | unset %rlisterror }
;;; Socket
on *:sockopen:rlister: {
set -e %rlistroom.name 1
if (!%rlistroom.category) { set %rlistroom.category gn }
if ($sockerr) { set %rlisterror $sockerr | sockclose $sockname | .timer.rlerror -m 1 1 rlisterror | halt }
sockwrite -n $sockname GET $+(/category.php?cat=,%rlistroom.category,&age=18) HTTP/1.0
sockwrite -n $sockname User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8)
sockwrite -n $sockname Host: sparkpea.net
sockwrite -n $sockname $crlf
}
on *:sockread:rlister: {
if ($sockerr > 0) return | var %rlister | sockread %rlister
if ($regex(%rlister,/<tr class=\"colourcontrol_(.*?)\">/)) {
set %room.start 1
}
if (%room.start) && ($regex(%rlister,/<td><img alt=(.*?) src=\"images/(.*?)\" border=\"0\"/><\/td>/)) {
set -e %room.icon $regml(2)
}
if (%room.start) && ($regex(%rlister,/<div class=\"table\"><a href=\"chatroom.php\?rhx=(.*?)\">(.*?)<\/a><\/div>/)) {
set -e %room.name $rliststriphtml($regml(2))
}
if (%room.start) && ($regex(%rlister,/<td align=\"left\" valign=\"middle\" class=\"table\"><div class=\"table\">(.*?)<\/div><\/td>/)) {
set -e %room.topic $rliststriphtml($regml(1))
}
if (%room.start) && ($regex(%rlister,/<td align=\"right\" valign=\"middle\" class=\"table\">(.*?)<\/td>/)) {
$iif(%room.start == 1,set -e %room.users $regml(1),set -e %room.lang $regml(1))
inc %room.start
}
if (%room.start) && ($regex(%rlister,/<\/tr>/)) {
if ($window(@SPCNRoomlist)) {
aline @SPCNRoomlist %room.name $chr(9) %room.users $chr(9) %room.lang $chr(9) %room.topic
aline @SPCNRoomlistb $replace(%room.name,$chr(32),\ $chr(9) $doubledigit(%room.users) $chr(9)) %room.lang $chr(9) %room.topic
aline @SPCNRoomlistc $replace(%room.name,$chr(32),\ $chr(9) %room.users $chr(9)) %room.lang $chr(9) %room.topic
}
inc %rlistroom.name | inc %rlistroom.total
}
if (*web_footer* iswm %rlister) {
sockclose $sockname
unset %room.*
}
}
;;; StripHtml by unknown author
alias rliststriphtml {
if (!$isid) || (!$1) return
var %H = $1 , %T = $regsub(%H,/(<[^>]+>)/g,,%H)
if ($chr(38) isin %H) {
set -e %H $replacecs(%H,',',"," ,<,< ,>,> ,&,& , ,$iif($prop,$chr($prop),$chr(32)) ,£,£ ,§,$chr(36) ,¨,¨ ,«,« ,»,» ,ß,ß, Ñ,Ñ ,ñ,ñ,',')
set -e %H $replacecs(%H,À,À ,Á,Á ,Â, ,Ã,à ,Ä,Ä ,Å,Å ,Æ,Æ ,à,à ,á,á ,â,â ,ã,ã ,ä,ä ,å,å ,æ,æ)
set -e %H $replacecs(%H,È,È,É,É,Ê,Ê,Ë,Ë,è,è,é,é,ê,ê,ë,ë,Ì,Ì,Í,Í,Î,Î,Ï,Ï,ì,ì,í,í,î,î)
set -e %H $replacecs(%H,ï,ï,Ò,Ò,Ó,Ó,Ô,Ô,Õ,Õ,Ö,Ö,Ø,Ø,ò,ò,ó,ó,ô,ô,õ,õ,ö,ö,ø,ø,Ù,Ù,Ú,Ú,Û,Û,Ü,Ü,Ý,Ý,ù,ù,ú,ú,û,û,ü,ü,ý,ý,ÿ,ÿ)
}
return %H
}
alias rlistfilter { rlisterstart | clear @SPCNRoomlistc | filter -t $+ %rlistfilter 9 @SPCNRoomlistb @SPCNRoomlistc | .timer.rmsort -m 1 500 roomsort }
alias roomsort {
var %te 1
while ($line(@SPCNRoomlistc,%te)) {
tokenize 32 $line(@SPCNRoomlistc,%te)
aline @SPCNRoomlist $replace($1,\b,$chr(32)) $chr(9) $fixnum($3) $chr(9) $5 $chr(9) $7-
inc %te
}
}
alias rlistlanguage { return $replace($1,Deutsch,Dutch,Français,French,Español,Spanish,Português,Portugues,‫العربية,Arabic) }
alias rlistcatr { return $replacex($1,ea,Fun N Games,gn,General,cp,Computing,rm,Romance,pr,Peers,ge,City Chats,ii,Interests,lf,Life Styles,nw,News,rl,Religion,rp,Role Play,sp,Sports,tn,Teens) }
alias fixnum {
if ($left($1,1) == 0 && $len($1) > 1) { return $right($1,1-) }
else { return $1 }
}
alias doubledigit {
if ($1 || $1 == 0) {
if ($len($1) == 1) {
return 0 $+ $1
}
else { return $1 }
}
else { return $1 }
}
;; MENU
menu @SPCNRoomlist {
dclick: if ($sline(@SPCNRoomlist,1).ln > 2) && ($sline(@SPCNRoomlist,1).ln != $null) { join $chr(37) $+ $chr(35) $+ $gettok($line(@SPCNRoomlistc,$calc($sline(@SPCNRoomlist,1).ln -2)),1,9) }
$iif($sline(@SPCNRoomlist,1).ln < 3,$style(2),$iif($sline(@SPCNRoomlist,1).ln == $null,$style(2))) Join mIRC: join $chr(37) $+ $chr(35) $+ $gettok($line(@SPCNRoomlistc,$calc($sline(@SPCNRoomlist,1).ln -2)),1,9)
-
Search: $iif(!$dialog(search),dialog -m rlistsearch rlistsearch)
-
Category:
.City Chats: { rlister ge }
.Computing: { rlister cp }
.Fun and Games: { rlister ea }
.General: { rlister gn }
.Interests: { rlister ii }
.Life Styles: { rlister lf }
.News: { rlister nw }
.Peers: { rlister pr }
.Religion: { rlister rl }
.Role Play: { rlister rp }
.Romance: { rlister rm }
.Sports: { rlister sp }
.Teens: { rlister tn }
-
Sort by:
.Name: set %rlistfilter u 1 | rlistfilter
.Users: set %rlistfilter eu 2 | rlistfilter
-
$iif($sline(@SPCNRoomlist,1).ln < 3,$style(2),$iif($sline(@SPCNRoomlist,1).ln == $null,$style(2))) Browser:
.Join: url $+(www.sparkpea.net/chatroom.php?rm= $+ $replace($gettok($line(@SPCNRoomlistc,$calc($sline(@SPCNRoomlist,1).ln -2)),1,9),\b,$chr(37) $+ 20))
.Join Hex: echo -a $+(http://www.sparkpea.net/chatroom.php?rhx=,25,23,$hex($gettok($line(@SPCNRoomlistc,$calc($sline(@SPCNRoomlist,1).ln -2)),1,9)))
}
dialog rlistsearch {
title "Room Search"
size -1 -1 147 26
option dbu
edit "", 1, 1 1 145 11
button "Search/Find Next", 2, 1 14 50 11
button "Close", 4, 52 14 93 11
}
on *:DIALOG:rlistsearch:sclick:2: {
if (%rlistsearch.item != $did(rlistsearch,1).text) {
set %rlistsearch.item $did(rlistsearch,1).text | set %rlistsearch.start 0 | set %rlistsearch.num $fline(@SPCNRoomlist,* $+ %rlistsearch.item $+ *,0,1)
}
set %rlistsearch.start $calc(%rlistsearch.start +1)
if (%rlistsearch.start > %rlistsearch.num) { $input(End of Search,uodw,Attention!) | halt }
sline -s @SPCNRoomlist $fline(@SPCNRoomlist,* $+ %rlistsearch.item $+ *, $+ %rlistsearch.start $+ ,1)
}
on *:dialog:rlistsearch:sclick:4: { unset %rlistsearch.* | dialog -x rlistsearch }
on *:dialog:rlistsearch:close:*: { unset %rlistsearch.* }
alias hex {
var %l 1, %r
while (%l <= $len($1-)) {
%r = %r $+ $base($asc($mid($1-,%l,1)),10,16,2)
inc %l
}
return %r
}
Edited Sep 24, 2013 8:01 PM by err0r