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)
|
// handler.CommandDevTest(ce)
|
||||||
//case "set-pl":
|
//case "set-pl":
|
||||||
// handler.CommandSetPowerLevel(ce)
|
// handler.CommandSetPowerLevel(ce)
|
||||||
//case "logout":
|
case "logout":
|
||||||
// handler.CommandLogout(ce)
|
handler.CommandLogout(ce)
|
||||||
case "login-matrix", "sync", "list", "open", "pm", "invite", "kick", "leave", "join", "create", "share":
|
case "login-matrix", "sync", "list", "open", "pm", "invite", "kick", "leave", "join", "create", "share":
|
||||||
if !ce.User.HasSession() {
|
if !ce.User.HasSession() {
|
||||||
ce.Reply("You are not logged in. Use the `login` command to log into WhatsApp.")
|
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
|
// CommandLogout handles !logout command
|
||||||
//func (handler *CommandHandler) CommandLogout(ce *CommandEvent) {
|
//func (handler *CommandHandler) CommandLogout(ce *CommandEvent) {
|
||||||
// if ce.User.Session == nil {
|
// if ce.User.Session == nil {
|
||||||
|
@ -446,7 +459,7 @@ func (handler *CommandHandler) CommandHelp(ce *CommandEvent) {
|
||||||
ce.Reply("* " + strings.Join([]string{
|
ce.Reply("* " + strings.Join([]string{
|
||||||
cmdPrefix + cmdHelpHelp,
|
cmdPrefix + cmdHelpHelp,
|
||||||
cmdPrefix + cmdLoginHelp,
|
cmdPrefix + cmdLoginHelp,
|
||||||
//cmdPrefix + cmdLogoutHelp,
|
cmdPrefix + cmdLogoutHelp,
|
||||||
//cmdPrefix + cmdDeleteSessionHelp,
|
//cmdPrefix + cmdDeleteSessionHelp,
|
||||||
//cmdPrefix + cmdReconnectHelp,
|
//cmdPrefix + cmdReconnectHelp,
|
||||||
//cmdPrefix + cmdDisconnectHelp,
|
//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")
|
ce.Reply("Successfully logged in")
|
||||||
|
|
||||||
// subscribe basic
|
user.Conn.Subscribes() // subscribe basic event
|
||||||
user.Conn.Subscribes()
|
|
||||||
// subscribe conta
|
|
||||||
err = user.Conn.Conn.ContactList(user.Conn.UserProfile.Username)
|
err = user.Conn.Conn.ContactList(user.Conn.UserProfile.Username)
|
||||||
if err == nil{
|
if err == nil{
|
||||||
var userIds []string
|
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.SetSession(user.Conn.LoginInfo)
|
||||||
user.JID = "8:" + user.Conn.UserProfile.Username + skypeExt.NewUserSuffix
|
user.JID = "8:" + user.Conn.UserProfile.Username + skypeExt.NewUserSuffix
|
||||||
user.addToJIDMap()
|
user.addToJIDMap()
|
||||||
ce.User.Conn.GetConversations("", user.bridge.Config.Bridge.InitialChatSync)
|
_ = ce.User.Conn.GetConversations("", user.bridge.Config.Bridge.InitialChatSync)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
func loopPresence(user *User) {
|
|
||||||
|
func loopPresence(user *User) {
|
||||||
for {
|
for {
|
||||||
|
if user.Conn.LoggedIn == false {
|
||||||
|
break
|
||||||
|
}
|
||||||
for cid, contact := range user.contactsPresence {
|
for cid, contact := range user.contactsPresence {
|
||||||
puppet := user.bridge.GetPuppetByJID(cid)
|
puppet := user.bridge.GetPuppetByJID(cid)
|
||||||
_ = puppet.DefaultIntent().SetPresence(event.Presence(strings.ToLower(contact.Availability)))
|
_ = puppet.DefaultIntent().SetPresence(event.Presence(strings.ToLower(contact.Availability)))
|
||||||
|
@ -407,51 +409,6 @@ func loopPresence(user *User) {
|
||||||
time.Sleep(39 * time.Second)
|
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 {
|
type Chat struct {
|
||||||
Portal *Portal
|
Portal *Portal
|
||||||
|
|
Loading…
Reference in New Issue