Basic login test making sure we logged in properly
This just adds a message handler and spits out the message in the log to verify that the websocket did connect successfully.
This commit is contained in:
@@ -118,17 +118,16 @@ func (l *loginCmd) Run(g *globals) error {
|
|||||||
|
|
||||||
user, err := client.Result()
|
user, err := client.Result()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printfln(g.context.Stdout, "failed to log in")
|
fmt.Println(g.context.Stdout, "failed to log in")
|
||||||
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
g.user.User.ID = user.UserID
|
if err := g.user.login(user.Token); err != nil {
|
||||||
g.user.User.Discriminator = user.Discriminator
|
fmt.Println(g.context.Stdout, "failed to login", err)
|
||||||
g.user.User.Username = user.Username
|
|
||||||
|
|
||||||
g.handler.log.Warnln("users:", user)
|
return err
|
||||||
g.handler.log.Warnln("err:", err)
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package bridge
|
package bridge
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"github.com/bwmarrin/discordgo"
|
||||||
"github.com/skip2/go-qrcode"
|
"github.com/skip2/go-qrcode"
|
||||||
|
|
||||||
log "maunium.net/go/maulogger/v2"
|
log "maunium.net/go/maulogger/v2"
|
||||||
@@ -135,3 +136,20 @@ func (u *User) uploadQRCode(code string) (id.ContentURI, error) {
|
|||||||
|
|
||||||
return resp.ContentURI, nil
|
return resp.ContentURI, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (u *User) login(token string) error {
|
||||||
|
err := u.User.Login(token)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
u.User.Session.AddHandler(u.messageHandler)
|
||||||
|
|
||||||
|
u.log.Warnln("logged in, opening websocket")
|
||||||
|
|
||||||
|
return u.User.Session.Open()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (u *User) messageHandler(s *discordgo.Session, m *discordgo.MessageCreate) {
|
||||||
|
u.log.Warnln("received message", m)
|
||||||
|
}
|
||||||
|
|||||||
@@ -16,14 +16,27 @@ type User struct {
|
|||||||
MXID id.UserID
|
MXID id.UserID
|
||||||
ID string
|
ID string
|
||||||
|
|
||||||
Discriminator string
|
|
||||||
Username string
|
|
||||||
|
|
||||||
ManagementRoom id.RoomID
|
ManagementRoom id.RoomID
|
||||||
|
|
||||||
Session *discordgo.Session
|
Session *discordgo.Session
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Login is just used to create the session and update the database and should
|
||||||
|
// only be called by bridge.User.Login which will continue setting up event
|
||||||
|
// handlers.
|
||||||
|
func (u *User) Login(token string) error {
|
||||||
|
session, err := discordgo.New(token)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
u.Session = session
|
||||||
|
|
||||||
|
u.Update()
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func (u *User) Scan(row Scannable) *User {
|
func (u *User) Scan(row Scannable) *User {
|
||||||
var token sql.NullString
|
var token sql.NullString
|
||||||
|
|
||||||
@@ -37,11 +50,8 @@ func (u *User) Scan(row Scannable) *User {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if token.Valid {
|
if token.Valid {
|
||||||
session, err := discordgo.New("Bearer " + token.String)
|
if err := u.Login(token.String); err != nil {
|
||||||
if err != nil {
|
u.log.Errorln("Failed to login: ", err)
|
||||||
u.log.Errorln("Failed to create discord session:", err)
|
|
||||||
} else {
|
|
||||||
u.Session = session
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user