aboutsummaryrefslogtreecommitdiff
path: root/rankings/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'rankings/main.go')
-rw-r--r--rankings/main.go37
1 files changed, 33 insertions, 4 deletions
diff --git a/rankings/main.go b/rankings/main.go
index dfafb0c..552f058 100644
--- a/rankings/main.go
+++ b/rankings/main.go
@@ -10,11 +10,33 @@ import (
10 "github.com/robfig/cron/v3" 10 "github.com/robfig/cron/v3"
11) 11)
12 12
13var useCache = false
14
13func main() { 15func main() {
14 err := godotenv.Load() 16 err := godotenv.Load()
15 if err != nil { 17 if err != nil {
16 log.Fatalln("Error loading .env file:", err.Error()) 18 log.Fatalln("Error loading .env file:", err.Error())
17 } 19 }
20
21 runNow := false
22 for _, arg := range os.Args {
23 if arg == "-n" || arg == "--now" {
24 runNow = true
25 continue
26 }
27 if arg == "-c" || arg == "--cache" {
28 useCache = true
29 continue
30 }
31 }
32
33 useCache = useCache && runNow
34
35 if runNow {
36 run()
37 return
38 }
39
18 c := cron.New() 40 c := cron.New()
19 _, err = c.AddFunc("0 0 * * *", run) 41 _, err = c.AddFunc("0 0 * * *", run)
20 if err != nil { 42 if err != nil {
@@ -29,17 +51,24 @@ func main() {
29 51
30func run() { 52func run() {
31 log.Println("started job") 53 log.Println("started job")
54
32 records := readRecords() 55 records := readRecords()
56 log.Println("loaded", len(records), "records")
57
33 overrides := readOverrides() 58 overrides := readOverrides()
34 players := fetchLeaderboard(records, overrides) 59 log.Println("loaded", len(overrides), "player overrides")
60
61 players := fetchLeaderboard(records, overrides, useCache)
35 62
36 spRankings := []*Player{} 63 spRankings := []*Player{}
37 mpRankings := []*Player{} 64 mpRankings := []*Player{}
38 overallRankings := []*Player{} 65 overallRankings := []*Player{}
39 66
40 log.Println("filtering rankings") 67 log.Println("filtering rankings for", len(players), "players")
41 filterRankings(&spRankings, &mpRankings, &overallRankings, players) 68 filterRankings(&spRankings, &mpRankings, &overallRankings, players)
42 69
43 log.Println("exporting jsons") 70 log.Println("exporting jsons for", len(players), "players")
44 exportAll(&spRankings, &mpRankings, &overallRankings) 71 exportAll(spRankings, mpRankings, overallRankings)
72
73 log.Println("done")
45} 74}