diff options
Diffstat (limited to 'internal/feed/cache/cache_v1.go')
-rw-r--r-- | internal/feed/cache/cache_v1.go | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/internal/feed/cache/cache_v1.go b/internal/feed/cache/cache_v1.go index d754b00..439846f 100644 --- a/internal/feed/cache/cache_v1.go +++ b/internal/feed/cache/cache_v1.go @@ -208,7 +208,7 @@ func (cache *v1Cache) cachedFeed(f *feed.Feed) CachedFeed { return cf } -func newCachedItem(item *feed.Item) cachedItem { +func (cf *cachedFeed) cachedItem(item *feed.Item) cachedItem { var ci cachedItem ci.ID = item.ID @@ -245,8 +245,11 @@ func (cf *cachedFeed) Filter(items []feed.Item, ignoreHash, alwaysNew bool) []fe cacheItems := make(map[cachedItem]*feed.Item, len(items)) for idx := range items { + i := &items[idx] + ci := cf.cachedItem(i) + // remove complete duplicates on the go - cacheItems[newCachedItem(&items[idx])] = &items[idx] + cacheItems[ci] = i } log.Debugf("%d items after deduplication", len(cacheItems)) |