diff --git a/CHANGELOG.md b/CHANGELOG.md index a864749..ac3102c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,8 @@ # Changelog ## Unreleased +### Changed +- Improved listening mode for groupchats. ## [v0.5.0] 2022-05-05 ### Added diff --git a/main.go b/main.go index a37c139..4b98940 100644 --- a/main.go +++ b/main.go @@ -451,14 +451,23 @@ func main() { if msg == "" { continue } - bareFrom := strings.Split(v.Remote, "/")[0] + var bareFrom string + switch v.Type { + case "chat": + bareFrom = strings.Split(v.Remote, "/")[0] + case "groupchat": + bareFrom = v.Remote + default: + bareFrom = strings.Split(v.Remote, "/")[0] + } // Print any messages if no recipients are specified if len(recipients) == 0 { fmt.Println(t.In(tz).Format(time.RFC3339), "[OX]", bareFrom+":", msg) } else { for _, recipient := range recipients { - if bareFrom == strings.ToLower(recipient.Jid) { + if strings.Split(v.Remote, "/")[0] == + strings.ToLower(recipient.Jid) { fmt.Println(t.In(tz).Format(time.RFC3339), "[OX]", bareFrom+":", msg) } @@ -474,13 +483,22 @@ func main() { } else { t = v.Stamp } - bareFrom := strings.Split(v.Remote, "/")[0] + var bareFrom string + switch v.Type { + case "chat": + bareFrom = strings.Split(v.Remote, "/")[0] + case "groupchat": + bareFrom = v.Remote + default: + bareFrom = strings.Split(v.Remote, "/")[0] + } // Print any messages if no recipients are specified if len(recipients) == 0 { fmt.Println(t.In(tz).Format(time.RFC3339), bareFrom+":", v.Text) } else { for _, recipient := range recipients { - if bareFrom == strings.ToLower(recipient.Jid) { + if strings.Split(v.Remote, "/")[0] == + strings.ToLower(recipient.Jid) { fmt.Println(t.In(tz).Format(time.RFC3339), bareFrom+":", v.Text) }