mirror of
https://github.com/PurpleI2P/i2pd-tools.git
synced 2025-01-22 13:27:17 +01:00
parent
6d21ba587c
commit
9bb02b6b0a
|
@ -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…
Reference in a new issue