From 23d000aac0df683d3f6e4b416c45ebb750d32e76 Mon Sep 17 00:00:00 2001 From: Elis Hirwing Date: Sat, 4 Nov 2017 22:16:08 +0100 Subject: [PATCH] Get weather in a goroutine as well --- src/statusscreen/Weather.go | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/statusscreen/Weather.go b/src/statusscreen/Weather.go index bb4ea52..e5c2451 100644 --- a/src/statusscreen/Weather.go +++ b/src/statusscreen/Weather.go @@ -17,14 +17,8 @@ type Weather struct { // GetOutput returns a rendered result of this module func (weather *Weather) GetOutput() []string { if weather.nextRefresh <= time.Now().Unix() { - myWeather, err := weather.getWeather() - - if err == nil { - weather.lastResponse = myWeather - weather.nextRefresh = time.Now().Unix() + weather.Config.Weather.RefreshDelay - } else { - // log.Fatal(err) - } + weather.nextRefresh += 10 + go weather.getData() } parts := strings.Split(weather.lastResponse, "\n") @@ -36,6 +30,17 @@ func (weather *Weather) GetOutput() []string { return []string{} } +func (weather *Weather) getData() { + myWeather, err := weather.getWeather() + + if err == nil { + weather.lastResponse = myWeather + weather.nextRefresh = time.Now().Unix() + weather.Config.Weather.RefreshDelay + } else { + // log.Fatal(err) + } +} + func (weather *Weather) getWeather() (string, error) { // Set up http client to fetch weather client := &http.Client{