aboutsummaryrefslogtreecommitdiffhomepage
path: root/reader
diff options
context:
space:
mode:
authorGravatar Frédéric Guillot <fred@miniflux.net>2019-12-26 15:26:23 -0800
committerGravatar Frédéric Guillot <fred@miniflux.net>2019-12-26 15:56:59 -0800
commit3debf75eb9229144a05701e03ba59408a75dd815 (patch)
tree9e9eb6569db3234b514f798d4278b20793b79833 /reader
parent200b1c304b999191a29f36d4122e7aa05481125c (diff)
Normalize URL query string before executing HTTP requests
- Make sure query strings parameters are encoded - As opposed to the standard library, do not append equal sign for query parameters with empty value - Strip URL fragments like Web browsers
Diffstat (limited to 'reader')
-rw-r--r--reader/feed/handler.go4
-rw-r--r--reader/parser/parser_test.go2
-rw-r--r--reader/subscription/finder.go4
3 files changed, 5 insertions, 5 deletions
diff --git a/reader/feed/handler.go b/reader/feed/handler.go
index b272ea1..7dd0bc7 100644
--- a/reader/feed/handler.go
+++ b/reader/feed/handler.go
@@ -52,7 +52,7 @@ func (h *Handler) CreateFeed(userID, categoryID int64, url string, crawler bool,
return nil, errors.NewLocalizedError(errDuplicate, response.EffectiveURL)
}
- subscription, parseErr := parser.ParseFeed(response.String())
+ subscription, parseErr := parser.ParseFeed(response.BodyAsString())
if parseErr != nil {
return nil, parseErr
}
@@ -106,7 +106,7 @@ func (h *Handler) RefreshFeed(userID, feedID int64) error {
if response.IsModified(originalFeed.EtagHeader, originalFeed.LastModifiedHeader) {
logger.Debug("[Handler:RefreshFeed] Feed #%d has been modified", feedID)
- updatedFeed, parseErr := parser.ParseFeed(response.String())
+ updatedFeed, parseErr := parser.ParseFeed(response.BodyAsString())
if parseErr != nil {
originalFeed.WithError(parseErr.Localize(printer))
h.store.UpdateFeedError(originalFeed)
diff --git a/reader/parser/parser_test.go b/reader/parser/parser_test.go
index a5a79a9..ddbacec 100644
--- a/reader/parser/parser_test.go
+++ b/reader/parser/parser_test.go
@@ -191,7 +191,7 @@ func TestDifferentEncodingWithResponse(t *testing.T) {
t.Fatalf(`Encoding error for %q: %v`, tc.filename, encodingErr)
}
- feed, parseErr := ParseFeed(r.String())
+ feed, parseErr := ParseFeed(r.BodyAsString())
if parseErr != nil {
t.Fatalf(`Parsing error for %q - %q: %v`, tc.filename, tc.contentType, parseErr)
}
diff --git a/reader/subscription/finder.go b/reader/subscription/finder.go
index fab8d93..66bbedd 100644
--- a/reader/subscription/finder.go
+++ b/reader/subscription/finder.go
@@ -18,7 +18,7 @@ import (
)
var (
- errUnreadableDoc = "Unable to analyze this page: %v"
+ errUnreadableDoc = "Unable to analyze this page: %v"
)
// FindSubscriptions downloads and try to find one or more subscriptions from an URL.
@@ -31,7 +31,7 @@ func FindSubscriptions(websiteURL, userAgent, username, password string) (Subscr
return nil, err
}
- body := response.String()
+ body := response.BodyAsString()
if format := parser.DetectFeedFormat(body); format != parser.FormatUnknown {
var subscriptions Subscriptions
subscriptions = append(subscriptions, &Subscription{