Browse Source

Updates (#46)

Human readable byte sizes and time
pull/55/head
l-n-s 7 years ago committed by GitHub
parent
commit
9bb02b6b0a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 26
      scripts/i2pdctl

26
scripts/i2pdctl

@ -4,6 +4,7 @@ import json
import logging import logging
import pprint import pprint
import argparse import argparse
import datetime
try: try:
import requests import requests
@ -56,6 +57,20 @@ STATUS = [
"ERROR_UDP_DISABLED_AND_TCP_UNSET", "ERROR_UDP_DISABLED_AND_TCP_UNSET",
] ]
SUFFIXES = ['B','KB','MB','GB','TB']
def humanize_size(size, precision=2):
"""Bytes to human readable size"""
suffixIndex = 0
while size > 1024:
suffixIndex += 1
size = size / 1024.0
return "{}{}".format(round(size ,precision), SUFFIXES[suffixIndex])
def humanize_time(milliseconds):
"""Seconds to human readable time"""
return str(datetime.timedelta(milliseconds=milliseconds))
class I2PControl(object): class I2PControl(object):
"""Talk to I2PControl API""" """Talk to I2PControl API"""
@ -132,15 +147,16 @@ class I2pdctl(object):
csi_res = False csi_res = False
fancy_title("Router info") fancy_title("Router info")
print("Uptime: {}".format(ri_res["i2p.router.uptime"])) print("Uptime: {}".format(
humanize_time(int(ri_res["i2p.router.uptime"]))))
print("Status: {}".format(STATUS[ri_res["i2p.router.net.status"]])) print("Status: {}".format(STATUS[ri_res["i2p.router.net.status"]]))
print("Tunnel creation success rate: {}%".format( print("Tunnel creation success rate: {}%".format(
ri_res["i2p.router.net.tunnels.successrate"])) ri_res["i2p.router.net.tunnels.successrate"]))
print("Received: {} ({} B/s) / Sent: {} ({} B/s)".format( print("Received: {} ({} B/s) / Sent: {} ({} B/s)".format(
ri_res["i2p.router.net.total.received.bytes"], humanize_size(int(ri_res["i2p.router.net.total.received.bytes"])),
ri_res["i2p.router.net.bw.inbound.1s"], humanize_size(int(ri_res["i2p.router.net.bw.inbound.1s"])),
ri_res["i2p.router.net.total.sent.bytes"], humanize_size(int(ri_res["i2p.router.net.total.sent.bytes"])),
ri_res["i2p.router.net.bw.outbound.1s"])) humanize_size(int(ri_res["i2p.router.net.bw.outbound.1s"]))))
print("Known routers: {} / Active: {}".format( print("Known routers: {} / Active: {}".format(
ri_res["i2p.router.netdb.knownpeers"], ri_res["i2p.router.netdb.knownpeers"],
ri_res["i2p.router.netdb.activepeers"])) ri_res["i2p.router.netdb.activepeers"]))

Loading…
Cancel
Save