;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;; Buzzen Chat Network Chatroom Lister ;;;;;;;;;; ;;;;;;;;;; @Window Room Lister v 1.2 ;;;;;;;;;; ;;;;;;;;;; by err0r ;;;;;;;;;; ;;;;;;;;;; http://www.tg007.net ;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;; Instructions ;;;;;;;;;; ;;;;;;;;;; Use /rlister or /rlister ;;;;;;;;;; ;;;;;;;;;; to open window ;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;; Report any errors or suggestions ;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;Menu menu status,channel,menubar { BuzzRoomlister: { rlister } .View Category ..City Chats: { rlister cc } ..Computing: { rlister cp } ..Entertainment: { rlister et } ..General: { rlister gn } ..Interests: { rlister in } ..Lifestyles: { rlister ls } ..News & Politics: { rlister ne } ..Peers: { rlister pr } ..Religion: { rlister rl } ..RolePlay: { rlister rp } ..Romance: { rlister rm } ..Sport & Health: { rlister sp } ..Teens: { rlister tn } ..Unlisted: { rlister un } - } ;;Close on *:CLOSE:@BuzzenRoomlist: { /window -c @BuzzenRoomlistb | /window -c @BuzzenRoomlistc } ;;Aliases alias rlister { if (!$window(@BuzzenRoomlist)) { window -blMk -t42,50,57,70 +benstx @BuzzenRoomlist } if (!$window(@BuzzenRoomlistb)) { window -lh @BuzzenRoomlistb } if (!$window(@BuzzenRoomlistc)) { window -lh @BuzzenRoomlistc } 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.buzzen.net 80 | rlshowcat } alias rlistclear { clear @BuzzenRoomlistb | clear @BuzzenRoomlistc } alias rlshowcat { titlebar @BuzzenRoomlist $rlistcatr(%rlistroom.category) } alias rlisterstart { clear @BuzzenRoomlist | aline @BuzzenRoomlist Roomname $chr(9) Users $chr(9) Type $chr(9) Language $chr(9) Topic | aline @BuzzenRoomlist $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 } alias rlistertype { if (rmicon_srv isin $1-) { return 1 } elseif (rmicon_user isin $1-) { return 2 } elseif (ucr1 isin $1-) { return 3 } else { return - } } ;;; Socket on *:sockopen:rlister: { set -e %rlistroom.name 1 | set -e %rlistroom.page 2 if ($sockerr) { set %rlisterror $sockerr | sockclose $sockname | .timer.rlerror -m 1 1 rlisterror | halt } sockwrite -n $sockname GET /roomslist.aspx?pg= $+ %rlistroom.number $+ &cat= $+ %rlistroom.category HTTP/1.1 sockwrite -n $sockname Host: www.buzzen.net sockwrite -n $sockname $crlf } on *:sockread:rlister: { if ($sockerr > 0) return | var %rlister | sockread %rlister if ($len(%rlister) > 3999) { if ($regex(%rlistroom.name,%rlister,/(.*?)<\/td>(.*?)<\/a>/ig)) { set -eu2 %srmlister.icon $rlistertype($regml(%rlistroom.name,1)) set -eu2 %srmlister.name $regml(%rlistroom.name,3) } set -eu2 %sea on } elseif (%sea == on) { if ($regex(%rlistroom.name,%rlister,/(.*)<\/td>(.*)/ig)) { var %rmlister.icon %srmlister.icon var %rmlister.name %srmlister.name var %rmlister.count $regml(%rlistroom.name,1) var %rmlister.lang $regml(%rlistroom.name,2) var %rmlister.topic topic too large to show } unset %sea , %srmlister.name , %srmlister.icon } elseif ($regex(%rlistroom.name,%rlister,/(.*)<\/td>(.*)<\/a><\/td>(.*)<\/td>(.*)<\/td>(.*)/ig)) { var %rmlister.icon $rlistertype($regml(%rlistroom.name,1)) var %rmlister.name $regml(%rlistroom.name,3) var %rmlister.count $regml(%rlistroom.name,5) var %rmlister.lang $regml(%rlistroom.name,6) var %rmlister.topic $regml(%rlistroom.name,4) } if (%rmlister.name) && ($window(@BuzzenRoomlist)) { aline @BuzzenRoomlist 01 $+ $replace(%rmlister.name,<,<) $chr(9) %rmlister.count $chr(9) $replace(%rmlister.icon,1,BCR,2,BSR,3,UCR) $chr(9) $rlistlanguage(%rmlister.lang) $chr(9) $rliststriphtml(%rmlister.topic) aline @BuzzenRoomlistb $chr(37) $+ $chr(35) $+ $replace(%rmlister.name,<,<,$chr(32),\b) $chr(9) $iif($len(%rmlister.count) == 1,00 $+ $regml(%room.name,5),$iif($len(%rmlister.count) == 2,0 $+ %rmlister.count,%rmlister.count)) $chr(9) %rmlister.icon $chr(9) $rlistlanguage(%rmlister.lang) $chr(9) $rliststriphtml(%rmlister.topic) aline @BuzzenRoomlistc $chr(37) $+ $chr(35) $+ $replace(%rmlister.name,<,<,$chr(32),\b) $chr(9) $iif($len(%rmlister.count) == 1,00 $+ $regml(%room.name,5),$iif($len(%rmlister.count) == 2,0 $+ %rmlister.count,%rmlister.count)) $chr(9) %rmlister.icon $chr(9) $rlistlanguage(%rmlister.lang) $chr(9) $rliststriphtml(%rmlister.topic) inc %room.name | inc %room.total } if ($regex(%rlistroom.page,%rlister,/\] (.*?)<\/a>/)) { set -e %rlistroom.lastnm $regml(%rlistroom.page,2) | inc %rlistroom.page } if ($regex(%rlister,//)) { sockclose $sockname | $iif(!%rlistroom.icon,.timer.rlerror -m 1 1 rlisterror) | if (%rlistroom.number == %rlistroom.lastnm) || (!%rlistroom.lastnm) { unset %rlistroom.* } | else { set -e %rlistroom.number %rlistroom.lastnm | rlistget } } } ;;; 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 @BuzzenRoomlistc | filter -t $+ %rlistfilter 9 @BuzzenRoomlistb @BuzzenRoomlistc | .timer.rmsort -m 1 500 roomsort } alias roomsort { var %te 1 while ($line(@BuzzenRoomlistc,%te)) { tokenize 32 $line(@BuzzenRoomlistc,%te) aline @BuzzenRoomlist $right($replace($1,\b,$chr(32)),-2) $chr(9) $iif($left($3,1) == 0,$iif($left($3,2) == 00,$right($3,-2),$right($3,-1)),$3) $chr(9) $replace($5,1,BSR,2,BCR,3,UCR) $chr(9) $rlistlanguage($7) $chr(9) $9- inc %te } } alias rlistlanguage { return $replace($1,Deutsch,Dutch,Français,French,Español,Spanish,Português,Portugues,‫العربية,Arabic) } alias rlistcatr { return $replacex($1,et,Entertainment,gn,General,cp,Computing,rm,Romance,pr,Peers,un,Unlisted,cc,City Chats,in,Interests,ls,Lifestyles,ne,News & Politics,rl,Religion,rp,Roleplay,sp,Sport & Health,tn,Teens) } ;; MENU menu @BuzzenRoomlist { dclick: if ($sline(@BuzzenRoomlist,1).ln > 2) && ($sline(@BuzzenRoomlist,1).ln != $null) { join $gettok($line(@BuzzenRoomlistc,$calc($sline(@BuzzenRoomlist,1).ln -2)),1,9) } $iif($sline(@BuzzenRoomlist,1).ln < 3,$style(2),$iif($sline(@BuzzenRoomlist,1).ln == $null,$style(2))) Join mIRC: join $gettok($line(@BuzzenRoomlistc,$calc($sline(@BuzzenRoomlist,1).ln -2)),1,9) - Search: $iif(!$dialog(search),dialog -m rlistsearch rlistsearch) - Category: .City Chats: rlister cc .Computing: rlister cp .Entertainment: rlister et .General: rlister gn .Interests: rlister in .Lifestyles: rlister ls .News & Politics: rlister ne .Peers: rlister pr .Religion: rlister rl .RolePlay: rlister rp .Romance: rlister rm .Sport & Health: rlister sp .Teens: rlister tn .Unlisted: rlister un - Sort by: .Name: set %rlistfilter u 1 | rlistfilter .Users: set %rlistfilter eu 2 | rlistfilter .Type: set %rlistfilter u 3 | rlistfilter - $iif($sline(@BuzzenRoomlist,1).ln < 3,$style(2),$iif($sline(@BuzzenRoomlist,1).ln == $null,$style(2))) Browser: .Join: url $+(http://www.buzzen.net/chatui.aspx?rm=,$chr(37),25,$chr(37),23,$replace($right($gettok($line(@BuzzenRoomlistc,$calc($sline(@BuzzenRoomlist,1).ln -2)),1,9),-2),\b,$chr(32))) .Copy: clipboard $+(http://www.buzzen.net/chatui.aspx?rm=,$chr(37),25,$chr(37),23,$right($gettok($line(@BuzzenRoomlistc,$calc($sline(@BuzzenRoomlist,1).ln -2)),1,9),-2)) } 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(@BuzzenRoomlist,* $+ %rlistsearch.item $+ *,0,1) } set %rlistsearch.start $calc(%rlistsearch.start +1) if (%rlistsearch.start > %rlistsearch.num) { noop $input(End of Search,uodw,Attention!) | halt } /sline -s @BuzzenRoomlist $fline(@BuzzenRoomlist,* $+ %rlistsearch.item $+ *, $+ %rlistsearch.start $+ ,1) } on *:dialog:rlistsearch:sclick:4: { unset %rlistsearch.* | dialog -x rlistsearch } on *:dialog:rlistsearch:close:*: { unset %rlistsearch.* }