;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;; SPCN Chatroom Lister ;;;;;;;;;; ;;;;;;;;;; @Window Room Lister v 1.2 ;;;;;;;;;; ;;;;;;;;;; by err0r ;;;;;;;;;; ;;;;;;;;;; http://www.tg007.net ;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;; Instructions ;;;;;;;;;; ;;;;;;;;;; Use /rlist or /rlist ;;;;;;;;;; ;;;;;;;;;; to open window ;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;; Report any errors or suggestions ;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; menu * { eRoom Lister: { rlist } .View Category ..All { rlist } ..City Chats: { rlist ge } ..Computing: { rlist cp } ..Fun 'n' Games: { rlist ea } ..General: { rlist gn } ..Interests: { rlist ii } ..Sport & Health: { rlist sp } ..Lifestyles: { rlist lf } ..Peers: { rlist pr } ..Religion: { rlist rl } ..Roleplay: { rlist rp } ..Romance: { rlist rm } ..Unlisted: { rlist un } - } ;;Aliases alias rlist { if (!$window(@eRoomlist)) { window -blM -t3,50,57,70 +benstx @eRoomlist } if ($1) { set %elistroom.cat $1 } if (!%elistroom.pnum) { set -e %elistroom.pnum 1 } if (%elistroom.pnum == 1) { clear @eRoomlist aline @eRoomlist $chr(160) $chr(9) Roomname $chr(9) Users $chr(9) Language $chr(9) Topic aline @eRoomlist $chr(160) } sockclose eroomlist | sockopen eroomlist spcn.io 80 } on *:sockopen:eroomlist: { if ($sockerr) { sockclose $sockname | halt } set -e %elistroom.next $calc(%elistroom.pnum +1) if (!%elistroom.cat) { sockwrite -n $sockname GET /ChannelsList/ $+ %elistroom.pnum HTTP/1.1 } else { sockwrite -n $sockname GET /ChannelsList/ $+ %elistroom.cat $+ / $+ %elistroom.pnum HTTP/1.1 } sockwrite -n $sockname Host: spcn.io sockwrite -n $sockname $crlf } on *:sockread:eroomlist: { if ($sockerr > 0) return | var %rl | sockread %rl tokenize 32 %rl if ($regex($1-,//ig)) { set -eu2 %eroomresult.img on } if (%eroomresult.img == on) && ($regex($1-,/\"\"/ig)) { set -e %eroomresult.type $regml(1) unset %eroomresult.img } if ($regex($1-,/(.*?)<\/a><\/td>/ig)) { unset %eroomresult.img set -e %eroomresult.name $elistroom.fixnamea($regml(2)) } if ($regex($1-,/(.*?)<\/td>/ig)) { set -e %eroomresult.topic $regml(1) } if ($regex($1-,/(.*?)<\/td>/ig)) { set -e %eroomresult.count $regml(1) } if ($regex($1-,/(.*?)<\/td>/ig)) { set -e %eroomresult.lang $regml(1) elistroom.populate } if ($regex($1-,/
  • (.*?)<\/a><\/li>/ig)) { set -e %eroomresult.lastnm $regml(2) } if ($regex($1,/<\/body>/)) { if (%elistroom.next > %eroomresult.lastnm) || (!%eroomresult.lastnm) { sockclose $sockname | unset %elistroom.* | unset %eroomresult.* } else { sockclose $sockname | inc %elistroom.pnum | rlist } } } alias elistroom.populate { ;;%eroomresult.type %eroomresult.name %eroomresult.topic %eroomresult.count %eroomresult.lang aline @eRoomlist $elistroom.settype(%eroomresult.type) $chr(9) %eroomresult.name $chr(9) %eroomresult.count $chr(9) %eroomresult.lang $chr(9) %eroomresult.topic unset %eroomresult.* } alias elistroom.settype { if (rmicon_srv isin $1) { return 🦋 } elseif (rmicon_user isin $1) { return 🔨 } else { return $chr(160) } } alias elistroom.fixnamea { var %rn $1- %rn = $replace(%rn,',') %rn = $replace(%rn,&,&) return %rn } alias elistroom.fixnameb { var %rn $1- %rn = $replace(%rn,$chr(32),\b) return %rn } menu @eRoomlist { dclick: { var %ln $sline(@eRoomlist,1).ln if (%ln && %ln > 2) { join $chr(37) $+ $chr(35) $+ $right($elistroom.fixnameb($gettok($line(@eRoomlist,%ln),2,9)), -2) } } Join Channel: { var %ln $sline(@eRoomlist,1).ln if (%ln && %ln > 2) { join $chr(37) $+ $chr(35) $+ $right($elistroom.fixnameb($gettok($line(@eRoomlist,%ln),2,9)), -2) } } }