diff options
author | Felix <git@flx.ai> | 2021-03-06 03:40:55 +0300 |
---|---|---|
committer | Jan Klass <kissaki@posteo.de> | 2021-03-14 19:10:11 +0300 |
commit | 6080b3b2908773032d270a3865efbc1a52248430 (patch) | |
tree | dc6f0489f3cb642a8fedf5bf8a46dd61737f73fe | |
parent | 1f7a359e70e452af5f5d7bf0cbf4bcb7101b9318 (diff) |
Add custom format and verbosity parameters
-rwxr-xr-x | Non-RPC/mumble-ping.py | 29 |
1 files changed, 23 insertions, 6 deletions
diff --git a/Non-RPC/mumble-ping.py b/Non-RPC/mumble-ping.py index ba82b25..2d47587 100755 --- a/Non-RPC/mumble-ping.py +++ b/Non-RPC/mumble-ping.py @@ -2,14 +2,20 @@ # Based on pcgod's mumble-ping script found at http://0xy.org/mumble-ping.py. from struct import * +from string import Template import socket, sys, time, datetime if len(sys.argv) < 3: - print(f"Usage: {sys.argv[0]} <host> <port>") + print(f"Usage: {sys.argv[0]} <host> <port> [<format>] [-v]") sys.exit() host = sys.argv[1] port = int(sys.argv[2]) +if len(sys.argv) > 3 and sys.argv[3] != '-v': + fmt = sys.argv[3] +else: + fmt = "Version $v, $u/$m Users, $p, $b" +verbose = '-v' in sys.argv s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.settimeout(1) @@ -23,19 +29,30 @@ except socket.timeout: print(f"{time.time()}:NaN:NaN") sys.exit() -print(f"recvd {len(data)} bytes") +if verbose: + print(f"recvd {len(data)} bytes") r = unpack(">bbbbQiii", data) -version = r[1:4] +version = '.'.join([str(v) for v in r[1:4]]) ts = r[4] users = r[5] max_users = r[6] -bandwidth = r[7] +bandwidth = f"{r[7] / 1000}kbit/s" ping = (datetime.datetime.now().microsecond - r[4]) / 1000.0 if ping < 0: ping = ping + 1000 - -print(f"Version {'.'.join([str(v) for v in version])}, {users}/{max_users} Users, {ping:.1f}ms, {bandwidth / 1000}kbit/s") +ping = f"{ping:.1f}ms" + +lut = { + 'v': version, + 't': ts, + 'u': users, + 'm': max_users, + 'p': ping, + 'b': bandwidth, +} +t = Template(fmt) +print(t.substitute(**lut)) |