mirror of
https://github.com/jlu5/PyLink.git
synced 2024-11-27 21:19:31 +01:00
stats: add an --all option to 'uptime', and check for disconnected networks
This commit is contained in:
parent
efded33f4a
commit
b5cf2e8a4e
@ -28,9 +28,10 @@ DEFAULT_TIME_FORMAT = "%a, %d %b %Y %H:%M:%S +0000"
|
|||||||
|
|
||||||
@utils.add_cmd
|
@utils.add_cmd
|
||||||
def uptime(irc, source, args):
|
def uptime(irc, source, args):
|
||||||
"""[<network>]
|
"""[<network> / --all]
|
||||||
|
|
||||||
Returns the uptime for PyLink and the given network's connection (or the current network if not specified)."""
|
Returns the uptime for PyLink and the given network's connection (or the current network if not specified).
|
||||||
|
The --all argument can also be given to show the uptime for all networks."""
|
||||||
permissions.checkPermissions(irc, source, ['stats.uptime'])
|
permissions.checkPermissions(irc, source, ['stats.uptime'])
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@ -38,14 +39,20 @@ def uptime(irc, source, args):
|
|||||||
except IndexError:
|
except IndexError:
|
||||||
network = irc.name
|
network = irc.name
|
||||||
|
|
||||||
|
if network == '--all': # XXX: we really need smart argument parsing some time
|
||||||
|
# Filter by all connected networks.
|
||||||
|
ircobjs = {k:v for k,v in world.networkobjects.items() if v.connected.is_set()}
|
||||||
|
else:
|
||||||
try:
|
try:
|
||||||
ircobj = world.networkobjects[network]
|
ircobjs = {network: world.networkobjects[network]}
|
||||||
except KeyError:
|
except KeyError:
|
||||||
irc.error("No such network %r." % network)
|
irc.error("No such network %r." % network)
|
||||||
return
|
return
|
||||||
|
if not world.networkobjects[network].connected.is_set():
|
||||||
|
irc.error("Network %s is not connected." % network)
|
||||||
|
return
|
||||||
|
|
||||||
current_time = int(time.time())
|
current_time = int(time.time())
|
||||||
|
|
||||||
time_format = conf.conf.get('stats', {}).get('time_format', DEFAULT_TIME_FORMAT)
|
time_format = conf.conf.get('stats', {}).get('time_format', DEFAULT_TIME_FORMAT)
|
||||||
|
|
||||||
irc.reply("PyLink uptime: \x02%s\x02 (started on %s)" %
|
irc.reply("PyLink uptime: \x02%s\x02 (started on %s)" %
|
||||||
@ -53,6 +60,8 @@ def uptime(irc, source, args):
|
|||||||
time.strftime(time_format, time.gmtime(world.start_ts))
|
time.strftime(time_format, time.gmtime(world.start_ts))
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
for network, ircobj in sorted(ircobjs.items()):
|
||||||
irc.reply("Connected to %s: \x02%s\x02 (connected on %s)" %
|
irc.reply("Connected to %s: \x02%s\x02 (connected on %s)" %
|
||||||
(network,
|
(network,
|
||||||
timediff(ircobj.start_ts, current_time),
|
timediff(ircobj.start_ts, current_time),
|
||||||
|
Loading…
Reference in New Issue
Block a user