Add /set* commands

This commit is contained in:
bodqhrohro 2019-12-05 20:13:17 +02:00
parent eeba07eeb0
commit 753a488c9d

View file

@ -1,26 +1,27 @@
package telegram package telegram
import ( import (
"github.com/pkg/errors"
"strconv" "strconv"
"strings" "strings"
"dev.narayana.im/narayana/telegabber/xmpp/gateway" "dev.narayana.im/narayana/telegabber/xmpp/gateway"
log "github.com/sirupsen/logrus" "github.com/zelenin/go-tdlib/client"
) )
const notEnoughArguments string = "Not enough arguments" const notEnoughArguments string = "Not enough arguments"
const telegramNotInitialized string = "Telegram connection is not initialized yet" const telegramNotInitialized string = "Telegram connection is not initialized yet"
var transportCommands = map[string]command{ var transportCommands = map[string]command{
"login": command{"phone", "sign in"}, "login": command{"phone", "sign in"},
"logout": command{"", "sign out"}, "logout": command{"", "sign out"},
"code": command{"", "check one-time code"}, "code": command{"", "check one-time code"},
"password": command{"", "check 2fa password"}, "password": command{"", "check 2fa password"},
//"setusername": command{"", "update @username"}, "setusername": command{"", "update @username"},
//"setname": command{"first last", "update name"}, "setname": command{"first last", "update name"},
//"setbio": command{"", "update about"}, "setbio": command{"", "update about"},
//"setpassword": command{"[old] [new]", "set or remove password"}, "setpassword": command{"[old] [new]", "set or remove password"},
//"config": command{"[param] [value]", "view or update configuration options"}, //"config": command{"[param] [value]", "view or update configuration options"},
} }
@ -140,7 +141,7 @@ func (c *Client) ProcessTransportCommand(cmdline string) string {
case "logout": case "logout":
_, err := c.client.LogOut() _, err := c.client.LogOut()
if err != nil { if err != nil {
log.Errorf("Logout error: %v", err) return errors.Wrap(err, "Logout error").Error()
} }
for id := range c.cache.chats { for id := range c.cache.chats {
@ -153,6 +154,61 @@ func (c *Client) ProcessTransportCommand(cmdline string) string {
} }
c.Session.Login = "" c.Session.Login = ""
// set @username
case "setusername":
var username string
if len(args) > 0 {
username = args[0]
}
_, err := c.client.SetUsername(&client.SetUsernameRequest{
Username: username,
})
if err != nil {
return errors.Wrap(err, "Couldn't set username").Error()
}
// set My Name
case "setname":
var firstname string
var lastname string
if len(args) > 0 {
firstname = args[0]
}
if len(args) > 1 {
lastname = args[1]
}
_, err := c.client.SetName(&client.SetNameRequest{
FirstName: firstname,
LastName: lastname,
})
if err != nil {
return errors.Wrap(err, "Couldn't set name").Error()
}
// set About
case "setbio":
_, err := c.client.SetBio(&client.SetBioRequest{
Bio: strings.Join(args, " "),
})
if err != nil {
return errors.Wrap(err, "Couldn't set bio").Error()
}
// set password
case "setpassword":
var oldPassword string
var newPassword string
// 0 or 1 argument is ignored and the password is reset
if len(args) > 1 {
oldPassword = args[0]
newPassword = args[1]
}
_, err := c.client.SetPassword(&client.SetPasswordRequest{
OldPassword: oldPassword,
NewPassword: newPassword,
})
if err != nil {
return errors.Wrap(err, "Couldn't set password").Error()
}
case "help": case "help":
return helpString(helpTypeTransport) return helpString(helpTypeTransport)
} }