From 79a16939425e31fb8c84ef1a88c4f64c5b3ea238 Mon Sep 17 00:00:00 2001 From: Elis Hirwing Date: Sat, 4 Nov 2017 10:50:53 +0100 Subject: [PATCH] Check if it's time for refresh before refreshing --- src/statusscreen/Config.go | 2 +- src/statusscreen/SL.go | 22 +++++++++++++--------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/statusscreen/Config.go b/src/statusscreen/Config.go index 10b921b..d591d80 100644 --- a/src/statusscreen/Config.go +++ b/src/statusscreen/Config.go @@ -4,7 +4,7 @@ package statusscreen type Config struct { SL struct { APIKey string - RefreshDelay int + RefreshDelay int64 SiteID int APIURL string } diff --git a/src/statusscreen/SL.go b/src/statusscreen/SL.go index 40a080c..9e56cf2 100644 --- a/src/statusscreen/SL.go +++ b/src/statusscreen/SL.go @@ -54,16 +54,20 @@ func (sl *SL) GetOutput() string { "Expcted", }) - sldata, err := sl.getTimeTable() - - // If no error occured, save the latest data to the struct - if err == nil { - sl.lastResponse = sldata - sl.lastRefresh = time.Now().Unix() - } + // Check if it's time to refresh yet + if (sl.lastRefresh + sl.Config.SL.RefreshDelay) <= time.Now().Unix() { + // If it is, refresh + sldata, err := sl.getTimeTable() + + // If no error occured, save the latest data to the struct + if err == nil { + sl.lastResponse = sldata + sl.lastRefresh = time.Now().Unix() + } - if err != nil { - log.Fatal(err) + if err != nil { + log.Fatal(err) + } } for _, v := range sl.lastResponse.ResponseData.Metros {