89 lines
2.5 KiB
Go
89 lines
2.5 KiB
Go
package report
|
|
|
|
import (
|
|
"gitea.maximumdirect.net/eric/weatherreporter/internal/module"
|
|
"gitea.maximumdirect.net/eric/weatherreporter/internal/timeutil"
|
|
)
|
|
|
|
func dailyTodayDefinition() Definition {
|
|
return Definition{
|
|
ID: DailyToday,
|
|
Name: "Daily Report",
|
|
PromptID: "weather.daily_report",
|
|
GenerationMode: GenerationModeScriptoriumMarkdown,
|
|
ComparisonStrategy: CompareSameValidDate,
|
|
ArtifactGroup: "daily",
|
|
BatchOutputName: "daily.md",
|
|
Generated: true,
|
|
CompatiblePriorIDs: []ID{DailyToday, DailyTomorrow},
|
|
Modules: dailyTodayModules(),
|
|
Morning: true,
|
|
resolve: resolveDailyToday,
|
|
}
|
|
}
|
|
|
|
func dailyTomorrowDefinition() Definition {
|
|
return Definition{
|
|
ID: DailyTomorrow,
|
|
Name: "Tomorrow Planning Brief",
|
|
PromptID: "weather.daily_report",
|
|
GenerationMode: GenerationModeScriptoriumMarkdown,
|
|
ComparisonStrategy: CompareSameValidDate,
|
|
ArtifactGroup: "daily",
|
|
BatchOutputName: "tomorrow.md",
|
|
Generated: true,
|
|
CompatiblePriorIDs: []ID{DailyToday, DailyTomorrow},
|
|
Modules: dailyTomorrowModules(),
|
|
Evening: true,
|
|
resolve: resolveDailyTomorrow,
|
|
}
|
|
}
|
|
|
|
func dailyTodayModules() []module.ConfigItem {
|
|
return moduleItems(
|
|
module.Metadata,
|
|
module.CurrentConditions,
|
|
module.NarrativeForecast,
|
|
module.DerivedDailySummary,
|
|
module.DerivedDaypartSummaries,
|
|
module.PrecipTiming,
|
|
module.AlertDigest,
|
|
module.SPCConvectiveOutlooks,
|
|
module.AreaForecastDiscussion,
|
|
module.SPCConvectiveDiscussion,
|
|
module.WeatherStory,
|
|
module.OutdoorWindows,
|
|
module.HourlyForecast,
|
|
)
|
|
}
|
|
|
|
func dailyTomorrowModules() []module.ConfigItem {
|
|
return moduleItems(
|
|
module.Metadata,
|
|
module.CurrentConditions,
|
|
module.NarrativeForecast,
|
|
module.DerivedDailySummary,
|
|
module.DerivedDaypartSummaries,
|
|
module.PrecipTiming,
|
|
module.AlertDigest,
|
|
module.SPCConvectiveOutlooks,
|
|
module.AreaForecastDiscussion,
|
|
module.SPCConvectiveDiscussion,
|
|
module.WeatherStory,
|
|
module.OutdoorWindows,
|
|
module.TomorrowPlanning,
|
|
module.HourlyForecast,
|
|
)
|
|
}
|
|
|
|
func resolveDailyToday(req ResolveRequest) (timeutil.Period, error) {
|
|
if !req.Date.IsZero() {
|
|
return timeutil.CivilDay(req.Date, req.Location), nil
|
|
}
|
|
return timeutil.CivilDay(req.Now, req.Location), nil
|
|
}
|
|
|
|
func resolveDailyTomorrow(req ResolveRequest) (timeutil.Period, error) {
|
|
return timeutil.CivilDay(req.Now.In(req.Location).AddDate(0, 0, 1), req.Location), nil
|
|
}
|