pygomx/libmxclient/mxapi/discover.go

33 lines
576 B
Go
Raw Normal View History

2026-01-31 08:13:53 +01:00
package mxapi
import (
"context"
"encoding/json"
"maunium.net/go/mautrix"
"maunium.net/go/mautrix/id"
)
func Discover(mxid string) (string, error) {
localpart, hs, err := id.UserID(mxid).ParseAndValidateRelaxed()
if err != nil {
return "", err
}
wk, err := mautrix.DiscoverClientAPI(context.Background(), hs)
if err != nil {
return "", err
}
if wk != nil {
hs = wk.Homeserver.BaseURL
}
out, err := json.Marshal(map[string]string{"mxid": mxid, "homeserver": hs, "loginname": localpart})
if err != nil {
return "", err
}
return string(out), nil
}