todo, impl changing sender via @name but not test

This commit is contained in:
Bel LaPointe
2022-01-11 23:34:53 -05:00
parent 9d855e0f30
commit 7ec4ce79dd
3 changed files with 17 additions and 8 deletions

View File

@@ -4,6 +4,8 @@ import (
"fmt"
"local/truckstop/config"
"log"
"regexp"
"strings"
"time"
"github.com/matrix-org/gomatrix"
@@ -66,17 +68,23 @@ func (m Matrix) Receive() ([]Message, error) {
case "m.room.message":
b, ok := event.Body()
if ok {
messages = append(messages, Message{Sender: event.Sender, Content: b})
messages = append(messages, Message{Sender: event.Sender, Content: strings.TrimSpace(b)})
}
}
}
if err != nil {
return nil, err
}
clientChange := regexp.MustCompile("^@[a-z]+")
for i := range messages {
for k, v := range config.Get().Clients {
if v.IDs.Matrix == messages[i].Sender {
messages[i].Sender = k
if found := clientChange.FindString(messages[i].Content); found != "" {
messages[i].Content = strings.TrimSpace(strings.ReplaceAll(messages[i].Content, found, ""))
messages[i].Sender = found[1:]
} else {
for k, v := range config.Get().Clients {
if v.IDs.Matrix == messages[i].Sender {
messages[i].Sender = k
}
}
}
}