From d21881150c09986571a563eaf30bc1687787e63f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20=27Necoro=27=20Neumann?= Date: Sat, 25 Apr 2020 11:27:34 +0200 Subject: Improved caching --- main.go | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) (limited to 'main.go') diff --git a/main.go b/main.go index c4afc11..1850710 100644 --- a/main.go +++ b/main.go @@ -7,7 +7,6 @@ import ( "os" "sync" - "github.com/Necoro/feed2imap-go/internal/cache" "github.com/Necoro/feed2imap-go/internal/config" "github.com/Necoro/feed2imap-go/internal/feed" "github.com/Necoro/feed2imap-go/internal/imap" @@ -52,7 +51,6 @@ func run() error { log.Print("Starting up...") - log.Printf("Reading configuration file '%s'", *cfgFile) cfg, feeds, err := yaml.Load(*cfgFile) if err != nil { return err @@ -62,15 +60,15 @@ func run() error { return fmt.Errorf("Configuration invalid: %w", err) } - if success := feed.Parse(feeds); success == 0 { - return fmt.Errorf("No successfull feed fetch.") - } - - feedCache, err := cache.Read(*cacheFile) + err = feeds.LoadCache(*cacheFile) if err != nil { return err } + if success := feeds.Parse(); success == 0 { + return fmt.Errorf("No successfull feed fetch.") + } + imapUrl, err := url.Parse(cfg.Target) if err != nil { return fmt.Errorf("parsing 'target': %w", err) @@ -83,14 +81,11 @@ func run() error { defer c.Disconnect() - var wg sync.WaitGroup - wg.Add(len(feeds)) - for _, f := range feeds { - go processFeed(f, cfg, c, &wg) - } - wg.Wait() + feeds.ForeachGo(func(f *feed.Feed, wg *sync.WaitGroup) { + processFeed(f, cfg, c, wg) + }) - if err = cache.Store(*cacheFile, feedCache); err != nil { + if err = feeds.StoreCache(*cacheFile); err != nil { return err } -- cgit v1.2.3