Website/save.go

50 lines
1,021 B
Go

package main
import (
"encoding/json"
"log"
"os"
"time"
)
func loadNotifiedEntries() {
file, err := os.Open(notifiedFilePath)
if err != nil {
if os.IsNotExist(err) {
return
}
log.Fatalf("Error loading notified entries: %v", err)
}
defer file.Close()
err = json.NewDecoder(file).Decode(&notifiedEntries)
if err != nil {
log.Fatalf("Error decoding notified entries: %v", err)
}
}
func saveNotifiedEntry(entryNumber int) {
notifiedEntries[entryNumber] = true
file, err := os.Create(notifiedFilePath)
if err != nil {
log.Fatalf("Error saving notified entries: %v", err)
}
defer file.Close()
err = json.NewEncoder(file).Encode(notifiedEntries)
if err != nil {
log.Fatalf("Error encoding notified entries: %v", err)
}
}
func checkAndSendNotifications() {
for _, blog := range blogs {
for _, entry := range blog.Entries {
if !entry.Notified && !time.Now().Before(entry.Date) {
sendNotifications(entry)
entry.Notified = true
saveNotifiedEntry(entry.Number)
}
}
}
}