diff --git a/internal/reader/rss/adapter.go b/internal/reader/rss/adapter.go index 36b39da4..273209ef 100644 --- a/internal/reader/rss/adapter.go +++ b/internal/reader/rss/adapter.go @@ -35,8 +35,8 @@ func (r *RSSAdapter) BuildFeed(baseURL string) *model.Feed { } // Ensure the Site URL is absolute. - if siteURL, err := urllib.AbsoluteURL(baseURL, feed.SiteURL); err == nil { - feed.SiteURL = siteURL + if absoluteSiteURL, err := urllib.AbsoluteURL(baseURL, feed.SiteURL); err == nil { + feed.SiteURL = absoluteSiteURL } // Try to find the feed URL from the Atom links. diff --git a/internal/urllib/url.go b/internal/urllib/url.go index 55230187..56d41d96 100644 --- a/internal/urllib/url.go +++ b/internal/urllib/url.go @@ -21,7 +21,10 @@ func IsAbsoluteURL(link string) bool { // AbsoluteURL converts the input URL as absolute URL if necessary. func AbsoluteURL(baseURL, input string) (string, error) { if strings.HasPrefix(input, "//") { - input = "https://" + input[2:] + return "https:" + input, nil + } + if strings.HasPrefix(input, "https://") || strings.HasPrefix(input, "http://") { + return input, nil } u, err := url.Parse(input)