Lazily load old feeds when triggered
This commit is contained in:
16
main.go
16
main.go
@@ -22,14 +22,26 @@ 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)
|
||||
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 {
|
||||
logger.Log("can't update old RSS %q: %v", url, err)
|
||||
|
||||
Reference in New Issue
Block a user