|
|
|
@ -140,6 +140,12 @@ func (s *AoCState) runLoop() { |
|
|
|
|
if s.GetLatestYear() != s.lastYear { |
|
|
|
|
// Latest year changed. Grab that board first.
|
|
|
|
|
s.lastYear = s.GetLatestYear() |
|
|
|
|
admin, adminErr := s.model.GetSlackAdminDMId() |
|
|
|
|
if adminErr != nil { |
|
|
|
|
s.SendAdminIdError() |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
s.SendSlackMessage(fmt.Sprintf(":christmas_tree: AoC Set latest leaderboard to %d", s.lastYear), admin) |
|
|
|
|
s.AoCBoardCheckAndUpdate(s.lastYear) |
|
|
|
|
time.Sleep(time.Minute) |
|
|
|
|
} |
|
|
|
@ -522,7 +528,7 @@ func (s *AoCState) getChannelId() (string, error) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func (s *AoCState) saveLeaderboard(l *aoc.Leaderboard) error { |
|
|
|
|
err := s.model.SetString([]string{"aoc", "leaderboards", l.Event, "owner_id"}, l.OwnerID) |
|
|
|
|
err := s.model.SetInt([]string{"aoc", "leaderboards", l.Event, "owner_id"}, l.OwnerID) |
|
|
|
|
if err != nil { |
|
|
|
|
return err |
|
|
|
|
} |
|
|
|
@ -539,27 +545,28 @@ func (s *AoCState) saveLeaderboard(l *aoc.Leaderboard) error { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func (s *AoCState) saveMember(event string, m *aoc.Member) error { |
|
|
|
|
err := s.model.SetString([]string{"aoc", "leaderboards", event, "members", m.ID, "id"}, m.ID) |
|
|
|
|
strId := strconv.Itoa(m.ID) |
|
|
|
|
err := s.model.SetString([]string{"aoc", "leaderboards", event, "members", strId, "id"}, strId) |
|
|
|
|
if err != nil { |
|
|
|
|
return err |
|
|
|
|
} |
|
|
|
|
err = s.model.SetString([]string{"aoc", "leaderboards", event, "members", m.ID, "stars"}, strconv.Itoa(m.Stars)) |
|
|
|
|
err = s.model.SetString([]string{"aoc", "leaderboards", event, "members", strId, "stars"}, strconv.Itoa(m.Stars)) |
|
|
|
|
if err != nil { |
|
|
|
|
return err |
|
|
|
|
} |
|
|
|
|
err = s.model.SetString([]string{"aoc", "leaderboards", event, "members", m.ID, "last_star_ts"}, m.LastStarTs.Format(time.RFC3339)) |
|
|
|
|
err = s.model.SetString([]string{"aoc", "leaderboards", event, "members", strId, "last_star_ts"}, m.LastStarTs.Format(time.RFC3339)) |
|
|
|
|
if err != nil { |
|
|
|
|
return err |
|
|
|
|
} |
|
|
|
|
err = s.model.SetString([]string{"aoc", "leaderboards", event, "members", m.ID, "name"}, m.Name) |
|
|
|
|
err = s.model.SetString([]string{"aoc", "leaderboards", event, "members", strId, "name"}, m.Name) |
|
|
|
|
if err != nil { |
|
|
|
|
return err |
|
|
|
|
} |
|
|
|
|
err = s.model.SetString([]string{"aoc", "leaderboards", event, "members", m.ID, "local_score"}, strconv.Itoa(m.LocalScore)) |
|
|
|
|
err = s.model.SetString([]string{"aoc", "leaderboards", event, "members", strId, "local_score"}, strconv.Itoa(m.LocalScore)) |
|
|
|
|
if err != nil { |
|
|
|
|
return err |
|
|
|
|
} |
|
|
|
|
err = s.model.SetString([]string{"aoc", "leaderboards", event, "members", m.ID, "global_score"}, strconv.Itoa(m.GlobalScore)) |
|
|
|
|
err = s.model.SetString([]string{"aoc", "leaderboards", event, "members", strId, "global_score"}, strconv.Itoa(m.GlobalScore)) |
|
|
|
|
if err != nil { |
|
|
|
|
return err |
|
|
|
|
} |
|
|
|
@ -567,7 +574,7 @@ func (s *AoCState) saveMember(event string, m *aoc.Member) error { |
|
|
|
|
return nil |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func (s *AoCState) getMemberAllYears(memberId string) map[string]*aoc.Member { |
|
|
|
|
func (s *AoCState) getMemberAllYears(memberId int) map[string]*aoc.Member { |
|
|
|
|
ret := make(map[string]*aoc.Member) |
|
|
|
|
for _, yr := range s.GetListOfAoCYears() { |
|
|
|
|
stYr := strconv.Itoa(yr) |
|
|
|
@ -579,12 +586,12 @@ func (s *AoCState) getMemberAllYears(memberId string) map[string]*aoc.Member { |
|
|
|
|
return ret |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func (s *AoCState) getMember(event string, memberId string) (*aoc.Member, error) { |
|
|
|
|
func (s *AoCState) getMember(event string, memberId int) (*aoc.Member, error) { |
|
|
|
|
var err error |
|
|
|
|
var wrk string |
|
|
|
|
mbr := new(aoc.Member) |
|
|
|
|
mbrPath := []string{"aoc", "leaderboards", event, "members", memberId} |
|
|
|
|
mbr.ID, err = s.model.GetString(append(mbrPath, "id")) |
|
|
|
|
mbrPath := []string{"aoc", "leaderboards", event, "members", strconv.Itoa(memberId)} |
|
|
|
|
mbr.ID, err = s.model.GetInt(append(mbrPath, "id")) |
|
|
|
|
if err != nil { |
|
|
|
|
return nil, err |
|
|
|
|
} |
|
|
|
|