vega/weatherbot/today.go

38 lines
1.0 KiB
Go

package weatherbot
import (
"fmt"
"log"
"strings"
"text/template"
)
const todayTemplate = `Today's Weather:
Conditions: {{range .Weather}} {{.Description}} {{end}}
Morning Temp: {{.Temp.Morn}} F, Feels like {{.FeelsLike.Morn}} F
Daytime Temp: {{.Temp.Day}} F, Feels like {{.FeelsLike.Day}} F
Evening Temp: {{.Temp.Eve}} F, Feels like {{.FeelsLike.Eve}} F
LateNight Temp: {{.Temp.Night}} F, Feels like {{.FeelsLike.Night}} F
`
func TodayToReport(today Daily) string {
var report strings.Builder
tmpl, err := template.New("today").Parse(todayTemplate)
if err != nil {
log.Fatal(err)
}
if today.Rain > 0 {
fmt.Fprintf(&report, "Might rain today (Rain == %v)\n", today.Rain)
}
if today.WindSpeed > 12.00 {
fmt.Fprintf(&report, "Seems pretty windy today (WindSpeed == %v)\n", today.WindSpeed)
}
if today.Humidity > 80.0 {
fmt.Fprintf(&report, "High humidity today! (Humidity == %v)\n", today.Humidity)
}
if err := tmpl.Execute(&report, today); err != nil {
log.Fatal(err)
}
return report.String()
}