mirror of
https://github.com/zoriya/vex.git
synced 2026-06-09 20:59:26 +00:00
fix etag send format
This commit is contained in:
+4
-3
@@ -2,7 +2,6 @@ package vex
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
|
||||||
"net/http"
|
"net/http"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@@ -28,6 +27,8 @@ type GoFeed struct {
|
|||||||
LastModified time.Time
|
LastModified time.Time
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var gmt, _ = time.LoadLocation("GMT")
|
||||||
|
|
||||||
func (r *Reader) ReadFeed(url string, etag string, lastModified *time.Time) (*GoFeed, error) {
|
func (r *Reader) ReadFeed(url string, etag string, lastModified *time.Time) (*GoFeed, error) {
|
||||||
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
|
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
|
||||||
defer cancel()
|
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")
|
req.Header.Set("User-Agent", "Gofeed/1.0")
|
||||||
|
|
||||||
if etag != "" {
|
if etag != "" {
|
||||||
req.Header.Set("If-None-Match", fmt.Sprintf(`"%s"`, etag))
|
req.Header.Set("If-None-Match", etag)
|
||||||
}
|
}
|
||||||
if lastModified != nil {
|
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)
|
resp, err := r.client.Do(req)
|
||||||
|
|||||||
+3
-2
@@ -25,14 +25,15 @@ func NewSyncService(reader *Reader, feeds *FeedService, entries *EntryService) S
|
|||||||
|
|
||||||
func (s SyncService) SyncFeed(feed Feed) error {
|
func (s SyncService) SyncFeed(feed Feed) error {
|
||||||
info, err := s.reader.ReadFeed(feed.Link, feed.etag, feed.lastFetchDate)
|
info, err := s.reader.ReadFeed(feed.Link, feed.etag, feed.lastFetchDate)
|
||||||
|
log.Printf("%v - %v", feed.etag, feed.lastFetchDate)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if info == nil {
|
if info == nil {
|
||||||
// no new items
|
log.Printf("Feed %v is uptodate", feed.Link)
|
||||||
return nil
|
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 {
|
entries := Map(info.Items, func(item *gofeed.Item, _ int) EntryDao {
|
||||||
var date time.Time
|
var date time.Time
|
||||||
if item.PublishedParsed != nil {
|
if item.PublishedParsed != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user