Reimplement reconnect command

This commit is contained in:
Tulir Asokan 2021-10-31 14:11:15 +02:00
parent dc9e08d39f
commit fca78e1c0d

View file

@ -563,60 +563,19 @@ func (handler *CommandHandler) CommandDeleteSession(ce *CommandEvent) {
const cmdReconnectHelp = `reconnect - Reconnect to WhatsApp`
func (handler *CommandHandler) CommandReconnect(ce *CommandEvent) {
ce.Reply("Not yet implemented")
// TODO reimplement
//if ce.User.Client == nil {
// if ce.User.Session == nil {
// ce.Reply("No existing connection and no session. Did you mean `login`?")
// } else {
// ce.Reply("No existing connection, creating one...")
// ce.User.Connect(false)
// }
// return
//}
//
//wasConnected := true
//ce.User.Client.Disconnect()
//ctx := context.Background()
//connected := ce.User.Connect(false)
//
//err = ce.User.Conn.Restore(true, ctx)
//if err == whatsapp.ErrInvalidSession {
// if ce.User.Session != nil {
// ce.User.log.Debugln("Got invalid session error when reconnecting, but user has session. Retrying using RestoreWithSession()...")
// ce.User.Conn.SetSession(*ce.User.Session)
// err = ce.User.Conn.Restore(true, ctx)
// } else {
// ce.Reply("You are not logged in.")
// return
// }
//} else if err == whatsapp.ErrLoginInProgress {
// ce.Reply("A login or reconnection is already in progress.")
// return
//} else if err == whatsapp.ErrAlreadyLoggedIn {
// ce.Reply("You were already connected.")
// return
//}
//if err != nil {
// ce.User.log.Warnln("Error while reconnecting:", err)
// ce.Reply("Unknown error while reconnecting: %v", err)
// ce.User.log.Debugln("Disconnecting due to failed session restore in reconnect command...")
// err = ce.User.Conn.Disconnect()
// if err != nil {
// ce.User.log.Errorln("Failed to disconnect after failed session restore in reconnect command:", err)
// }
// return
//}
//ce.User.ConnectionErrors = 0
//
//var msg string
//if wasConnected {
// msg = "Reconnected successfully."
//} else {
// msg = "Connected successfully."
//}
//ce.Reply(msg)
//ce.User.PostLogin()
if ce.User.Client == nil {
if ce.User.Session == nil {
ce.Reply("You're not logged into WhatsApp. Please log in first.")
} else {
ce.User.Connect()
ce.Reply("Started connecting to WhatsApp")
}
} else {
ce.User.DeleteConnection()
ce.User.sendBridgeState(BridgeState{StateEvent: StateTransientDisconnect, Error: WANotConnected})
ce.User.Connect()
ce.Reply("Restarted connection to WhatsApp")
}
}
const cmdDisconnectHelp = `disconnect - Disconnect from WhatsApp (without logging out)`