|
@@ -14,17 +14,26 @@ type Weather struct {
|
|
Location string `yaml:"location"`
|
|
Location string `yaml:"location"`
|
|
ShowAreaName bool `yaml:"show-area-name"`
|
|
ShowAreaName bool `yaml:"show-area-name"`
|
|
HideLocation bool `yaml:"hide-location"`
|
|
HideLocation bool `yaml:"hide-location"`
|
|
|
|
+ HourFormat string `yaml:"hour-format"`
|
|
Units string `yaml:"units"`
|
|
Units string `yaml:"units"`
|
|
Place *feed.PlaceJson `yaml:"-"`
|
|
Place *feed.PlaceJson `yaml:"-"`
|
|
Weather *feed.Weather `yaml:"-"`
|
|
Weather *feed.Weather `yaml:"-"`
|
|
TimeLabels [12]string `yaml:"-"`
|
|
TimeLabels [12]string `yaml:"-"`
|
|
}
|
|
}
|
|
|
|
|
|
-var timeLabels = [12]string{"2am", "4am", "6am", "8am", "10am", "12pm", "2pm", "4pm", "6pm", "8pm", "10pm", "12am"}
|
|
|
|
|
|
+var timeLabels12h = [12]string{"2am", "4am", "6am", "8am", "10am", "12pm", "2pm", "4pm", "6pm", "8pm", "10pm", "12am"}
|
|
|
|
+var timeLabels24h = [12]string{"02:00", "04:00", "06:00", "08:00", "10:00", "12:00", "14:00", "16:00", "18:00", "20:00", "22:00", "24:00"}
|
|
|
|
|
|
func (widget *Weather) Initialize() error {
|
|
func (widget *Weather) Initialize() error {
|
|
widget.withTitle("Weather").withCacheOnTheHour()
|
|
widget.withTitle("Weather").withCacheOnTheHour()
|
|
- widget.TimeLabels = timeLabels
|
|
|
|
|
|
+
|
|
|
|
+ if widget.HourFormat == "" || widget.HourFormat == "12h" {
|
|
|
|
+ widget.TimeLabels = timeLabels12h
|
|
|
|
+ } else if widget.HourFormat == "24h" {
|
|
|
|
+ widget.TimeLabels = timeLabels24h
|
|
|
|
+ } else if widget.Units != "12h" && widget.Units != "24h" {
|
|
|
|
+ return fmt.Errorf("invalid hour format '%s' for weather, must be either 12h or 24h", widget.HourFormat)
|
|
|
|
+ }
|
|
|
|
|
|
if widget.Units == "" {
|
|
if widget.Units == "" {
|
|
widget.Units = "metric"
|
|
widget.Units = "metric"
|