alias _list {
if (!$window(@list)) window -sznblk0 -t25,30 @List tahoma 12
}
alias load.rooms.list {
_list
window -a @list
write -c rooms.txt
}
menu @list {
$iif($chr(37) isin $sline(@list,1),$gettok($sline(@list,1),2,32))
.Join:join $gettok($sline(@list,1),2,32)
.Who:who $gettok($sline(@list,1),2,32)
.$iif($chr(37) isin $sline(@list,1),-)
.Copy:clipboard $gettok($sline(@list,1),2,32)
$iif($chr(37) isin $sline(@list,1),-)
Go:{
clear @list
if (!%rvt.rms) { set %rvt.rms GN }
if (!%rvt.cat) { set %rvt.cat General }
msnrlist
}
-
Category
.$_ison(GN General):{ set %rvt.rms GN | set %rvt.cat General }
.$_ison(GE City Chats):{ set %rvt.rms GE | set %rvt.cat City Chats }
.$_ison(CP Computing):{ set %rvt.rms CP | set %rvt.cat Computing }
.$_ison(EA Entertainment):{ set %rvt.rms EA | set %rvt.cat Entertainment }
.$_ison(EV Events):{ set %rvt.rms EV | set %rvt.cat Events }
.$_ison(HE Health):{ set %rvt.rms HE | set %rvt.cat Health }
.$_ison(II Interests):{ set %rvt.rms II | set %rvt.cat Interests }
.$_ison(LF Lifestyles):{ set %rvt.rms LF | set %rvt.cat Lifestyles }
.$_ison(MU Music):{ set %rvt.rms MU | set %rvt.cat Music }
.$_ison(NW News):{ set %rvt.rms NW | set %rvt.cat News }
.$_ison(PR Peers):{ set %rvt.rms PR | set %rvt.cat Peers }
.$_ison(RL Religion):{ set %rvt.rms RL | set %rvt.cat Religion }
.$_ison(RM Romance):{ set %rvt.rms RM | set %rvt.cat Romance }
.$_ison(SP Sports):{ set %rvt.rms SP | set %rvt.cat Sports }
.$_ison(TN Teens):{ set %rvt.rms TN | set %rvt.cat Teens }
Option
.$iif(!%rvt.ww && !%rvt.us, $style(1) $+ US and Worldwide,US and Worldwide):{ unset %rvt.ww %rvt.us }
.$iif(!%rvt.ww && %rvt.us = 1,$style(1) $+ United States only,United States only):{ unset %rvt.ww | set %rvt.us 1 }
.$iif(%rvt.ww = 1 && !%rvt.us,$style(1) $+ Worldwide only,Worldwide only):{ unset %rvt.us | set %rvt.ww 1 }
-
Clear:clear @list
}
alias _ison {
var %a = $gettok($1,1,32)
if ((%rvt.rms = %a) || (%rvt.cat = %a)) { return $style(1) $+ $1 }
else { return $1 }
}
on *:close:@list: { sockclose rvooms* | unset %rv* }
alias msnrlist {
unset %rv.*
sockopen rvooms1 chat.msn.com 80
renwin @List @List - Loading the $lower($iif(%rvt.us,United States) $iif(%rvt.ww,Worldwide) %rvt.cat Room List...)
}
on *:sockopen:rvooms*: {
if ($sockname == rvooms1) {
sockwrite -n rvooms1 GET /find.msnw?cat= $+ %rvt.rms HTTP/1.1
unset %rv.pgs
}
else {
sockwrite -tn $sockname GET $+(/find.msnw?cat=,%rvt.rms,&page=,$gettok(%rv.pgs,1,32)) HTTP/1.1
set %rv.vrt2 1
%rv.pgs = $deltok(%rv.pgs,1,32)
}
sockwrite -n $sockname Accept: */* $+ $crlf $+ Accept-Language: en-us $+ $crlf $+ User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
sockwrite -n $sockname Host: chat.msn.com $+ $crlf $+ Connection: close $+ $crlf $+ $crlf
}
on *:sockread:rvooms*: {
:sockread
sockread -n &rv
if ($sockbr == 0) { return }
if (!%rv.vrt2) {
if ($bfind(&rv,1,class=descwlinks>List) != 0) {
var %rv.uw = $bfind(&rv,1,List chat rooms created on: the), %rv.uwl = $bvar(&rv,%rv.uw,160).text
set %rv.wwl $mid(%rv.uwl,$calc($pos(%rv.uwl,=,6) + 1),$calc($calc($pos(%rv.uwl,>,3) - 1) - $calc($pos(%rv.uwl,=,6) + 1)))
}
}
if (($bfind(&rv,1,$+($chr(9),<,/,TD,>)) != 0) && (%rv.cn == 1)) {
set %rv.chatl $bfind(&rv,1,$+($chr(9),<,/TD,>))
set %rv.np 1
goto chan
}
if ($bfind(&rv,1,<a href="/chatroom.msnw?) = 0) {
if ($bvar(&rv,0) > 850) { goto sockread }
set %rv.r $bvar(&rv,1,160).text
}
if (!%rv.vrt2) {
if (($+(*href*find,$chr(46),msnw,?,cat*page*) iswm %rv.r) && (Next !isin %rv.r)) {
set %rv.pn 1
goto sockread
}
if ((%rv.pn == 1) && ($gettok(%rv.r,1,32) isnum)) {
set %rv.pn 0
set %rv.pgs %rv.pgs $gettok(%rv.r,1,32)
goto sockread
}
}
if ((%rv.wwl) && (%rv.pgs)) {
if (%rvt.us) {
if ($mid($sockname,7,2) >= %rv.wwl) {
sockclose $sockname
unset %rv.pgs
mnextpage
return
}
}
if (%rvt.ww) {
if ($mid($sockname,7,2) < %rv.wwl) {
sockclose $sockname
mnextpage
return
}
}
}
if ($bfind(&rv,1,<a href="/chatroom.msnw?) != 0) { set %rv.chatl $bfind(&rv,1,<a href="/chatroom.msnw?) }
if (*img src*users.gif*Room*Topic*Language* iswm $bvar(&rv,1,%rv.chatl).text) {
.echo -q $regsub($bvar(&rv,1,%rv.chatl).text,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%vru)
set %rv.su1 $gettok(%vru,2,32)
set %rv.cn 1
unset %vru
goto sockread
}
:chan
if (!%rv.cn) { goto sockread }
set %rv.v $bvar(&rv,1,%rv.chatl).text
set %rv.sc $mid(%rv.v,6,$calc($pos(%rv.v,<,1) - 10))
set %rv.su %rv.su1
if (!%rv.np) { set %rv.su1 $mid(%rv.v,$calc($pos(%rv.v,>,12) + 1),$calc($pos(%rv.v,<,13) - $pos(%rv.v,>,12) - 1)) }
if (%rvt.uro) {
if ($bfind(&rv,1,images/msn_room.gif") != 0) { goto sockread }
}
set %rv.st $remove($mid(%rv.v,$calc($pos(%rv.v,>,6) + 1),$calc($pos(%rv.v,>,7) - $pos(%rv.v,>,6) - 1)),</td)
set %rv.sl $mid(%rv.v,$calc($pos(%rv.v,>,8) + 1),$calc($pos(%rv.v,<,9) - $pos(%rv.v,>,8) - 1))
if (%rv.sl == English) {
/aline $iif($bfind(&rv,1,images/msn_room.gif"),14) @list $chr(160) $chr(37) $+ $chr(35) $+ $replace(%rv.sc,$chr(160),\b,$chr(32),\b) $chr(9) %rv.su $chr(9) $chr(9) $iif(%rv.st,%rv.st)
}
unset %rv.v
if (%rv.np == 1) {
sockclose $sockname
mnextpage
return
}
goto sockread
}
alias mnextpage {
if (%rv.pgs) {
if (!%rv.vrt2) {
if (%rvt.us) { set %rv.pgs $gettok(%rv.pgs,1- $+ $calc($findtok(%rv.pgs,%rv.wwl,1,32) - 1),32) }
if (%rvt.ww) { set %rv.pgs $gettok(%rv.pgs,$calc(%rv.wwl - 1) $+ - $+ $numtok(%rv.pgs,32),32) }
}
unset %rv.r
set %rv.np 0
set %rv.cn 0
.timer -m 1 50 sockopen rvooms $+ $gettok(%rv.pgs,1,32) chat.msn.com 80
renwin @list @List - Loading the $lower($iif(%rvt.us,United States) $iif(%rvt.ww,Worldwide) %rvt.cat Room List $iif(%rvt.ww,from) Page $gettok(%rv.pgs,1,32) $iif(%rvt.ww,to,of) $gettok(%rv.pgs,$numtok(%rv.pgs,32),32) $+ ...)
}
else {
unset %rv.*
renwin @list @List - %rvt.cat fully loaded $iif(%rvt.us,- (United States)) $iif(%rvt.ww,- (Worldwide))
window -b @list
if ($line(@list,0) = 0) {
renwin @list @List - $+(No,$chr(160),English,$chr(160),only,$chr(160),or,$chr(160),User,$chr(160),created,$chr(160),rooms,$chr(160),were,$chr(160),found)
}
halt
}
}
menu status,menubar,channel {
-
View Rooms:{
_list
window -a @list
}
-
}
plz this code to view rooms and its show an error when i use it tried to get it with the line of error but i found it empty line so i couldnt do any thing in it plz need help in and how can i decode the topic of the rooms when it appears in the list ?