package main
import (
"fmt"
"time"
)
func main() {
Setup()
SetupActors()
go func() {
ticker := time.NewTicker(60 * time.Second)
defer ticker.Stop()
for {
select {
case t := <-ticker.C:
fmt.Println("Fetch feeds: ", t.Format(time.RFC3339))
for _, actor := range actors {
fmt.Println(actor.feed)
articles, err := allFeedItems(actor.feed)
if err != nil {
fmt.Println(actor.feed, err.Error())
continue
}
// Prevent map from getting to big
oldSentItems := actor.sentItems
actor.sentItems = make(map[string]bool)
for _, article := range articles {
if oldSentItems[article] == false {
fmt.Println("Send", article)
err = actor.PostArticle(article)
if err == nil {
actor.sentItems[article] = true
} else {
_ = actor.save()
}()
Serve()