Jump to content

@window Room List


biohazard

Recommended Posts

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
}

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...