add command "logout"
This commit is contained in:
parent
ffa87ebcfc
commit
5b122411ae
23
commands.go
23
commands.go
|
@ -113,8 +113,8 @@ func (handler *CommandHandler) CommandMux(ce *CommandEvent) {
|
|||
// handler.CommandDevTest(ce)
|
||||
//case "set-pl":
|
||||
// handler.CommandSetPowerLevel(ce)
|
||||
//case "logout":
|
||||
// handler.CommandLogout(ce)
|
||||
case "logout":
|
||||
handler.CommandLogout(ce)
|
||||
case "login-matrix", "sync", "list", "open", "pm", "invite", "kick", "leave", "join", "create", "share":
|
||||
if !ce.User.HasSession() {
|
||||
ce.Reply("You are not logged in. Use the `login` command to log into WhatsApp.")
|
||||
|
@ -245,8 +245,21 @@ func (handler *CommandHandler) CommandLogin(ce *CommandEvent) {
|
|||
}
|
||||
}
|
||||
|
||||
const cmdLogoutHelp = `logout - Logout from WhatsApp`
|
||||
|
||||
const cmdLogoutHelp = `logout - Logout from Skype`
|
||||
func (handler *CommandHandler) CommandLogout(ce *CommandEvent) {
|
||||
//ce.User.Conn.Conn.LogoutChan <- 1
|
||||
ce.User.Conn.LoggedIn = false
|
||||
ce.User.Conn.LoginInfo = &skype.Session{
|
||||
SkypeToken: "",
|
||||
SkypeExpires: "",
|
||||
RegistrationToken: "",
|
||||
RegistrationTokenStr: "",
|
||||
RegistrationExpires: "",
|
||||
LocationHost: "",
|
||||
EndpointId: "",
|
||||
}
|
||||
ce.Reply("Logged out successfully.")
|
||||
}
|
||||
// CommandLogout handles !logout command
|
||||
//func (handler *CommandHandler) CommandLogout(ce *CommandEvent) {
|
||||
// if ce.User.Session == nil {
|
||||
|
@ -446,7 +459,7 @@ func (handler *CommandHandler) CommandHelp(ce *CommandEvent) {
|
|||
ce.Reply("* " + strings.Join([]string{
|
||||
cmdPrefix + cmdHelpHelp,
|
||||
cmdPrefix + cmdLoginHelp,
|
||||
//cmdPrefix + cmdLogoutHelp,
|
||||
cmdPrefix + cmdLogoutHelp,
|
||||
//cmdPrefix + cmdDeleteSessionHelp,
|
||||
//cmdPrefix + cmdReconnectHelp,
|
||||
//cmdPrefix + cmdDisconnectHelp,
|
||||
|
|
57
user.go
57
user.go
|
@ -373,9 +373,7 @@ func (user *User) Login(ce *CommandEvent, name string, password string) (err err
|
|||
}
|
||||
ce.Reply("Successfully logged in")
|
||||
|
||||
// subscribe basic
|
||||
user.Conn.Subscribes()
|
||||
// subscribe conta
|
||||
user.Conn.Subscribes() // subscribe basic event
|
||||
err = user.Conn.Conn.ContactList(user.Conn.UserProfile.Username)
|
||||
if err == nil{
|
||||
var userIds []string
|
||||
|
@ -395,11 +393,15 @@ func (user *User) Login(ce *CommandEvent, name string, password string) (err err
|
|||
user.SetSession(user.Conn.LoginInfo)
|
||||
user.JID = "8:" + user.Conn.UserProfile.Username + skypeExt.NewUserSuffix
|
||||
user.addToJIDMap()
|
||||
ce.User.Conn.GetConversations("", user.bridge.Config.Bridge.InitialChatSync)
|
||||
_ = ce.User.Conn.GetConversations("", user.bridge.Config.Bridge.InitialChatSync)
|
||||
return
|
||||
}
|
||||
func loopPresence(user *User) {
|
||||
|
||||
func loopPresence(user *User) {
|
||||
for {
|
||||
if user.Conn.LoggedIn == false {
|
||||
break
|
||||
}
|
||||
for cid, contact := range user.contactsPresence {
|
||||
puppet := user.bridge.GetPuppetByJID(cid)
|
||||
_ = puppet.DefaultIntent().SetPresence(event.Presence(strings.ToLower(contact.Availability)))
|
||||
|
@ -407,51 +409,6 @@ func loopPresence(user *User) {
|
|||
time.Sleep(39 * time.Second)
|
||||
}
|
||||
}
|
||||
func (user *User) Login1(ce *CommandEvent) {
|
||||
//qrChan := make(chan string, 3)
|
||||
//eventIDChan := make(chan id.EventID, 1)
|
||||
//go user.loginQrChannel(ce, qrChan, eventIDChan)
|
||||
//session, err := user.Conn.LoginWithRetry(qrChan, user.bridge.Config.Bridge.LoginQRRegenCount)
|
||||
//qrChan <- "stop"
|
||||
//if err != nil {
|
||||
// var eventID id.EventID
|
||||
// select {
|
||||
// case eventID = <-eventIDChan:
|
||||
// default:
|
||||
// }
|
||||
// reply := event.MessageEventContent{
|
||||
// MsgType: event.MsgText,
|
||||
// }
|
||||
// if err == whatsapp.ErrAlreadyLoggedIn {
|
||||
// reply.Body = "You're already logged in"
|
||||
// } else if err == whatsapp.ErrLoginInProgress {
|
||||
// reply.Body = "You have a login in progress already."
|
||||
// } else if err == whatsapp.ErrLoginTimedOut {
|
||||
// reply.Body = "QR code scan timed out. Please try again."
|
||||
// } else {
|
||||
// user.log.Warnln("Failed to log in:", err)
|
||||
// reply.Body = fmt.Sprintf("Unknown error while logging in: %v", err)
|
||||
// }
|
||||
// msg := reply
|
||||
// if eventID != "" {
|
||||
// msg.NewContent = &reply
|
||||
// msg.RelatesTo = &event.RelatesTo{
|
||||
// Type: event.RelReplace,
|
||||
// EventID: eventID,
|
||||
// }
|
||||
// }
|
||||
// _, _ = ce.Bot.SendMessageEvent(ce.RoomID, event.EventMessage, &msg)
|
||||
// return
|
||||
//}
|
||||
//// TODO there's a bit of duplication between this and the provisioning API login method
|
||||
//// Also between the two logout methods (commands.go and provisioning.go)
|
||||
//user.ConnectionErrors = 0
|
||||
//user.JID = strings.Replace(user.Conn.Info.Wid, whatsappExt.OldUserSuffix, whatsappExt.NewUserSuffix, 1)
|
||||
//user.addToJIDMap()
|
||||
//user.SetSession(&session)
|
||||
//ce.Reply("Successfully logged in, synchronizing chats...")
|
||||
//user.PostLogin()
|
||||
}
|
||||
|
||||
type Chat struct {
|
||||
Portal *Portal
|
||||
|
|
Loading…
Reference in New Issue