Use reference for lastUpdatedTime

This commit is contained in:
Daniel Mason 2022-01-03 18:30:45 +13:00
parent e1bb1a1ebe
commit 1b9339c371
2 changed files with 10 additions and 9 deletions

View file

@ -56,7 +56,7 @@ func fetchAPILocations() (ApiResponse, error) {
}
// Set user-agent info
req.Header.Set("User-Agent", "NZCovidBot/1.0 (https://m2.nz)")
req.Header.Set("User-Agent", "NZCovidBot/1.1 (https://m2.nz)")
// Fire off the request
resp, err := client.Do(req)
@ -82,6 +82,7 @@ func getNewAPILocations() {
// Set lastUpdate time at the start of the request so we don't miss any locations
// posted right after we poll
newPollTime := time.Now()
previousPollTime := *lastUpdated
// Pull latest data
locations, err := fetchAPILocations()
@ -95,7 +96,7 @@ func getNewAPILocations() {
// Iterate over the data and only find new locations
for _, item := range locations.Items {
if item.PublishedAt.Unix() > lastUpdated.Unix() {
if item.PublishedAt.Unix() > previousPollTime.Unix() {
// Clone the item to put in our own lil slice
copy := item
newItems[item.Location.City] = append(newItems[item.Location.City], copy)
@ -121,11 +122,11 @@ func getNewAPILocations() {
postTheUpdates()
}
updateLastUpdated(newPollTime)
updateLastUpdated(&newPollTime)
}
// updateLastUpdated - Creates/Updates lastUpdated.txt
func updateLastUpdated(newUpdated time.Time) {
func updateLastUpdated(newUpdated *time.Time) {
// Make sure to update the global var for next poll
lastUpdated = newUpdated

View file

@ -10,7 +10,7 @@ import (
)
// Time of last succesful poll
var lastUpdated time.Time
var lastUpdated *time.Time
// Main func
func Lesgoooo() {
@ -40,7 +40,7 @@ func Lesgoooo() {
}
// getLastPollTime - If run previously, get last TS, otherwise Now()
func getLastPollTime() time.Time {
func getLastPollTime() *time.Time {
// Set default of *now* if never run so we don't spam everything
lastPoll := time.Now()
@ -50,19 +50,19 @@ func getLastPollTime() time.Time {
b, err := ioutil.ReadAll(file)
if err != nil {
log.Printf("Unable to read lastUpdated.txt: %s", err)
return lastPoll
return &lastPoll
}
i, err := strconv.ParseInt(string(b), 10, 64)
if err != nil {
log.Printf("Unable to read lastUpdated.txt: %s", err)
return lastPoll
return &lastPoll
}
lastPoll = time.Unix(i, 0)
}
return lastPoll
return &lastPoll
}
func postTheUpdates() {