3 changed files with 92 additions and 1 deletions
@ -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()) |
Write
Preview
Loading…
Cancel
Save
Reference in new issue