From 569bf662d5768bc19e45082ecae507182aa0eb13 Mon Sep 17 00:00:00 2001 From: prosolis <5590409+prosolis@users.noreply.github.com> Date: Sat, 14 Mar 2026 11:14:22 -0700 Subject: [PATCH] Skip URL preview when message contains multiple links Co-Authored-By: Claude Opus 4.6 --- internal/plugin/urls.go | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/internal/plugin/urls.go b/internal/plugin/urls.go index 6d6ed25..92c3423 100644 --- a/internal/plugin/urls.go +++ b/internal/plugin/urls.go @@ -56,17 +56,21 @@ func (p *URLsPlugin) OnMessage(ctx MessageContext) error { return nil } - urls := urlRe.FindAllString(ctx.Body, 5) // limit to 5 URLs per message - if len(urls) == 0 { + allURLs := urlRe.FindAllString(ctx.Body, -1) + // Filter out Matrix internal links (user mentions, room links, etc.) + var urls []string + for _, u := range allURLs { + if !strings.Contains(u, "matrix.to/") { + urls = append(urls, u) + } + } + + // Only preview if there is exactly one URL; skip multi-URL messages + if len(urls) != 1 { return nil } for _, u := range urls { - // Skip Matrix internal links (user mentions, room links, etc.) - if strings.Contains(u, "matrix.to/") { - continue - } - title, desc, err := p.fetchPreview(u) if err != nil { slog.Debug("urls: fetch preview failed", "url", u, "err", err)