From 212345764b4888469416aa4b24c1b7e2ee653bae Mon Sep 17 00:00:00 2001 From: antanst Date: Thu, 10 Oct 2024 18:39:27 +0300 Subject: [PATCH] Properly decode URLs --- gemini.go | 9 +++++++-- main.go | 4 ++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/gemini.go b/gemini.go index e15b21b..ed1b52d 100644 --- a/gemini.go +++ b/gemini.go @@ -99,16 +99,21 @@ func NormalizeLink(linkLine string, currentURL string) (link string, descr strin } originalURLStr := matches[1] + decodedURLStr, err := url.QueryUnescape(originalURLStr) + if err != nil { + return "", "", fmt.Errorf("Error decoding URL: %w", err) + } + restOfLine := "" if len(matches) > 2 { restOfLine = matches[2] } // Parse the URL from the link line - parsedURL, err := url.Parse(originalURLStr) + parsedURL, err := url.Parse(decodedURLStr) if err != nil { // If URL parsing fails, return an error - return "", "", fmt.Errorf("Invalid URL in link line '%s': %v", originalURLStr, err) + return "", "", fmt.Errorf("Invalid URL in link line '%s': %v", decodedURLStr, err) } // Resolve relative URLs against the base URL diff --git a/main.go b/main.go index 0853fb9..0692efa 100644 --- a/main.go +++ b/main.go @@ -3,6 +3,7 @@ package main import ( "os" "strings" + "sync" "time" "github.com/rs/zerolog" @@ -11,7 +12,10 @@ import ( var CONFIG Config +var wg sync.WaitGroup + func main() { + wg.Add(1) CONFIG = *getConfig() zerolog.TimeFieldFormat = zerolog.TimeFormatUnix zerolog.SetGlobalLevel(CONFIG.logLevel)