From e2b6856a15b1375231b79a10c364b160611f0090 Mon Sep 17 00:00:00 2001 From: AnastasiaShemyakinskaya Date: Thu, 1 Feb 2024 19:37:44 +0300 Subject: [PATCH] add another utf check Signed-off-by: AnastasiaShemyakinskaya --- util/linkpreview/linkpreview.go | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/util/linkpreview/linkpreview.go b/util/linkpreview/linkpreview.go index db11cd98d..d779e8503 100644 --- a/util/linkpreview/linkpreview.go +++ b/util/linkpreview/linkpreview.go @@ -22,7 +22,10 @@ import ( "github.com/anyproto/anytype-heart/util/uri" ) -const CName = "linkpreview" +const ( + CName = "linkpreview" + utfEncoding = "utf-8" +) func New() LinkPreview { return &linkPreview{} @@ -86,9 +89,6 @@ func (l *linkPreview) Fetch(ctx context.Context, fetchUrl string) (model.LinkPre if !utf8.ValidString(res.Description) { res.Description = "" } - if utf8.Valid(rt.lastBody) { - return res, rt.lastBody, err - } decodedResponse, err := decodeResponse(rt) if err != nil { log.Errorf("failed to decode request %s", err) @@ -98,7 +98,10 @@ func (l *linkPreview) Fetch(ctx context.Context, fetchUrl string) (model.LinkPre func decodeResponse(response *proxyRoundTripper) ([]byte, error) { contentType := response.lastResponse.Header.Get("Content-Type") - enc, _, _ := charset.DetermineEncoding(response.lastBody, contentType) + enc, name, _ := charset.DetermineEncoding(response.lastBody, contentType) + if name == utfEncoding { + return response.lastBody, nil + } decodedResponse, err := enc.NewDecoder().Bytes(response.lastBody) if err != nil { return response.lastBody, err