From df6f6cb5ff8957be8f01d58d60857da2c094a3d9 Mon Sep 17 00:00:00 2001 From: Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> Date: Thu, 12 Sep 2024 00:25:15 +0300 Subject: refactor: unofficial rankings implementation --- rankings/main.go | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 rankings/main.go (limited to 'rankings/main.go') diff --git a/rankings/main.go b/rankings/main.go new file mode 100644 index 0000000..dfafb0c --- /dev/null +++ b/rankings/main.go @@ -0,0 +1,45 @@ +package main + +import ( + "log" + "os" + "os/signal" + "syscall" + + "github.com/joho/godotenv" + "github.com/robfig/cron/v3" +) + +func main() { + err := godotenv.Load() + if err != nil { + log.Fatalln("Error loading .env file:", err.Error()) + } + c := cron.New() + _, err = c.AddFunc("0 0 * * *", run) + if err != nil { + log.Fatalln("Error scheduling daily reminder:", err.Error()) + } + c.Start() + log.Println("ready for jobs") + sc := make(chan os.Signal, 1) + signal.Notify(sc, syscall.SIGINT, syscall.SIGTERM, os.Interrupt) + <-sc +} + +func run() { + log.Println("started job") + records := readRecords() + overrides := readOverrides() + players := fetchLeaderboard(records, overrides) + + spRankings := []*Player{} + mpRankings := []*Player{} + overallRankings := []*Player{} + + log.Println("filtering rankings") + filterRankings(&spRankings, &mpRankings, &overallRankings, players) + + log.Println("exporting jsons") + exportAll(&spRankings, &mpRankings, &overallRankings) +} -- cgit v1.2.3