parent
40dc40385d
commit
7d976f56cf
@ -0,0 +1,3 @@ |
||||
.venv |
||||
.vscode |
||||
.gitignore |
@ -0,0 +1,53 @@ |
||||
#!/usr/bin/python3 |
||||
|
||||
import argparse |
||||
import logging |
||||
import sys |
||||
|
||||
import Ice |
||||
|
||||
import Murmur |
||||
|
||||
|
||||
def init(host, port, timeout): |
||||
logging.debug("Initializing ICE connection") |
||||
proxy_str = f"Meta: tcp -h {host} -p {port} -t {timeout}" |
||||
with Ice.initialize() as communicator: |
||||
proxy = communicator.stringToProxy(proxy_str) |
||||
mice = Murmur.MetaPrx.checkedCast(proxy) |
||||
|
||||
if not mice: |
||||
raise RuntimeError(f"Invalid Proxy: {proxy_str}") |
||||
|
||||
servers = mice.getAllServers() |
||||
|
||||
if len(servers) == 0: |
||||
raise RuntimeError("No Mumble server found") |
||||
|
||||
return servers |
||||
|
||||
|
||||
def main(): |
||||
parser = argparse.ArgumentParser( |
||||
description="Manage Mumble server through ICE connection", |
||||
formatter_class=argparse.ArgumentDefaultsHelpFormatter |
||||
) |
||||
parser.add_argument("--host", "-h", default="127.0.0.1", |
||||
help="ICE host or ip") |
||||
parser.add_argument("--port", "-p", default=6502, |
||||
help="ICE port number") |
||||
parser.add_argument("--timeout", "-t", default=1000, |
||||
help="Connection timeout in milliseconds") |
||||
args = parser.parse_args() |
||||
|
||||
try: |
||||
servers = init(args.host, args.port, args.timeout) |
||||
except RuntimeError as e: |
||||
logging.error(e, exc_info=e) |
||||
return 1 |
||||
|
||||
print(servers.getChannels()) |
||||
|
||||
|
||||
if __name__ == "__main__": |
||||
sys.exit(main()) |
Loading…
Reference in new issue