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 }