package briefing import "gitea.maximumdirect.net/eric/weatherreporter/internal/module" type CurrentConditionsModule struct { ConditionText string `json:"condition_text,omitempty"` IsDay *bool `json:"is_day,omitempty"` TemperatureC *float64 `json:"temperature_c,omitempty"` TemperatureF *float64 `json:"temperature_f,omitempty"` ApparentTemperatureC *float64 `json:"apparent_temperature_c,omitempty"` ApparentTemperatureF *float64 `json:"apparent_temperature_f,omitempty"` DewpointC *float64 `json:"dewpoint_c,omitempty"` DewpointF *float64 `json:"dewpoint_f,omitempty"` RelativeHumidityPercent *float64 `json:"relative_humidity_percent,omitempty"` WindSpeedKmh *float64 `json:"wind_speed_kmh,omitempty"` WindSpeedMph *float64 `json:"wind_speed_mph,omitempty"` WindDirectionDegrees *float64 `json:"wind_direction_degrees,omitempty"` } func buildCurrentConditionsModule(ctx ModuleContext, _ any) (*module.Output, error) { current := ctx.Collected.Current if current == nil { return nil, nil } value := CurrentConditionsModule{ ConditionText: current.ConditionText, IsDay: copyBool(current.IsDay), TemperatureC: copyFloat(current.TemperatureC), TemperatureF: copyFloat(current.TemperatureF), ApparentTemperatureC: copyFloat(current.ApparentTemperatureC), ApparentTemperatureF: copyFloat(current.ApparentTemperatureF), DewpointC: copyFloat(current.DewpointC), DewpointF: copyFloat(current.DewpointF), RelativeHumidityPercent: copyFloat(current.RelativeHumidityPercent), WindSpeedKmh: copyFloat(current.WindSpeedKmh), WindSpeedMph: copyFloat(current.WindSpeedMph), WindDirectionDegrees: copyFloat(current.WindDirectionDegrees), } if value.isEmpty() { return nil, nil } return &module.Output{ID: module.CurrentConditions, StanzaName: "current_conditions", Value: value}, nil } func (v CurrentConditionsModule) isEmpty() bool { return v.ConditionText == "" && v.IsDay == nil && v.TemperatureC == nil && v.TemperatureF == nil && v.ApparentTemperatureC == nil && v.ApparentTemperatureF == nil && v.DewpointC == nil && v.DewpointF == nil && v.RelativeHumidityPercent == nil && v.WindSpeedKmh == nil && v.WindSpeedMph == nil && v.WindDirectionDegrees == nil }