from sys import argv, exit, stdin, stdout, stderr
import os as OS
from os import environ
+import math as M
import sets as SET
import getopt as O
import time as T
"""Translate a time in tripe's stats format to something a human might
actually want to read."""
if t == 'NEVER': return '(never)'
- Y, M, D, h, m, s = map(int, rx_time.match(t).group(1, 2, 3, 4, 5, 6))
- return '%04d:%02d:%02d %02d:%02d:%02d' % (Y, M, D, h, m, s)
+ YY, MM, DD, hh, mm, ss = map(int, rx_time.match(t).group(1, 2, 3, 4, 5, 6))
+ ago = T.time() - T.mktime((YY, MM, DD, hh, mm, ss, 0, 0, -1))
+ ago = M.floor(ago); unit = 's'
+ for n, u in [(60, 'min'), (60, 'hrs'), (24, 'days')]:
+ if ago < 2*n: break
+ ago /= n
+ unit = u
+ return '%04d:%02d:%02d %02d:%02d:%02d (%.1f %s ago)' % \
+ (YY, MM, DD, hh, mm, ss, ago, unit)
def xlate_bytes(b):
"""Translate a number of bytes into something a human might want to read."""
suff = 'B'
def ping(me):
for ping in me.peer.ping, me.peer.eping:
s = '%d/%d' % (ping.ngood, ping.n)
+ if ping.n:
+ s += ' (%.1f%%)' % (ping.ngood * 100.0/ping.n)
if ping.ngood:
s += '; %.2f ms (last %.1f ms)' % (ping.ttot/ping.ngood, ping.tlast);
me.e[ping.cmd].set_text(s)