Explorar o código

Fix force refresh

Frédéric Guillot %!s(int64=2) %!d(string=hai) anos
pai
achega
309fdbb9fc
Modificáronse 1 ficheiros con 7 adicións e 3 borrados
  1. 7 3
      internal/reader/handler/handler.go

+ 7 - 3
internal/reader/handler/handler.go

@@ -236,14 +236,18 @@ func RefreshFeed(store *storage.Storage, userID, feedID int64, forceRefresh bool
 	requestBuilder.WithUsernameAndPassword(originalFeed.Username, originalFeed.Password)
 	requestBuilder.WithUserAgent(originalFeed.UserAgent, config.Opts.HTTPClientUserAgent())
 	requestBuilder.WithCookie(originalFeed.Cookie)
-	requestBuilder.WithETag(originalFeed.EtagHeader)
-	requestBuilder.WithLastModified(originalFeed.LastModifiedHeader)
 	requestBuilder.WithTimeout(config.Opts.HTTPClientTimeout())
 	requestBuilder.WithProxy(config.Opts.HTTPClientProxy())
 	requestBuilder.UseProxy(originalFeed.FetchViaProxy)
 	requestBuilder.IgnoreTLSErrors(originalFeed.AllowSelfSignedCertificates)
 	requestBuilder.DisableHTTP2(originalFeed.DisableHTTP2)
 
+	ignoreHTTPCache := originalFeed.IgnoreHTTPCache || forceRefresh
+	if !ignoreHTTPCache {
+		requestBuilder.WithETag(originalFeed.EtagHeader)
+		requestBuilder.WithLastModified(originalFeed.LastModifiedHeader)
+	}
+
 	responseHandler := fetcher.NewResponseHandler(requestBuilder.ExecuteRequest(originalFeed.FeedURL))
 	defer responseHandler.Close()
 
@@ -261,7 +265,7 @@ func RefreshFeed(store *storage.Storage, userID, feedID int64, forceRefresh bool
 		return localizedError
 	}
 
-	if originalFeed.IgnoreHTTPCache || responseHandler.IsModified(originalFeed.EtagHeader, originalFeed.LastModifiedHeader) {
+	if ignoreHTTPCache || responseHandler.IsModified(originalFeed.EtagHeader, originalFeed.LastModifiedHeader) {
 		slog.Debug("Feed modified",
 			slog.Int64("user_id", userID),
 			slog.Int64("feed_id", feedID),