Fix default User-Agent regression
The recent HTTP client refactor in 14e25ab9fe
introduced a bug in which the global default User-Agent is no longer
used for requests. Unless a per-feed User-Agent exists, the Go standard
library's default User-Agent is used, which looks something like
"Go-http-client/1.1". To fix this, make RequestBuilder.WithUserAgent
take an additional argument, the default User-Agent, which will be used
if there is no per-feed User-Agent (i.e. it is an empty string).
Fixes #2188
Fixes #2189
This commit is contained in:
parent
14f70351c0
commit
7a03291442
5 changed files with 9 additions and 9 deletions
|
@ -37,7 +37,7 @@ func (h *handler) discoverSubscriptions(w http.ResponseWriter, r *http.Request)
|
||||||
requestBuilder := fetcher.NewRequestBuilder()
|
requestBuilder := fetcher.NewRequestBuilder()
|
||||||
requestBuilder.WithTimeout(config.Opts.HTTPClientTimeout())
|
requestBuilder.WithTimeout(config.Opts.HTTPClientTimeout())
|
||||||
requestBuilder.WithProxy(config.Opts.HTTPClientProxy())
|
requestBuilder.WithProxy(config.Opts.HTTPClientProxy())
|
||||||
requestBuilder.WithUserAgent(subscriptionDiscoveryRequest.UserAgent)
|
requestBuilder.WithUserAgent(subscriptionDiscoveryRequest.UserAgent, config.Opts.HTTPClientUserAgent())
|
||||||
requestBuilder.WithCookie(subscriptionDiscoveryRequest.Cookie)
|
requestBuilder.WithCookie(subscriptionDiscoveryRequest.Cookie)
|
||||||
requestBuilder.WithUsernameAndPassword(subscriptionDiscoveryRequest.Username, subscriptionDiscoveryRequest.Password)
|
requestBuilder.WithUsernameAndPassword(subscriptionDiscoveryRequest.Username, subscriptionDiscoveryRequest.Password)
|
||||||
requestBuilder.UseProxy(subscriptionDiscoveryRequest.FetchViaProxy)
|
requestBuilder.UseProxy(subscriptionDiscoveryRequest.FetchViaProxy)
|
||||||
|
|
|
@ -53,11 +53,11 @@ func (r *RequestBuilder) WithLastModified(lastModified string) *RequestBuilder {
|
||||||
return r
|
return r
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *RequestBuilder) WithUserAgent(userAgent string) *RequestBuilder {
|
func (r *RequestBuilder) WithUserAgent(userAgent string, defaultUserAgent string) *RequestBuilder {
|
||||||
if userAgent != "" {
|
if userAgent != "" {
|
||||||
r.headers.Set("User-Agent", userAgent)
|
r.headers.Set("User-Agent", userAgent)
|
||||||
} else {
|
} else {
|
||||||
r.headers.Del("User-Agent")
|
r.headers.Set("User-Agent", defaultUserAgent)
|
||||||
}
|
}
|
||||||
return r
|
return r
|
||||||
}
|
}
|
||||||
|
|
|
@ -85,7 +85,7 @@ func CreateFeedFromSubscriptionDiscovery(store *storage.Storage, userID int64, f
|
||||||
|
|
||||||
requestBuilder := fetcher.NewRequestBuilder()
|
requestBuilder := fetcher.NewRequestBuilder()
|
||||||
requestBuilder.WithUsernameAndPassword(feedCreationRequest.Username, feedCreationRequest.Password)
|
requestBuilder.WithUsernameAndPassword(feedCreationRequest.Username, feedCreationRequest.Password)
|
||||||
requestBuilder.WithUserAgent(feedCreationRequest.UserAgent)
|
requestBuilder.WithUserAgent(feedCreationRequest.UserAgent, config.Opts.HTTPClientUserAgent())
|
||||||
requestBuilder.WithCookie(feedCreationRequest.Cookie)
|
requestBuilder.WithCookie(feedCreationRequest.Cookie)
|
||||||
requestBuilder.WithTimeout(config.Opts.HTTPClientTimeout())
|
requestBuilder.WithTimeout(config.Opts.HTTPClientTimeout())
|
||||||
requestBuilder.WithProxy(config.Opts.HTTPClientProxy())
|
requestBuilder.WithProxy(config.Opts.HTTPClientProxy())
|
||||||
|
@ -121,7 +121,7 @@ func CreateFeed(store *storage.Storage, userID int64, feedCreationRequest *model
|
||||||
|
|
||||||
requestBuilder := fetcher.NewRequestBuilder()
|
requestBuilder := fetcher.NewRequestBuilder()
|
||||||
requestBuilder.WithUsernameAndPassword(feedCreationRequest.Username, feedCreationRequest.Password)
|
requestBuilder.WithUsernameAndPassword(feedCreationRequest.Username, feedCreationRequest.Password)
|
||||||
requestBuilder.WithUserAgent(feedCreationRequest.UserAgent)
|
requestBuilder.WithUserAgent(feedCreationRequest.UserAgent, config.Opts.HTTPClientUserAgent())
|
||||||
requestBuilder.WithCookie(feedCreationRequest.Cookie)
|
requestBuilder.WithCookie(feedCreationRequest.Cookie)
|
||||||
requestBuilder.WithTimeout(config.Opts.HTTPClientTimeout())
|
requestBuilder.WithTimeout(config.Opts.HTTPClientTimeout())
|
||||||
requestBuilder.WithProxy(config.Opts.HTTPClientProxy())
|
requestBuilder.WithProxy(config.Opts.HTTPClientProxy())
|
||||||
|
@ -230,7 +230,7 @@ func RefreshFeed(store *storage.Storage, userID, feedID int64, forceRefresh bool
|
||||||
|
|
||||||
requestBuilder := fetcher.NewRequestBuilder()
|
requestBuilder := fetcher.NewRequestBuilder()
|
||||||
requestBuilder.WithUsernameAndPassword(originalFeed.Username, originalFeed.Password)
|
requestBuilder.WithUsernameAndPassword(originalFeed.Username, originalFeed.Password)
|
||||||
requestBuilder.WithUserAgent(originalFeed.UserAgent)
|
requestBuilder.WithUserAgent(originalFeed.UserAgent, config.Opts.HTTPClientUserAgent())
|
||||||
requestBuilder.WithCookie(originalFeed.Cookie)
|
requestBuilder.WithCookie(originalFeed.Cookie)
|
||||||
requestBuilder.WithTimeout(config.Opts.HTTPClientTimeout())
|
requestBuilder.WithTimeout(config.Opts.HTTPClientTimeout())
|
||||||
requestBuilder.WithProxy(config.Opts.HTTPClientProxy())
|
requestBuilder.WithProxy(config.Opts.HTTPClientProxy())
|
||||||
|
|
|
@ -65,7 +65,7 @@ func ProcessFeedEntries(store *storage.Storage, feed *model.Feed, user *model.Us
|
||||||
startTime := time.Now()
|
startTime := time.Now()
|
||||||
|
|
||||||
requestBuilder := fetcher.NewRequestBuilder()
|
requestBuilder := fetcher.NewRequestBuilder()
|
||||||
requestBuilder.WithUserAgent(feed.UserAgent)
|
requestBuilder.WithUserAgent(feed.UserAgent, config.Opts.HTTPClientUserAgent())
|
||||||
requestBuilder.WithCookie(feed.Cookie)
|
requestBuilder.WithCookie(feed.Cookie)
|
||||||
requestBuilder.WithTimeout(config.Opts.HTTPClientTimeout())
|
requestBuilder.WithTimeout(config.Opts.HTTPClientTimeout())
|
||||||
requestBuilder.WithProxy(config.Opts.HTTPClientProxy())
|
requestBuilder.WithProxy(config.Opts.HTTPClientProxy())
|
||||||
|
@ -166,7 +166,7 @@ func ProcessEntryWebPage(feed *model.Feed, entry *model.Entry, user *model.User)
|
||||||
websiteURL := getUrlFromEntry(feed, entry)
|
websiteURL := getUrlFromEntry(feed, entry)
|
||||||
|
|
||||||
requestBuilder := fetcher.NewRequestBuilder()
|
requestBuilder := fetcher.NewRequestBuilder()
|
||||||
requestBuilder.WithUserAgent(feed.UserAgent)
|
requestBuilder.WithUserAgent(feed.UserAgent, config.Opts.HTTPClientUserAgent())
|
||||||
requestBuilder.WithCookie(feed.Cookie)
|
requestBuilder.WithCookie(feed.Cookie)
|
||||||
requestBuilder.WithTimeout(config.Opts.HTTPClientTimeout())
|
requestBuilder.WithTimeout(config.Opts.HTTPClientTimeout())
|
||||||
requestBuilder.WithProxy(config.Opts.HTTPClientProxy())
|
requestBuilder.WithProxy(config.Opts.HTTPClientProxy())
|
||||||
|
|
|
@ -60,7 +60,7 @@ func (h *handler) submitSubscription(w http.ResponseWriter, r *http.Request) {
|
||||||
requestBuilder := fetcher.NewRequestBuilder()
|
requestBuilder := fetcher.NewRequestBuilder()
|
||||||
requestBuilder.WithTimeout(config.Opts.HTTPClientTimeout())
|
requestBuilder.WithTimeout(config.Opts.HTTPClientTimeout())
|
||||||
requestBuilder.WithProxy(config.Opts.HTTPClientProxy())
|
requestBuilder.WithProxy(config.Opts.HTTPClientProxy())
|
||||||
requestBuilder.WithUserAgent(subscriptionForm.UserAgent)
|
requestBuilder.WithUserAgent(subscriptionForm.UserAgent, config.Opts.HTTPClientUserAgent())
|
||||||
requestBuilder.WithCookie(subscriptionForm.Cookie)
|
requestBuilder.WithCookie(subscriptionForm.Cookie)
|
||||||
requestBuilder.WithUsernameAndPassword(subscriptionForm.Username, subscriptionForm.Password)
|
requestBuilder.WithUsernameAndPassword(subscriptionForm.Username, subscriptionForm.Password)
|
||||||
requestBuilder.UseProxy(subscriptionForm.FetchViaProxy)
|
requestBuilder.UseProxy(subscriptionForm.FetchViaProxy)
|
||||||
|
|
Loading…
Reference in a new issue