Move login-matrix commands to mautrix-go

This commit is contained in:
Tulir Asokan 2022-05-22 19:11:08 +03:00
parent 15129c0acc
commit 9e4e964112
2 changed files with 11 additions and 77 deletions

View File

@ -76,9 +76,6 @@ func (br *WABridge) RegisterCommands() {
cmdOpen,
cmdPM,
cmdSync,
cmdLoginMatrix,
cmdPingMatrix,
cmdLogoutMatrix,
cmdDisappearingTimer,
)
}
@ -499,7 +496,6 @@ var cmdLogout = &commands.FullHandler{
},
}
// CommandLogout handles !logout command
func fnLogout(ce *WrappedCommandEvent) {
if ce.User.Session == nil {
ce.Reply("You're not logged in.")
@ -1133,79 +1129,6 @@ func fnSync(ce *WrappedCommandEvent) {
}
}
var cmdLoginMatrix = &commands.FullHandler{
Func: wrapCommand(fnLoginMatrix),
Name: "login-matrix",
Help: commands.HelpMeta{
Section: commands.HelpSectionAuth,
Description: "Replace your WhatsApp account's Matrix puppet with your real Matrix account.",
Args: "<_access token_>",
},
RequiresLogin: true,
}
func fnLoginMatrix(ce *WrappedCommandEvent) {
if len(ce.Args) == 0 {
ce.Reply("**Usage:** `login-matrix <access token>`")
return
}
puppet := ce.Bridge.GetPuppetByJID(ce.User.JID)
err := puppet.SwitchCustomMXID(ce.Args[0], ce.User.MXID)
if err != nil {
ce.Reply("Failed to switch puppet: %v", err)
return
}
ce.Reply("Successfully switched puppet")
}
var cmdPingMatrix = &commands.FullHandler{
Func: wrapCommand(fnPingMatrix),
Name: "ping-matrix",
Help: commands.HelpMeta{
Section: commands.HelpSectionAuth,
Description: "Check if your double puppet is working correctly.",
},
RequiresLogin: true,
}
func fnPingMatrix(ce *WrappedCommandEvent) {
puppet := ce.Bridge.GetPuppetByCustomMXID(ce.User.MXID)
if puppet == nil || puppet.CustomIntent() == nil {
ce.Reply("You have not changed your WhatsApp account's Matrix puppet.")
return
}
resp, err := puppet.CustomIntent().Whoami()
if err != nil {
ce.Reply("Failed to validate Matrix login: %v", err)
} else {
ce.Reply("Confirmed valid access token for %s / %s", resp.UserID, resp.DeviceID)
}
}
var cmdLogoutMatrix = &commands.FullHandler{
Func: wrapCommand(fnLogoutMatrix),
Name: "logout-matrix",
Help: commands.HelpMeta{
Section: commands.HelpSectionAuth,
Description: "Switch your WhatsApp account's Matrix puppet back to the default one.",
},
RequiresLogin: true,
}
func fnLogoutMatrix(ce *WrappedCommandEvent) {
puppet := ce.Bridge.GetPuppetByCustomMXID(ce.User.MXID)
if puppet == nil || puppet.CustomIntent() == nil {
ce.Reply("You had not changed your WhatsApp account's Matrix puppet.")
return
}
err := puppet.SwitchCustomMXID("", "")
if err != nil {
ce.Reply("Failed to remove custom puppet: %v", err)
return
}
ce.Reply("Successfully removed custom puppet")
}
var cmdDisappearingTimer = &commands.FullHandler{
Func: wrapCommand(fnDisappearingTimer),
Name: "disappearing-timer",

View File

@ -107,6 +107,17 @@ func (br *WABridge) GetPuppetByCustomMXID(mxid id.UserID) *Puppet {
func (user *User) GetIDoublePuppet() bridge.DoublePuppet {
p := user.bridge.GetPuppetByCustomMXID(user.MXID)
if p == nil || p.CustomIntent() == nil {
return nil
}
return p
}
func (user *User) GetIGhost() bridge.Ghost {
if user.JID.IsEmpty() {
return nil
}
p := user.bridge.GetPuppetByJID(user.JID)
if p == nil {
return nil
}