Fixed bug where users were not authenticated until restart
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2023-09-15 16:49:25 -05:00
parent f32d3f1668
commit b067459739
2 changed files with 16 additions and 111 deletions

25
user.go
View File

@@ -226,8 +226,8 @@ func (user *User) Login(token string) error {
user.Token = token
user.addToGMIDMap()
user.PostLogin()
if user.Connect() {
user.PostLogin()
return nil
}
return errors.New("failed to connect")
@@ -260,6 +260,14 @@ func (user *User) Connect() bool {
conn := groupme.NewPushSubscription(context.Background())
user.Conn = &conn
user.Conn.StartListening(context.Background(), groupmeext.NewFayeClient(user.log))
user.Client = groupmeext.NewClient(user.Token)
if len(user.GMID) == 0 {
myuser, err := user.Client.MyUser(context.TODO())
if err != nil {
log.Fatal(err) //TODO
}
user.GMID = myuser.ID
}
user.Conn.AddFullHandler(user)
@@ -422,13 +430,7 @@ func (user *User) HandleChatList() {
user.log.Errorln("chat sync error", err) //TODO: handle
return
}
user.log.Debugln("Group")
for _, chat := range chats {
user.log.Debugln(" " + chat.Name)
for _, mem := range chat.Members {
user.log.Debugln(" " + mem.Nickname)
}
chatMap[chat.ID] = chat
}
user.GroupList = chatMap
@@ -602,14 +604,7 @@ func (user *User) postConnPing() bool {
func (user *User) intPostLogin() {
defer user.syncWait.Done()
user.lastReconnection = time.Now().Unix()
user.Client = groupmeext.NewClient(user.Token)
if len(user.GMID) == 0 {
myuser, err := user.Client.MyUser(context.TODO())
if err != nil {
log.Fatal(err) //TODO
}
user.GMID = myuser.ID
}
user.Update()
user.tryAutomaticDoublePuppeting()