Now the timestamps are all strings
This commit is contained in:
parent
495a1b6371
commit
cf5d10aaf8
16
aoc.go
16
aoc.go
@ -6,6 +6,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
"strconv"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -69,6 +70,7 @@ func (a *AoC) fetchLeaderboard(year int) (*Leaderboard, error) {
|
|||||||
|
|
||||||
client := &http.Client{}
|
client := &http.Client{}
|
||||||
boardString := fmt.Sprintf("https://adventofcode.com/%d/leaderboard/private/view/%s.json", year, a.boardId)
|
boardString := fmt.Sprintf("https://adventofcode.com/%d/leaderboard/private/view/%s.json", year, a.boardId)
|
||||||
|
fmt.Println(boardString)
|
||||||
|
|
||||||
req, err = http.NewRequest("GET", boardString, nil)
|
req, err = http.NewRequest("GET", boardString, nil)
|
||||||
req.Header.Add("Cookie", "session="+a.session)
|
req.Header.Add("Cookie", "session="+a.session)
|
||||||
@ -85,14 +87,16 @@ func (a *AoC) fetchLeaderboard(year int) (*Leaderboard, error) {
|
|||||||
//strBody = strings.ReplaceAll(strBody, "\"last_star_ts\":0", "\"last_star_ts\":\"0\"")
|
//strBody = strings.ReplaceAll(strBody, "\"last_star_ts\":0", "\"last_star_ts\":\"0\"")
|
||||||
err = json.Unmarshal([]byte(strBody), &leaderboard)
|
err = json.Unmarshal([]byte(strBody), &leaderboard)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
fmt.Println("Error parsing board")
|
||||||
|
fmt.Println(err)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
for k, mbr := range leaderboard.Members {
|
for k, mbr := range leaderboard.Members {
|
||||||
//starTs, err := strconv.ParseInt(mbr.RawStarTs, 10, 64)
|
starTs, err := strconv.ParseInt(mbr.RawStarTs, 10, 64)
|
||||||
//if err != nil {
|
if err != nil {
|
||||||
// continue
|
continue
|
||||||
//}
|
}
|
||||||
mbr.LastStarTs = time.Unix(mbr.RawStarTs, 0)
|
mbr.LastStarTs = time.Unix(starTs, 0)
|
||||||
leaderboard.Members[k] = mbr
|
leaderboard.Members[k] = mbr
|
||||||
}
|
}
|
||||||
leaderboard.LastFetch = time.Now()
|
leaderboard.LastFetch = time.Now()
|
||||||
@ -111,7 +115,7 @@ type Member struct {
|
|||||||
ID string `json:"id"`
|
ID string `json:"id"`
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Stars int `json:"stars"`
|
Stars int `json:"stars"`
|
||||||
RawStarTs int64 `json:"last_star_ts"`
|
RawStarTs string `json:"last_star_ts"`
|
||||||
LocalScore int `json:"local_score"`
|
LocalScore int `json:"local_score"`
|
||||||
GlobalScore int `json:"global_score"`
|
GlobalScore int `json:"global_score"`
|
||||||
LastStarTs time.Time
|
LastStarTs time.Time
|
||||||
|
27
cmd/main.go
Normal file
27
cmd/main.go
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
aoc "git.bullercodeworks.com/brian/go-adventofcode"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
if len(os.Args) < 3 {
|
||||||
|
fmt.Println("Usage: cmd <board id> <session id>")
|
||||||
|
}
|
||||||
|
a, err := aoc.NewAoC(os.Args[1], os.Args[2])
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
l, err := a.GetLeaderboard(2020)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
for _, v := range l.Members {
|
||||||
|
fmt.Println(v.Name, v.LocalScore, v.LastStarTs.Format(time.RFC3339))
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user