Add /set* commands
This commit is contained in:
parent
eeba07eeb0
commit
753a488c9d
|
@ -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)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue