tglogo.png

Downloading File

Filename: Buzzen e-RoomLister @window
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;  Buzzen Chat Network Chatroom Lister  ;;;;;;;;;;
;;;;;;;;;;       @Window Room Lister v 1.2       ;;;;;;;;;;
;;;;;;;;;;             by err0r                  ;;;;;;;;;;
;;;;;;;;;;        http://www.tg007.net           ;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;            Instructions               ;;;;;;;;;;
;;;;;;;;;;    Use /rlister or /rlister <cat>     ;;;;;;;;;;
;;;;;;;;;;            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><td valign=middle align=left width=200><a href="chatui.aspx\?rm=(.*?)" class="rmlist" >(.*?)<\/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 style="text-align: right">(.*)<\/td><td>(.*)</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><td valign=middle align=left width=200><a href="chatui.aspx\?rm=(.*)" class="rmlist" >(.*)<\/a><\/td><td>(.*)<\/td><td style="text-align: right">(.*)<\/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,&#60;,<) $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,&#60;,<,$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,&#60;,<,$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 href='(.*?)' class='pages'>(.*?)<\/a>/)) { set -e %rlistroom.lastnm $regml(%rlistroom.page,2) | inc %rlistroom.page }
  if ($regex(%rlister,/</HTML>/)) { 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,&#039;,',&quot;," ,&lt;,< ,&gt;,> ,&amp;,& ,&nbsp;,$iif($prop,$chr($prop),$chr(32)) ,&pound;,£ ,&sect;,$chr(36) ,&uml;,¨ ,&laquo;,« ,&raquo;,» ,&szlig;,ß, &Ntilde;,Ñ ,&ntilde;,ñ,&#39;,')
    set -e %H $replacecs(%H,&Agrave;,À ,&Aacute;,Á ,&Acirc;, ,&Atilde;,à ,&Auml;,Ä ,&Aring;,Å ,&AElig;,Æ ,&agrave;,à ,&aacute;,á ,&acirc;,â ,&atilde;,ã ,&auml;,ä ,&aring;,å ,&aelig;,æ)
    set -e %H $replacecs(%H,&Egrave;,È,&Eacute;,É,&Ecirc;,Ê,&Euml;,Ë,&egrave;,è,&eacute;,é,&ecirc;,ê,&euml;,ë,&Igrave;,Ì,&Iacute;,Í,&Icirc;,Î,&Iuml;,Ï,&igrave;,ì,&iacute;,í,&icirc;,î)
    set -e %H $replacecs(%H,&iuml;,ï,&Ograve;,Ò,&Oacute;,Ó,&Ocirc;,Ô,&Otilde;,Õ,&Ouml;,Ö,&Oslash;,Ø,&ograve;,ò,&oacute;,ó,&ocirc;,ô,&otilde;,õ,&ouml;,ö,&oslash;,ø,&Ugrave;,Ù,&Uacute;,Ú,&Ucirc;,Û,&Uuml;,Ü,&Yacute;,Ý,&ugrave;,ù,&uacute;,ú,&ucirc;,û,&uuml;,ü,&yacute;,ý,&yuml;,ÿ)
  }
  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&ccedil;ais,French,Espa&ntilde;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.* }

Related Files

by x-c0n
by Erroneous

Please note that on our website we use cookies necessary for the functioning of our website, cookies that optimize the performance. To learn more about our cookies, how we use them and their benefits, please read our Cookie Policy.
I Understand