403Webshell
Server IP : 173.236.223.38  /  Your IP : 216.73.216.33
Web Server : Apache
System : Linux vps62975 6.8.0-83-generic #83~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Sep 9 18:19:47 UTC 2 x86_64
User : invmicvps ( 6727287)
PHP Version : 8.3.30
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/share/ircII/script/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/share/ircII/script/listidle
#	$eterna: listidle,v 1.5 2006/07/26 02:05:45 mrg Exp $
#
# tristan+irc@ethereal.net 31jul2000, 2jul2001, 24jul2006
#
# bugs/lacking features:
# - only works correctly on servers that support multiple-nick /whois (as
#   of this writing, most of EFnet does not) -- this could be automatically
#   detected and worked around
# - only works on current channel
# - /listidle will eat all whois replies until it's done (so among other
#   things, you can't use /whois while it's running)

# for $notword(), $lformat(), $format(), $sort()
load functions

if (max_recursions < 100) {
  # li.fixsend uses recursion, unfortunately
  set max_recursions 100
}

if (novice == [ON]) {
  # we need this for ON to work
  set novice off
}

alias li.fixsend {
  # Input: nick1[!user@host] [nick2[!user@host] ...]
  # Output: nick1,nick2,...
  if ([$1]) {
    @ function_return = [$left($index(! $0) $0),$li.fixsend($1-)]
  }
  {
    @ function_return = [$left($index(! $0) $0)]
  }
}

alias listidle {
  if (left(2 $0) == [-s]) {
    @ LI.SORTED = 1
  }
  whois $li.fixsend($chanusers($C))
  ^on ^raw_irc "% 311 *" {
    @ LI.USERHOST[$encode($3)] = [$4@$5]
  }
  ^on ^raw_irc "% 319 *" #might want to do something here (channels)
  ^on ^raw_irc "% 313 *" #might want to do something here (IRCop)
  ^on ^raw_irc "% 320 *" #might want to do something here ("identified to services")
  ^on ^raw_irc "% 301 *" {
    @ LI.AWAY[$encode($3)] = [ (aw)]
  }
  ^on ^raw_irc "% 317 *" {
    @ LI.IDLE[$encode($3)] = [$4]
    @ LI.SIGNON[$encode($3)] = [$5]
  }
  ^on ^raw_irc "% 312 *" {
    if ([$0]!=[$4]) {
      @ LI.SERVERS[$encode($4)] = LI.SERVERS[$encode($4)] ## [ $3]
    }
  }
  ^on ^raw_irc "% 318 *" {
    ^on raw_irc -"% 311 *"
    ^on raw_irc -"% 319 *"
    ^on raw_irc -"% 313 *"
    ^on raw_irc -"% 320 *"
    ^on raw_irc -"% 301 *"
    ^on raw_irc -"% 317 *"
    ^on raw_irc -"% 312 *"
    ^on raw_irc -"% 318 *"
    li.rwhois
  }
}

alias li.rwhois {
  @ LI.COUNT = 0
  foreach li.servers serv {
    whois $decode($serv) $li.fixsend($li.servers[$serv])
    @ LI.COUNT = LI.COUNT + 1
    ^assign -li.servers.$serv
  }
  ^assign -serv
  ^on ^raw_irc "% 311 *" #
  ^on ^raw_irc "% 319 *" #might want to do something here (channels)
  ^on ^raw_irc "% 313 *" #might want to do something here (IRCop)
  ^on ^raw_irc "% 320 *" #might want to do something here ("identified to services")
  ^on ^raw_irc "% 301 *" {
    @ LI.AWAY[$encode($3)] = [ (aw)]
  }
  ^on ^raw_irc "% 317 *" {
    @ LI.IDLE[$encode($3)] = [$4]
    @ LI.SIGNON[$encode($3)] = [$5]
  }
  ^on ^raw_irc "% 312 *" #
  ^on ^raw_irc "% 318 *" {
    @ LI.COUNT = LI.COUNT - 1
    if (!LI.COUNT) {
      ^on raw_irc -"% 311 *"
      ^on raw_irc -"% 319 *"
      ^on raw_irc -"% 313 *"
      ^on raw_irc -"% 320 *"
      ^on raw_irc -"% 301 *"
      ^on raw_irc -"% 317 *"
      ^on raw_irc -"% 312 *"
      ^on raw_irc -"% 318 *"
      if (li.sorted) {
        li.sortedlist
      } {
        li.list
      }
      ^assign -li.sorted
    }
  }
}

alias li.vaguetdiff {
  # This function reduces precision of tdiff a bit when tdiff is large.
  @ li.args = [$*]
  if ([$[6]word(${#li.args-1} $*)] == [second] && #li.args != 2) {
    @ li.args = notword(${#li.args-1} $notword($#li.args $*))
  }
  if (#li.args > 3) {
    @ function_return = [$word(0 $li.args) $word(1 $li.args) $word(2 $li.args) $word(3 $li.args)]
  } {
    @ function_return = [$word(0 $li.args) $word(1 $li.args)]
  }
  ^assign -li.args
}

alias li.abbrtdiff {
  # This function abbreviates hours to h, minutes to m, etc.
  if ([$2]) {
    @ function_return = [$0$left(1 $1)$li.abbrtdiff($2-)]
  }
  {
    @ function_return = [$0$left(1 $1)]
  }
}

alias li.list {
  echo ***  Nickname        Idle Sign-On      Account
  foreach li.idle li.nick {
    echo ***  $lformat(9 $decode($li.nick)) $format(10 $li.abbrtdiff($li.vaguetdiff($tdiff($li.idle[$li.nick])))) $strftime($li.signon[$li.nick] %b %e %H:%M) $li.userhost[$li.nick]$li.away[$li.nick]
    ^assign -li.idle[$li.nick]
    ^assign -li.signon[$li.nick]
    ^assign -li.userhost[$li.nick]
    ^assign -li.away[$li.nick]
  }
  ^assign -li.nick
}

alias li.sortedlist {
  @ li.curtime = time()
  foreach li.idle nick {
    @ li.since = li.curtime - li.idle[$nick]
    while (@li.zeroes < 10 - @li.since) {
      @ li.zeroes = li.zeroes ## [0]
    }
    @ li.tosort = [$encode($li.zeroes$li.since).$nick ] ## li.tosort
    ^assign -li.zeroes
  }
  @ li.sorted = sort($li.tosort)
  @ li.count = 0
  echo ***  Nickname        Idle Sign-On      Account
  while (word($li.count $li.sorted)) {
    @ li.code = word($li.count $li.sorted)
    @ li.nick = mid(21 999 $li.code)
    echo ***  $lformat(9 $decode($li.nick)) $format(10 $li.abbrtdiff($li.vaguetdiff($tdiff(${li.curtime - decode($left(20 $li.code))})))) $strftime($li.signon[$li.nick] %b %e %H:%M) $li.userhost[$li.nick]$li.away[$li.nick]
    ^assign -li.idle[$li.nick]
    ^assign -li.signon[$li.nick]
    ^assign -li.userhost[$li.nick]
    ^assign -li.away[$li.nick]
    @ li.count = li.count + 1
  }
  ^assign -li.sorted
  ^assign -li.tosort
  ^assign -li.curtime
  ^assign -li.count
  ^assign -li.code
  ^assign -li.since
  ^assign -li.nick
  ^assign -li.diff
}

Youez - 2016 - github.com/yon3zu
LinuXploit