From c1cf329d5717e01c311113c47fcefb7025d58c68 Mon Sep 17 00:00:00 2001 From: Bel LaPointe Date: Tue, 9 Oct 2018 09:04:06 -0600 Subject: [PATCH] Lazily load old feeds when triggered --- main.go | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/main.go b/main.go index b5ed6c7..5c0374f 100644 --- a/main.go +++ b/main.go @@ -22,13 +22,25 @@ func main() { } defer sclient.Close() - // need to load old from file allFeeds := make(map[string]*rss.Feed) mon, err := monitor.New(config.MonitorPort, func(url string) { feed, ok := allFeeds[url] if !ok { - logger.Log("unknown feed triggered in monitor: %q", url) - return + f, err := rss.New(url, "", "") + if err != nil { + logger.Log("cannot identify unknown feed triggered in monitor: %q: %v", url, err) + return + } + b, err := sclient.Get(nsForFeeds, f.ID()) + if err != nil { + logger.Log("cannot get unknown feed triggered in monitor: %q: %v", url, err) + return + } + feed, err = rss.Deserialize(b) + if err != nil { + logger.Log("cannot deserialize feed triggered in monitor: %q: %v", url, err) + return + } } items, err := allFeeds[url].Update() if err != nil {