aboutsummaryrefslogtreecommitdiff
path: root/internal/feed/cache/state.go
diff options
context:
space:
mode:
authorRené 'Necoro' Neumann <necoro@necoro.eu>2021-02-27 23:39:51 +0100
committerRené 'Necoro' Neumann <necoro@necoro.eu>2021-02-27 23:40:00 +0100
commitc407994dd3aeb2c5a8e5f3fa070e7436fe308fc9 (patch)
tree79adc06c0a5865badd83bfd0f515c21791d81d2b /internal/feed/cache/state.go
parent21210173c4d04676436b8e48dfbe4043299797cb (diff)
downloadfeed2imap-go-c407994dd3aeb2c5a8e5f3fa070e7436fe308fc9.tar.gz
feed2imap-go-c407994dd3aeb2c5a8e5f3fa070e7436fe308fc9.tar.bz2
feed2imap-go-c407994dd3aeb2c5a8e5f3fa070e7436fe308fc9.zip
Remove obsolete feeds from cache after 180 days
Diffstat (limited to '')
-rw-r--r--internal/feed/cache/state.go9
1 files changed, 7 insertions, 2 deletions
diff --git a/internal/feed/cache/state.go b/internal/feed/cache/state.go
index 2df0c74..ce6723a 100644
--- a/internal/feed/cache/state.go
+++ b/internal/feed/cache/state.go
@@ -11,6 +11,7 @@ import (
type State struct {
feeds map[string]*feed.Feed
cachedFeeds map[string]CachedFeed
+ knownFeeds map[feed.Descriptor]bool
cache Cache
cfg *config.Config
}
@@ -55,6 +56,7 @@ func (state *State) LoadCache(fileName string, forceNew bool) error {
for name, feed := range state.feeds {
state.cachedFeeds[name] = cache.cachedFeed(feed)
+ state.knownFeeds[feed.Descriptor()] = true
}
// state.feeds should not be used after loading the cache --> enforce a panic
@@ -64,6 +66,7 @@ func (state *State) LoadCache(fileName string, forceNew bool) error {
}
func (state *State) StoreCache(fileName string) error {
+ state.cache.cleanup(state.knownFeeds)
return state.cache.store(fileName)
}
@@ -115,9 +118,11 @@ func (state *State) Filter() {
}
func NewState(cfg *config.Config) (*State, error) {
+ numFeeds := len(cfg.Feeds)
state := State{
- feeds: map[string]*feed.Feed{},
- cachedFeeds: map[string]CachedFeed{},
+ feeds: make(map[string]*feed.Feed, numFeeds),
+ cachedFeeds: make(map[string]CachedFeed, numFeeds),
+ knownFeeds: make(map[feed.Descriptor]bool, numFeeds),
cache: Cache{}, // loaded later on
cfg: cfg,
}
ro' Neumann1-5/+5 2021-02-21Update changelogRené 'Necoro' Neumann1-0/+2 2021-02-21#39 Ignore mails marked as deleted when looking for existing mails, as to not...René 'Necoro' Neumann1-0/+1 2021-02-21go mod tidyRené 'Necoro' Neumann1-8/+0 2021-02-18Import 'embed' packageRené 'Necoro' Neumann1-0/+1 2021-02-16Fix goreleaser setup regarding dockerRené 'Necoro' Neumann1-3/+1 2021-02-16Prepare v0.6.0v0.6.0René 'Necoro' Neumann3-3/+8 2021-02-16Fix CRLF endingRené 'Necoro' Neumann1-57/+57 2021-02-16Increment go-version to 1.16René 'Necoro' Neumann3-5/+5 2021-02-16Use go-embed for templates instead of inline strings.René 'Necoro' Neumann6-74/+79 2021-02-16Issue #46: Fix semantics of `n` resultRené 'Necoro' Neumann2-9/+15 2021-02-16Issue #46: Move and rename writer; add commentsRené 'Necoro' Neumann3-12/+21 2021-02-15Issue #46: Improvements; add testsRené 'Necoro' Neumann2-1/+48 2021-02-15Bump github.com/google/uuid from 1.1.4 to 1.2.0dependabot[bot]2-3/+3 2021-02-15Issue #46: Make the resulting email body not to include single \r or \n. This...René 'Necoro' Neumann2-2/+66 2021-01-20Bump github.com/PuerkitoBio/goquery from 1.6.0 to 1.6.1dependabot[bot]2-3/+3 2021-01-09Bump github.com/google/uuid from 1.1.2 to 1.1.4dependabot[bot]2-3/+3 2021-01-09Bump github.com/emersion/go-message from 0.14.0 to 0.14.1 (#42)dependabot[bot]2-3/+3 2020-11-28Bump github.com/emersion/go-message from 0.13.0 to 0.14.0 (#38)dependabot[bot]2-3/+9 2020-11-28Bump github.com/google/go-cmp from 0.5.2 to 0.5.4 (#37)dependabot[bot]2-3/+3 2020-11-23Fix release.ymlv0.5.2René 'Necoro' Neumann1-3/+10 2020-11-23Prepare v0.5.2René 'Necoro' Neumann3-3/+8 2020-11-20Bump github.com/gabriel-vasile/mimetype from 1.1.1 to 1.1.2dependabot[bot]2-3/+3 2020-11-04Clean dependabot.ymlRené 'Necoro' Neumann1-4/+0