Fix last_star_ts bug with inconsistent JSON
This commit is contained in:
parent
cf3a52201c
commit
a0127890a9
19
aocbot.go
19
aocbot.go
@ -112,9 +112,7 @@ func aocBotMain(slack *Slack) {
|
||||
writeToLog(" " + time.Now().Format(time.RFC3339) + " - Received Message\n")
|
||||
processMessage(slack, &m)
|
||||
}
|
||||
|
||||
}
|
||||
writeToLog("== " + time.Now().Format(time.RFC3339) + " - Bot Stopped ==\n\n")
|
||||
}
|
||||
|
||||
func processMessage(slack *Slack, m *Message) {
|
||||
@ -134,6 +132,7 @@ func processMessage(slack *Slack, m *Message) {
|
||||
if u, ue := slack.getUserInfo(m.User); ue == nil {
|
||||
saveUser(u)
|
||||
}
|
||||
usr, err = getUser(m.User)
|
||||
}
|
||||
|
||||
if m.Channel != "" {
|
||||
@ -147,6 +146,7 @@ func processMessage(slack *Slack, m *Message) {
|
||||
if c, ce := slack.getChannelInfo(m.Channel); ce == nil {
|
||||
// Save channel info
|
||||
saveChannelInfo(c)
|
||||
chnl, err = getChannelInfo(m.Channel)
|
||||
} else {
|
||||
isDirectMessage = true
|
||||
}
|
||||
@ -209,7 +209,7 @@ func processMessage(slack *Slack, m *Message) {
|
||||
}
|
||||
} else {
|
||||
fmt.Println("--- Channel Message Received")
|
||||
fmt.Println(m.Channel, m.User, m.Text)
|
||||
fmt.Println(chnl.Name, usr.Name, m.Text)
|
||||
if m.Channel == slackChannel {
|
||||
// In the AoC channel
|
||||
if strings.HasPrefix(m.Text, "!aoc") {
|
||||
@ -258,7 +258,7 @@ func getAoCLeaderboard(boardId string) (*Leaderboard, error) {
|
||||
content, err = ioutil.ReadFile("./cookies")
|
||||
if err != nil {
|
||||
fmt.Println("Error reading Cookies")
|
||||
return leaderboard, err
|
||||
return nil, err
|
||||
}
|
||||
line := strings.TrimSpace(string(content))
|
||||
req.Header.Add("Cookie", line)
|
||||
@ -266,18 +266,21 @@ func getAoCLeaderboard(boardId string) (*Leaderboard, error) {
|
||||
resp, err = client.Do(req)
|
||||
if err != nil {
|
||||
fmt.Println("Error getting leaderboard")
|
||||
return leaderboard, err
|
||||
return nil, err
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
body, err = ioutil.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
fmt.Println("Error reading response body.")
|
||||
return leaderboard, err
|
||||
return nil, err
|
||||
}
|
||||
err = json.Unmarshal(body, &leaderboard)
|
||||
strBody := string(body)
|
||||
strBody = strings.ReplaceAll(strBody, "\"last_star_ts\":0", "\"last_star_ts\":\"0\"")
|
||||
err = json.Unmarshal([]byte(strBody), &leaderboard)
|
||||
if err != nil {
|
||||
fmt.Println("Error on json unmarshal")
|
||||
return leaderboard, err
|
||||
fmt.Println(err.Error())
|
||||
return nil, err
|
||||
}
|
||||
for k, mbr := range leaderboard.Members {
|
||||
mbr.LastStarTs, err = time.Parse("2006-01-02T15:04:05-0700", mbr.RawStarTs)
|
||||
|
Reference in New Issue
Block a user