From bfb1477ce613fc23b011ccba2cb6b3ecd96f441e Mon Sep 17 00:00:00 2001 From: fiatjaf Date: Thu, 28 Dec 2023 09:03:14 -0300 Subject: [PATCH] fix newline replacer code and remove \t and \r before rendering. --- render_image.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/render_image.go b/render_image.go index f698828..47e2751 100644 --- a/render_image.go +++ b/render_image.go @@ -9,6 +9,7 @@ import ( "image/png" "math" "net/http" + "regexp" "strings" "time" @@ -33,6 +34,8 @@ var ( //go:embed fonts/* var fonts embed.FS +var multiNewlineRe = regexp.MustCompile(`\n\n+`) + func renderImage(w http.ResponseWriter, r *http.Request) { fmt.Println(r.URL.Path, ":~", r.Header.Get("user-agent")) @@ -48,8 +51,11 @@ func renderImage(w http.ResponseWriter, r *http.Request) { return } - content := strings.Replace(data.event.Content, "\n\n\n\n", "\n\n", -1) - content = strings.Replace(data.event.Content, "\n\n\n", "\n\n", -1) + content := data.event.Content + content = strings.Replace(content, "\r\n", "\n", -1) + content = multiNewlineRe.ReplaceAllString(content, "\n\n") + content = strings.Replace(content, "\t", " ", -1) + content = strings.Replace(content, "\r", "", -1) content = shortenURLs(content) // this turns the raw event.Content into a series of lines ready to drawn