53 lines
1.3 KiB
Go
53 lines
1.3 KiB
Go
package report
|
|
|
|
import (
|
|
"time"
|
|
|
|
"gitea.maximumdirect.net/eric/weatherreporter/internal/module"
|
|
"gitea.maximumdirect.net/eric/weatherreporter/internal/timeutil"
|
|
)
|
|
|
|
const nearTermHours = 6
|
|
|
|
func nearTermDefinition() Definition {
|
|
return Definition{
|
|
ID: NearTerm,
|
|
Name: "Near-Term Report",
|
|
PromptID: "weather.near_term_report",
|
|
ComparisonStrategy: CompareRollingWindow,
|
|
ArtifactGroup: "near-term",
|
|
BatchOutputName: "near-term.md",
|
|
Generated: true,
|
|
CompatiblePriorIDs: []ID{NearTerm},
|
|
Modules: nearTermModules(),
|
|
resolve: resolveNearTerm,
|
|
}
|
|
}
|
|
|
|
func nearTermModules() []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 resolveNearTerm(req ResolveRequest) (timeutil.Period, error) {
|
|
localNow := req.Now.In(req.Location)
|
|
return timeutil.Period{
|
|
Start: localNow,
|
|
End: localNow.Add(nearTermHours * time.Hour),
|
|
}, nil
|
|
}
|