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 // 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 // Fire off the request
resp, err := client.Do(req) 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 // Set lastUpdate time at the start of the request so we don't miss any locations
// posted right after we poll // posted right after we poll
newPollTime := time.Now() newPollTime := time.Now()
previousPollTime := *lastUpdated
// Pull latest data // Pull latest data
locations, err := fetchAPILocations() locations, err := fetchAPILocations()
@ -95,7 +96,7 @@ func getNewAPILocations() {
// Iterate over the data and only find new locations // Iterate over the data and only find new locations
for _, item := range locations.Items { 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 // Clone the item to put in our own lil slice
copy := item copy := item
newItems[item.Location.City] = append(newItems[item.Location.City], copy) newItems[item.Location.City] = append(newItems[item.Location.City], copy)
@ -121,11 +122,11 @@ func getNewAPILocations() {
postTheUpdates() postTheUpdates()
} }
updateLastUpdated(newPollTime) updateLastUpdated(&newPollTime)
} }
// updateLastUpdated - Creates/Updates lastUpdated.txt // 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 // Make sure to update the global var for next poll
lastUpdated = newUpdated lastUpdated = newUpdated

View file

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