From c5b9309a52c9dd4087c6ab749bcadb89c9c1e936 Mon Sep 17 00:00:00 2001 From: Nazar Kanaev Date: Sun, 16 Aug 2020 13:58:12 +0100 Subject: [PATCH] feed fetch changes --- server/handlers.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/server/handlers.go b/server/handlers.go index b48787c..3141538 100644 --- a/server/handlers.go +++ b/server/handlers.go @@ -173,7 +173,10 @@ func FeedListHandler(rw http.ResponseWriter, req *http.Request) { } feedUrl := feed.Url - res, err := http.Get(feedUrl) + feedreq, _ := http.NewRequest("GET", feedUrl, nil) + feedreq.Header.Set("user-agent", req.Header.Get("user-agent")) + feedclient := &http.Client{} + res, err := feedclient.Do(feedreq) if err != nil { handler(req).log.Print(err) writeJSON(rw, map[string]string{"status": "notfound"}) @@ -191,7 +194,7 @@ func FeedListHandler(rw http.ResponseWriter, req *http.Request) { sources, err := FindFeeds(res) if err != nil { handler(req).log.Print(err) - rw.WriteHeader(http.StatusBadRequest) + writeJSON(rw, map[string]string{"status": "notfound"}) return } if len(sources) == 0 { @@ -211,13 +214,14 @@ func FeedListHandler(rw http.ResponseWriter, req *http.Request) { } writeJSON(rw, map[string]string{"status": "success"}) } - } else if strings.HasPrefix(contentType, "text/xml") || strings.HasPrefix(contentType, "application/xml") || strings.HasPrefix(contentType, "application/rss+xml") { + } else if strings.Contains(contentType, "xml") { + // text/xml, application/xml, application/rss+xml, application/atom+xml err = createFeed(db(req), feedUrl, feed.FolderID) if err == nil { writeJSON(rw, map[string]string{"status": "success"}) } } else { - rw.WriteHeader(http.StatusBadRequest) + writeJSON(rw, map[string]string{"status": "notfound"}) return } }