little update.
This commit is contained in:
parent
4d60e5918d
commit
260386bcac
28 changed files with 1070 additions and 50 deletions
56
libmxclient/mxapi/login.go
Normal file
56
libmxclient/mxapi/login.go
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
package mxapi
|
||||
|
||||
import (
|
||||
"context"
|
||||
"crypto/sha256"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"maunium.net/go/mautrix"
|
||||
"maunium.net/go/mautrix/id"
|
||||
)
|
||||
|
||||
type login_data struct {
|
||||
Homeserver string `json:"homeserver"`
|
||||
Mxid string `json:"mxid"`
|
||||
Loginname string `json:"loginname"`
|
||||
Password string `json:"password"`
|
||||
}
|
||||
|
||||
func Login(data string) (string, error) {
|
||||
var ld login_data
|
||||
err := json.Unmarshal([]byte(data), &ld)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
mauclient, err := mautrix.NewClient(ld.Homeserver, id.UserID(ld.Mxid), "")
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
deviceName := fmt.Sprintf("smalbot-%d", time.Now().Unix())
|
||||
|
||||
resp, err := mauclient.Login(context.Background(), &mautrix.ReqLogin{
|
||||
Type: "m.login.password",
|
||||
Identifier: mautrix.UserIdentifier{
|
||||
Type: "m.id.user",
|
||||
User: ld.Loginname,
|
||||
},
|
||||
Password: ld.Password,
|
||||
DeviceID: id.DeviceID(deviceName),
|
||||
InitialDeviceDisplayName: deviceName,
|
||||
StoreCredentials: false,
|
||||
StoreHomeserverURL: false,
|
||||
RefreshToken: false,
|
||||
})
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
tpl := "%s | %s | %s | %s\nrecovery | | | %x\nmaster | | | %x\n"
|
||||
res := fmt.Sprintf(tpl, ld.Homeserver, ld.Loginname, id.UserID(ld.Mxid).Homeserver(), resp.AccessToken, sha256.Sum256([]byte(ld.Password)), sha256.Sum256([]byte(deviceName)))
|
||||
|
||||
return res, nil
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue