aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--reader/feed/handler.go3
-rw-r--r--storage/entry.go8
2 files changed, 7 insertions, 4 deletions
diff --git a/reader/feed/handler.go b/reader/feed/handler.go
index c1f42ae..4801d12 100644
--- a/reader/feed/handler.go
+++ b/reader/feed/handler.go
@@ -171,7 +171,8 @@ func (h *Handler) RefreshFeed(userID, feedID int64) error {
originalFeed.EtagHeader = response.ETag
originalFeed.LastModifiedHeader = response.LastModified
- if err := h.store.UpdateEntries(originalFeed.UserID, originalFeed.ID, subscription.Entries); err != nil {
+ // Note: We don't update existing entries when the crawler is enabled (we crawl only inexisting entries).
+ if err := h.store.UpdateEntries(originalFeed.UserID, originalFeed.ID, subscription.Entries, !originalFeed.Crawler); err != nil {
return err
}
diff --git a/storage/entry.go b/storage/entry.go
index d1e8798..5ff5f5c 100644
--- a/storage/entry.go
+++ b/storage/entry.go
@@ -116,15 +116,17 @@ func (s *Storage) entryExists(entry *model.Entry) bool {
return result >= 1
}
-// UpdateEntries update a list of entries while refreshing a feed.
-func (s *Storage) UpdateEntries(userID, feedID int64, entries model.Entries) (err error) {
+// UpdateEntries updates a list of entries while refreshing a feed.
+func (s *Storage) UpdateEntries(userID, feedID int64, entries model.Entries, updateExistingEntries bool) (err error) {
var entryHashes []string
for _, entry := range entries {
entry.UserID = userID
entry.FeedID = feedID
if s.entryExists(entry) {
- err = s.updateEntry(entry)
+ if updateExistingEntries {
+ err = s.updateEntry(entry)
+ }
} else {
err = s.createEntry(entry)
}