Lazily load old feeds when triggered

master
Bel LaPointe 2018-10-09 09:04:06 -06:00
parent 1c6bea94e2
commit c1cf329d57
1 changed files with 15 additions and 3 deletions

16
main.go
View File

@ -22,14 +22,26 @@ func main() {
} }
defer sclient.Close() defer sclient.Close()
// need to load old from file
allFeeds := make(map[string]*rss.Feed) allFeeds := make(map[string]*rss.Feed)
mon, err := monitor.New(config.MonitorPort, func(url string) { mon, err := monitor.New(config.MonitorPort, func(url string) {
feed, ok := allFeeds[url] feed, ok := allFeeds[url]
if !ok { if !ok {
logger.Log("unknown feed triggered in monitor: %q", url) f, err := rss.New(url, "", "")
if err != nil {
logger.Log("cannot identify unknown feed triggered in monitor: %q: %v", url, err)
return 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() items, err := allFeeds[url].Update()
if err != nil { if err != nil {
logger.Log("can't update old RSS %q: %v", url, err) logger.Log("can't update old RSS %q: %v", url, err)