فهرست منبع

Do not override existing entries when the crawler is enabled

Frédéric Guillot 8 سال پیش
والد
کامیت
ffabb009b8
2فایلهای تغییر یافته به همراه7 افزوده شده و 4 حذف شده
  1. 2 1
      reader/feed/handler.go
  2. 5 3
      storage/entry.go

+ 2 - 1
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
 		}
 

+ 5 - 3
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)
 		}