59 lines
1.5 KiB
Go
59 lines
1.5 KiB
Go
package report
|
|
|
|
import (
|
|
"time"
|
|
|
|
"gitea.maximumdirect.net/eric/weatherreporter/internal/module"
|
|
"gitea.maximumdirect.net/eric/weatherreporter/internal/timeutil"
|
|
)
|
|
|
|
const hourlyReportHours = 6
|
|
|
|
func hourlyDefinition() Definition {
|
|
return Definition{
|
|
ID: Hourly,
|
|
Name: "Hourly Report",
|
|
PromptID: "weather.hourly_generated_text",
|
|
GenerationMode: GenerationModeGeneratedTextTemplate,
|
|
TemplateID: "hourly",
|
|
GeneratedTextSchemaID: "hourly",
|
|
ComparisonStrategy: CompareRollingWindow,
|
|
ArtifactGroup: "hourly",
|
|
BatchOutputName: "hourly.md",
|
|
DistributorPathTemplates: []string{
|
|
"hourly/index.md",
|
|
},
|
|
Generated: true,
|
|
CompatiblePriorIDs: []ID{Hourly},
|
|
Modules: hourlyModules(),
|
|
resolve: resolveHourly,
|
|
}
|
|
}
|
|
|
|
func hourlyModules() []module.ConfigItem {
|
|
return []module.ConfigItem{
|
|
{ID: module.Metadata},
|
|
{ID: module.CurrentConditions},
|
|
{ID: module.HourlyForecast},
|
|
{ID: module.PrecipTiming},
|
|
{ID: module.AlertDigest},
|
|
{ID: module.SPCConvectiveOutlooks},
|
|
{
|
|
ID: module.AreaForecastDiscussion,
|
|
Options: module.AreaForecastDiscussionOptions{
|
|
Sections: []string{"key_messages", "short_term"},
|
|
},
|
|
},
|
|
{ID: module.SPCConvectiveDiscussion},
|
|
{ID: module.WeatherStory},
|
|
}
|
|
}
|
|
|
|
func resolveHourly(req ResolveRequest) (timeutil.Period, error) {
|
|
localNow := req.Now.In(req.Location)
|
|
return timeutil.Period{
|
|
Start: localNow,
|
|
End: localNow.Add(hourlyReportHours * time.Hour),
|
|
}, nil
|
|
}
|