From 0697c3b9d00acd635681656c9fc60e3629247dee Mon Sep 17 00:00:00 2001 From: saces Date: Thu, 19 Feb 2026 14:12:17 +0100 Subject: [PATCH] add python-click and improve mxdiscover --- README.txt | 2 +- libmxclient/mxutils/utils.go | 2 -- smal/pyproject.toml | 4 ++++ smal/src/pymxutils/mxutils/discoverhs.py | 23 +++++++++++++---------- 4 files changed, 18 insertions(+), 13 deletions(-) diff --git a/README.txt b/README.txt index 9f99d42..444e523 100644 --- a/README.txt +++ b/README.txt @@ -38,7 +38,7 @@ usage: autopickup by all tools & bots that requires credentials, no further configuration required commands: - mxdiscover + mxdiscover --help mxwhoami mxtoken mxaccountinfo diff --git a/libmxclient/mxutils/utils.go b/libmxclient/mxutils/utils.go index 7c01d5c..77a8ce3 100644 --- a/libmxclient/mxutils/utils.go +++ b/libmxclient/mxutils/utils.go @@ -28,8 +28,6 @@ func DiscoverHS(ids string) string { domainname = _hs } - fmt.Printf("Attempt to discover '%s'\n", domainname) - wk, err := mautrix.DiscoverClientAPI(context.Background(), domainname) if err != nil { return fmt.Sprintf("ERR: %v", err) diff --git a/smal/pyproject.toml b/smal/pyproject.toml index 8a45b57..d2c3cf2 100644 --- a/smal/pyproject.toml +++ b/smal/pyproject.toml @@ -15,6 +15,10 @@ classifiers = [ "Programming Language :: Python", ] +dependencies = [ + "click", +] + [tool.setuptools.package-dir] "pymxutils" = "src/pymxutils" "smal" = "src/smal" diff --git a/smal/src/pymxutils/mxutils/discoverhs.py b/smal/src/pymxutils/mxutils/discoverhs.py index 9da3dd7..c448492 100644 --- a/smal/src/pymxutils/mxutils/discoverhs.py +++ b/smal/src/pymxutils/mxutils/discoverhs.py @@ -1,17 +1,20 @@ import sys from _pygomx import lib, ffi +import click +import json -def discoverhs(): - if len(sys.argv) != 2: - print("usage: ", sys.argv[0], " matrixid|domainname") - return 1 - - mxid = sys.argv[1].encode(encoding="utf-8") - - print("try to discover from: ", mxid) +@click.command() +@click.argument("domain", metavar="string") +def discoverhs(domain): + """Attempts to discover the homeserver from the given string""" + mxid = domain.encode(encoding="utf-8") r = lib.cli_discoverhs(mxid) - result = ffi.string(r) + result = ffi.string(r).decode("utf-8") lib.FreeCString(r) - print(result) + if result.startswith("ERR:"): + print(result) + sys.exit(1) + result_dict = json.loads(result) + print(result_dict["m.homeserver"]["base_url"])