diff options
Diffstat (limited to 'fetch/gemini.go')
| -rw-r--r-- | fetch/gemini.go | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/fetch/gemini.go b/fetch/gemini.go index 6aa1231..b50505a 100644 --- a/fetch/gemini.go +++ b/fetch/gemini.go @@ -27,9 +27,9 @@ import ( ) // fetchGemini will make a request for a gemini resource -func fetchGemini(remote *url.URL) (*gemini.Response, error) { +func fetchGemini(remote string) (*gemini.Response, error) { client := &gemini.Client{} - resp, err := client.Get(context.Background(), remote.String()) + resp, err := client.Get(context.Background(), remote) if err != nil { return nil, err } @@ -42,7 +42,7 @@ func fetchGemini(remote *url.URL) (*gemini.Response, error) { // geminiFeed will fetch and insert a new core.Feed into a core.FullData given // a gemini url (or update if it's preexisting) -func geminiFeed(data *core.FullData, remote *url.URL, title string) error { +func geminiFeed(data *core.FullData, remote string, title string) error { resp, err := fetchGemini(remote) if err != nil { return err @@ -60,9 +60,11 @@ func geminiFeed(data *core.FullData, remote *url.URL, title string) error { case "text/gemini": var feed core.Feed feed.Title = title // will be set later if given title is "" - feed.Link = remote.String() - feed.FeedLink = remote.String() + feed.Link = remote + feed.FeedLink = remote feed.Updated = time.Now() + // we know that remote is a good url because it's been parsed previously + parsedRemote, _ := url.ParseRequestURI(remote) text, err := gemini.ParseText(resp.Body) if err != nil { @@ -87,7 +89,7 @@ func geminiFeed(data *core.FullData, remote *url.URL, title string) error { if err != nil { continue } - link = remote.ResolveReference(link) + link = parsedRemote.ResolveReference(link) item := &core.Item{} item.Title = strings.TrimLeft(line.Name[10:], " :-–—") item.Published = date @@ -119,7 +121,7 @@ func geminiFeed(data *core.FullData, remote *url.URL, title string) error { // geminiPage will fetch and insert a new core.Page into a core.FullData given // a gemini url (or update if it's preexisting) -func geminiPage(data *core.FullData, remote *url.URL, title string) error { +func geminiPage(data *core.FullData, remote string, title string) error { resp, err := fetchGemini(remote) if err != nil { return err @@ -130,7 +132,7 @@ func geminiPage(data *core.FullData, remote *url.URL, title string) error { var page core.Page page.Title = title - page.Link = remote.String() + page.Link = remote h := sha256.New() if _, err := io.Copy(h, reader); err != nil { return err |
