Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mumble-voip/mumble-scripts.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Klass <kissaki@posteo.de>2021-03-14 19:33:39 +0300
committerJan Klass <kissaki@posteo.de>2021-03-14 19:33:39 +0300
commit500008753f698f08585d0a82d612b0928ddefbce (patch)
treed1f355fdc7a79e73fda36728ced2444724b48d00
parent492c37d682c927d4ad7bcd085b34ecb319f01478 (diff)
Make use of argparse to define and handle parameters
-rwxr-xr-xNon-RPC/mumble-ping.py102
1 files changed, 49 insertions, 53 deletions
diff --git a/Non-RPC/mumble-ping.py b/Non-RPC/mumble-ping.py
index 4af3bed..eded92d 100755
--- a/Non-RPC/mumble-ping.py
+++ b/Non-RPC/mumble-ping.py
@@ -2,56 +2,52 @@
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> [<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)
-
-buf = pack(">iQ", 0, datetime.datetime.now().microsecond)
-s.sendto(buf, (host, port))
-
-try:
- data, addr = s.recvfrom(1024)
-except socket.timeout:
- print(f"{time.time()}:NaN:NaN")
- sys.exit()
-
-if verbose:
- print(f"recvd {len(data)} bytes")
-
-r = unpack(">bbbbQiii", data)
-
-version = '.'.join([str(v) for v in r[1:4]])
-ts = r[4]
-users = r[5]
-max_users = r[6]
-bandwidth = f"{r[7] / 1000}kbit/s"
-
-ping = (datetime.datetime.now().microsecond - r[4]) / 1000.0
-if ping < 0:
- ping = ping + 1000
-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))
-
+import socket, sys, time, datetime, argparse
+
+if __name__ == '__main__':
+ parser = argparse.ArgumentParser()
+ parser.add_argument('host', type=str, help='hostname or IP')
+ parser.add_argument('port', type=int, help='port; default Mumble port is 64738')
+ parser.add_argument('--format', type=str, required=False, default='Version $v, $u/$m Users, $p, $b')
+ parser.add_argument('--verbose', '-v', dest='verbose', action='store_true')
+ parser.set_defaults(verbose=False)
+ args = parser.parse_args()
+
+ s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
+ s.settimeout(1)
+
+ buf = pack(">iQ", 0, datetime.datetime.now().microsecond)
+ s.sendto(buf, (args.host, args.port))
+
+ try:
+ data, addr = s.recvfrom(1024)
+ except socket.timeout:
+ print(f"{time.time()}:NaN:NaN")
+ sys.exit()
+
+ if args.verbose:
+ print(f"recvd {len(data)} bytes")
+
+ r = unpack(">bbbbQiii", data)
+
+ version = '.'.join([str(v) for v in r[1:4]])
+ ts = r[4]
+ users = r[5]
+ max_users = r[6]
+ bandwidth = f"{r[7] / 1000}kbit/s"
+
+ ping = (datetime.datetime.now().microsecond - r[4]) / 1000.0
+ if ping < 0:
+ ping = ping + 1000
+ ping = f"{ping:.1f}ms"
+
+ lut = {
+ 'v': version,
+ 't': ts,
+ 'u': users,
+ 'm': max_users,
+ 'p': ping,
+ 'b': bandwidth,
+ }
+ t = Template(args.format)
+ print(t.substitute(**lut))