Files
2026-07-14 11:14:46 -07:00

54 lines
1.2 KiB
Go

package main
import (
"log"
"log/slog"
"os"
"time"
)
var logger *slog.Logger
func init() {
logger = slog.New(slog.NewJSONHandler(os.Stdout, nil))
slog.SetDefault(logger)
}
func isToday(t time.Time) bool {
now := time.Now()
return t.Year() == now.Year() && t.Month() == now.Month() && t.Day() == now.Day()
}
func main() {
sunsetJSONPath := os.Getenv("SUNSET_JSON_PATH")
sunset, err := loadData(sunsetJSONPath)
if err != nil {
log.Fatalln(err)
return
}
if !isToday(sunset.LastUpdated) {
slog.Info("Sunset Data out of date. Refreshing.", "last_update", sunset.LastUpdated)
lat := os.Getenv("LAT")
lng := os.Getenv("LNG")
apiResponse, err := getSunsetData(lat, lng)
if err != nil {
slog.Error("Unable to get Sunset data from API", "err", err)
return
}
sunset = &Data{
SunsetTime: apiResponse.SunsetTime,
TenMinuteWarning: apiResponse.SunsetTime.Add(-10 * time.Minute),
LastUpdated: time.Now(),
MorningNotifySent: false,
TenMinuteWarningSent: false,
}
sunset.Save(sunsetJSONPath)
slog.Info("Sunset Data Saved", "path", sunsetJSONPath)
}
sunset.HandleSunsetNotifications(sunsetJSONPath)
}