forked from MirrorHub/mautrix-whatsapp
Add proper bridge state errors for different logout types
This commit is contained in:
parent
44f232f37b
commit
73241b6f21
2 changed files with 11 additions and 1 deletions
|
@ -48,6 +48,8 @@ type BridgeErrorCode string
|
||||||
|
|
||||||
const (
|
const (
|
||||||
WALoggedOut BridgeErrorCode = "wa-logged-out"
|
WALoggedOut BridgeErrorCode = "wa-logged-out"
|
||||||
|
WAAccountBanned BridgeErrorCode = "wa-account-banned"
|
||||||
|
WAUnknownLogout BridgeErrorCode = "wa-unknown-logout"
|
||||||
WANotConnected BridgeErrorCode = "wa-not-connected"
|
WANotConnected BridgeErrorCode = "wa-not-connected"
|
||||||
WAConnecting BridgeErrorCode = "wa-connecting"
|
WAConnecting BridgeErrorCode = "wa-connecting"
|
||||||
WAServerTimeout BridgeErrorCode = "wa-server-timeout"
|
WAServerTimeout BridgeErrorCode = "wa-server-timeout"
|
||||||
|
@ -56,6 +58,8 @@ const (
|
||||||
|
|
||||||
var bridgeHumanErrors = map[BridgeErrorCode]string{
|
var bridgeHumanErrors = map[BridgeErrorCode]string{
|
||||||
WALoggedOut: "You were logged out from another device. Relogin to continue using the bridge.",
|
WALoggedOut: "You were logged out from another device. Relogin to continue using the bridge.",
|
||||||
|
WAAccountBanned: "Your account was banned from WhatsApp. You can contact support from the WhatsApp mobile app on your phone.",
|
||||||
|
WAUnknownLogout: "You were logged out for an unknown reason. Relogin to continue using the bridge.",
|
||||||
WANotConnected: "You're not connected to WhatsApp",
|
WANotConnected: "You're not connected to WhatsApp",
|
||||||
WAConnecting: "Reconnecting to WhatsApp...",
|
WAConnecting: "Reconnecting to WhatsApp...",
|
||||||
WAServerTimeout: "The WhatsApp web servers are not responding. The bridge will try to reconnect.",
|
WAServerTimeout: "The WhatsApp web servers are not responding. The bridge will try to reconnect.",
|
||||||
|
|
8
user.go
8
user.go
|
@ -875,7 +875,13 @@ func (user *User) UpdateDirectChats(chats map[id.UserID][]id.RoomID) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (user *User) handleLoggedOut(onConnect bool, reason events.ConnectFailureReason) {
|
func (user *User) handleLoggedOut(onConnect bool, reason events.ConnectFailureReason) {
|
||||||
user.removeFromJIDMap(BridgeState{StateEvent: StateBadCredentials, Error: WALoggedOut, Message: reason.String()})
|
errorCode := WAUnknownLogout
|
||||||
|
if reason == events.ConnectFailureLoggedOut {
|
||||||
|
errorCode = WALoggedOut
|
||||||
|
} else if reason == events.ConnectFailureBanned {
|
||||||
|
errorCode = WAAccountBanned
|
||||||
|
}
|
||||||
|
user.removeFromJIDMap(BridgeState{StateEvent: StateBadCredentials, Error: errorCode})
|
||||||
user.DeleteConnection()
|
user.DeleteConnection()
|
||||||
user.Session = nil
|
user.Session = nil
|
||||||
user.JID = types.EmptyJID
|
user.JID = types.EmptyJID
|
||||||
|
|
Loading…
Reference in a new issue