package main import ( "log" "time" ) func WaitUntilNextUpdate() { now := time.Now() dur := now.Truncate(time.Minute).Add(time.Minute).Sub(now) log.Println("sleeping for", dur.Round(time.Second)) time.Sleep(dur) } func main() { defer db.Close() for { rss, err := FetchStackerNewsRssFeed() if err != nil { log.Println(err) WaitUntilNextUpdate() continue } for _, item := range rss.Channel.Items { if ItemExists(item) { log.Printf("item %s already exists. skipping.\n", item.Guid) continue } err := SendItemToTelegram(&item) if err != nil { log.Println(err) continue } SaveItem(item) } WaitUntilNextUpdate() } }