aboutsummaryrefslogtreecommitdiffstats
path: root/walrss/internal/rss/watcher.go
diff options
context:
space:
mode:
Diffstat (limited to 'walrss/internal/rss/watcher.go')
-rw-r--r--walrss/internal/rss/watcher.go26
1 files changed, 26 insertions, 0 deletions
diff --git a/walrss/internal/rss/watcher.go b/walrss/internal/rss/watcher.go
new file mode 100644
index 0000000..e7036c1
--- /dev/null
+++ b/walrss/internal/rss/watcher.go
@@ -0,0 +1,26 @@
+package rss
+
+import (
+ "github.com/codemicro/walrss/walrss/internal/db"
+ "github.com/codemicro/walrss/walrss/internal/state"
+ "github.com/rs/zerolog/log"
+ "time"
+)
+
+func StartWatcher(st *state.State) {
+ go func() {
+ currentTime := time.Now().UTC()
+ time.Sleep(time.Minute * time.Duration(60-currentTime.Minute()))
+
+ if err := ProcessFeeds(st, db.SendDayFromWeekday(currentTime.Weekday()), currentTime.Hour()+1); err != nil {
+ log.Error().Err(err).Str("location", "feed watcher").Send()
+ }
+
+ ticker := time.NewTicker(time.Hour)
+ for currentTime := range ticker.C {
+ if err := ProcessFeeds(st, db.SendDayFromWeekday(currentTime.Weekday()), currentTime.Hour()); err != nil {
+ log.Error().Err(err).Str("location", "feed watcher").Send()
+ }
+ }
+ }()
+}