fix etag send format

This commit is contained in:
2024-05-05 15:19:26 +02:00
parent 0b3037ad04
commit 72b5f4fc7a
2 changed files with 7 additions and 5 deletions
+4 -3
View File
@@ -2,7 +2,6 @@ package vex
import (
"context"
"fmt"
"net/http"
"time"
@@ -28,6 +27,8 @@ type GoFeed struct {
LastModified time.Time
}
var gmt, _ = time.LoadLocation("GMT")
func (r *Reader) ReadFeed(url string, etag string, lastModified *time.Time) (*GoFeed, error) {
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
defer cancel()
@@ -38,10 +39,10 @@ func (r *Reader) ReadFeed(url string, etag string, lastModified *time.Time) (*Go
req.Header.Set("User-Agent", "Gofeed/1.0")
if etag != "" {
req.Header.Set("If-None-Match", fmt.Sprintf(`"%s"`, etag))
req.Header.Set("If-None-Match", etag)
}
if lastModified != nil {
req.Header.Set("If-Modified-Since", lastModified.Format(time.RFC1123))
req.Header.Set("If-Modified-Since", lastModified.In(gmt).Format(time.RFC1123))
}
resp, err := r.client.Do(req)
+3 -2
View File
@@ -25,14 +25,15 @@ func NewSyncService(reader *Reader, feeds *FeedService, entries *EntryService) S
func (s SyncService) SyncFeed(feed Feed) error {
info, err := s.reader.ReadFeed(feed.Link, feed.etag, feed.lastFetchDate)
log.Printf("%v - %v", feed.etag, feed.lastFetchDate)
if err != nil {
return err
}
if info == nil {
// no new items
log.Printf("Feed %v is uptodate", feed.Link)
return nil
}
log.Printf("Adding %v new entries", len(info.Items))
log.Printf("Adding %v new entries from %v", len(info.Items), feed.Link)
entries := Map(info.Items, func(item *gofeed.Item, _ int) EntryDao {
var date time.Time
if item.PublishedParsed != nil {