Add rawmessages configuration option

This commit is contained in:
Bohdan Horbeshko 2022-02-08 13:49:49 -05:00
parent 0610479734
commit 2a5af5a264
3 changed files with 16 additions and 4 deletions

View file

@ -34,14 +34,16 @@ type SessionsMap struct {
// Session is a key-values subtree
type Session struct {
Login string `yaml:":login"`
Timezone string `yaml:":timezone"`
KeepOnline bool `yaml:":keeponline"`
Login string `yaml:":login"`
Timezone string `yaml:":timezone"`
KeepOnline bool `yaml:":keeponline"`
RawMessages bool `yaml:":rawmessages"`
}
var configKeys = []string{
"timezone",
"keeponline",
"rawmessages",
}
var sessionDB *SessionsYamlDB
@ -110,6 +112,8 @@ func (s *Session) Get(key string) (string, error) {
return s.Timezone, nil
case "keeponline":
return fromBool(s.KeepOnline), nil
case "rawmessages":
return fromBool(s.RawMessages), nil
}
return "", errors.New("Unknown session property")
@ -139,6 +143,13 @@ func (s *Session) Set(key string, value string) (string, error) {
}
s.KeepOnline = b
return value, nil
case "rawmessages":
b, err := toBool(value)
if err != nil {
return "", err
}
s.RawMessages = b
return value, nil
}
return "", errors.New("Unknown session property")

View file

@ -83,6 +83,7 @@ var chatCommands = map[string]command{
var transportConfigurationOptions = map[string]configurationOption{
"timezone": configurationOption{"<timezone>", "adjust timezone for Telegram user statuses (example: +02:00)"},
"keeponline": configurationOption{"<bool>", "always keep telegram session online and rely on jabber offline messages (example: true)"},
"rawmessages": configurationOption{"<bool>", "do not add additional info (message id, origin etc.) to incoming messages (example: true)"},
}
type command struct {

View file

@ -210,7 +210,7 @@ func (c *Client) updateNewMessage(update *client.UpdateNewMessage) {
}
}
// OTR support (I do not know why would you need it, seriously)
if !strings.HasPrefix(text, "?OTR") {
if !(strings.HasPrefix(text, "?OTR") || c.Session.RawMessages) {
var prefix strings.Builder
prefix.WriteString(c.messageToPrefix(update.Message, c.formatContent(file, filename)))
if text != "" {