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)