Website/save.go

51 lines
1,021 B
Go
Raw Permalink Normal View History

2024-08-16 12:46:31 +00:00
package main
import (
"encoding/json"
"log"
"os"
"time"
2024-08-16 12:46:31 +00:00
)
func loadNotifiedEntries() {
file, err := os.Open(notifiedFilePath)
2024-08-16 12:46:31 +00:00
if err != nil {
if os.IsNotExist(err) {
return
2024-08-16 12:46:31 +00:00
}
log.Fatalf("Error loading notified entries: %v", err)
2024-08-16 12:46:31 +00:00
}
defer file.Close()
2024-08-16 12:46:31 +00:00
err = json.NewDecoder(file).Decode(&notifiedEntries)
2024-08-16 12:46:31 +00:00
if err != nil {
log.Fatalf("Error decoding notified entries: %v", err)
2024-08-16 12:46:31 +00:00
}
}
func saveNotifiedEntry(entryNumber int) {
notifiedEntries[entryNumber] = true
file, err := os.Create(notifiedFilePath)
2024-08-16 12:46:31 +00:00
if err != nil {
log.Fatalf("Error saving notified entries: %v", err)
2024-08-16 12:46:31 +00:00
}
defer file.Close()
2024-08-16 12:46:31 +00:00
err = json.NewEncoder(file).Encode(notifiedEntries)
2024-08-16 12:46:31 +00:00
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)
}
}
2024-08-16 12:46:31 +00:00
}
}