Session Stuff
This commit is contained in:
parent
2c48d9b961
commit
6c7742cdf2
12
aoc.go
12
aoc.go
@ -13,6 +13,8 @@ type AoC struct {
|
|||||||
session string
|
session string
|
||||||
boardId string
|
boardId string
|
||||||
boards map[int]*Leaderboard
|
boards map[int]*Leaderboard
|
||||||
|
|
||||||
|
sessionErr bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewAoC(boardId, session string) (*AoC, error) {
|
func NewAoC(boardId, session string) (*AoC, error) {
|
||||||
@ -29,6 +31,12 @@ func NewAoC(boardId, session string) (*AoC, error) {
|
|||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (a *AoC) SetSession(session string) {
|
||||||
|
a.session = session
|
||||||
|
a.sessionErr = false
|
||||||
|
}
|
||||||
|
func (a *AoC) NeedsNewSession() bool { return a.sessionErr }
|
||||||
|
|
||||||
func (a *AoC) SetCachedLeaderboard(l *Leaderboard) error {
|
func (a *AoC) SetCachedLeaderboard(l *Leaderboard) error {
|
||||||
yr, err := strconv.Atoi(l.Event)
|
yr, err := strconv.Atoi(l.Event)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -53,6 +61,9 @@ func (a *AoC) GetLeaderboard(year int) (*Leaderboard, error) {
|
|||||||
if year < 2015 || year > time.Now().Year() {
|
if year < 2015 || year > time.Now().Year() {
|
||||||
return nil, new(InvalidYearError)
|
return nil, new(InvalidYearError)
|
||||||
}
|
}
|
||||||
|
if a.sessionErr {
|
||||||
|
return nil, new(SessionError)
|
||||||
|
}
|
||||||
if board, ok := a.boards[year]; ok {
|
if board, ok := a.boards[year]; ok {
|
||||||
if time.Since(board.LastFetch) < (time.Minute * 15) {
|
if time.Since(board.LastFetch) < (time.Minute * 15) {
|
||||||
return board, nil
|
return board, nil
|
||||||
@ -62,6 +73,7 @@ func (a *AoC) GetLeaderboard(year int) (*Leaderboard, error) {
|
|||||||
a.boards[year], err = a.fetchLeaderboard(year)
|
a.boards[year], err = a.fetchLeaderboard(year)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if err.Error() == "invalid character '<' looking for beginning of value" {
|
if err.Error() == "invalid character '<' looking for beginning of value" {
|
||||||
|
a.sessionErr = true
|
||||||
return nil, new(SessionError)
|
return nil, new(SessionError)
|
||||||
}
|
}
|
||||||
return nil, err
|
return nil, err
|
||||||
|
Loading…
Reference in New Issue
Block a user