package spacepanel_aggregator import ( "encoding/json" "fmt" "io/ioutil" "net/http" "time" ) func Poll(url string) { for true { resp, err := http.Get(url) if err != nil { ErrorinPoll(url) fmt.Println(err.Error()) } else { data, err := ioutil.ReadAll(resp.Body) if err != nil { ErrorinPoll(url) _ = resp.Body.Close() } else { _ = resp.Body.Close() var parsed V13 err = json.Unmarshal(data, &parsed) if err != nil { ErrorinPoll(url) } else { if parsed.State.Open != nil { open := parsed.State.Open.(bool) if open { SetSpaceState(url, Open) } else { SetSpaceState(url, Close) } } else { SetSpaceState(url, Unknown) } } } } time.Sleep(sleeptime) } } func ErrorinPoll(url string) { if spacestates[url] != Unknown { SetSpaceState(url, Outdated) } } func SetSpaceState(url string, s State) { lock.Lock() spacestates[url] = s lock.Unlock() }