From fb840849c8ac587e3963feb41298314ab4efc90f Mon Sep 17 00:00:00 2001 From: Nick White Date: Fri, 5 Feb 2021 15:23:17 +0000 Subject: Simplify met office parsing, and fix a bug in night values being incorrect --- weather.go | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/weather.go b/weather.go index 284c7ff..dad9f2d 100644 --- a/weather.go +++ b/weather.go @@ -175,6 +175,17 @@ func processBBC(b []byte) []Weather { return weather } +func parseMetWeather(wp WeatherParams) Weather { + var w Weather + + w.temperature = wp.T + w.precipitation = wp.PP + w.weathertype = wp.WT + w.windspeed = wp.WS * mpsToMphMultiplier + + return w +} + func processMet(b []byte) []Weather { var r MetResponse var weather []Weather @@ -185,29 +196,20 @@ func processMet(b []byte) []Weather { } for _, d := range r.BestFcst.Forecast.Location.Days { + w = parseMetWeather(d.DayValues.WeatherParameters) w.date = d.Date w.time = "Day " - w.temperature = d.DayValues.WeatherParameters.T - w.precipitation = d.DayValues.WeatherParameters.PP - w.weathertype = d.DayValues.WeatherParameters.WT - w.windspeed = d.DayValues.WeatherParameters.WS * mpsToMphMultiplier weather = append(weather, w) + w = parseMetWeather(d.NightValues.WeatherParameters) w.date = d.Date w.time = "Night " - w.temperature = d.DayValues.WeatherParameters.T - w.precipitation = d.DayValues.WeatherParameters.PP - w.weathertype = d.DayValues.WeatherParameters.WT - w.windspeed = d.DayValues.WeatherParameters.WS * mpsToMphMultiplier weather = append(weather, w) for _, t := range d.TimeSteps.TimeStep { + w = parseMetWeather(t.WeatherParameters) w.date = d.Date w.time = t.Time - w.temperature = t.WeatherParameters.T - w.precipitation = t.WeatherParameters.PP - w.weathertype = t.WeatherParameters.WT - w.windspeed = t.WeatherParameters.WS * mpsToMphMultiplier weather = append(weather, w) } } -- cgit v1.2.3