blob: 0c5861288dd739f369f77d563c5d5bdadcc2524c [file] [log] [blame]
Het Satasiyac34b3ea2022-02-06 17:28:49 -08001package main
2
3// To run the demo, ensure that you have a file named scouting_config.json at the workspace root with your TBA api key in it.
4import (
Philipp Schraderd3fac192022-03-02 20:35:46 -08005 "encoding/json"
6 "flag"
7 "fmt"
Het Satasiyac34b3ea2022-02-06 17:28:49 -08008 "log"
9
10 "github.com/davecgh/go-spew/spew"
11 "github.com/frc971/971-Robot-Code/scouting/scraping"
12)
13
Philipp Schraderc49eaf72023-02-26 16:56:52 -080014func dumpData[T interface{}](jsonPtr *bool, category string) {
15 // Get all the data.
16 data, err := scraping.GetAllData[T](2016, "nytr", "", category)
17 if err != nil {
18 log.Fatal("Failed to scrape ", category, " data: ", err)
19 }
20
21 // Dump the data.
22 if *jsonPtr {
23 jsonData, err := json.MarshalIndent(data, "", " ")
24 if err != nil {
25 log.Fatal("Failed to turn ranking list into JSON: ", err)
26 }
27 fmt.Println(string(jsonData))
28 } else {
29 spew.Dump(data)
30 }
31}
32
Het Satasiyac34b3ea2022-02-06 17:28:49 -080033func main() {
Philipp Schraderd3fac192022-03-02 20:35:46 -080034 jsonPtr := flag.Bool("json", false, "If set, dump as JSON, rather than Go debug output.")
Yash Chainani4e2b6462022-03-26 15:23:17 -070035 demoCategory := flag.String("category", "matches", "Decide whether to demo matches or rankings.")
36
Philipp Schraderd3fac192022-03-02 20:35:46 -080037 flag.Parse()
38
Yash Chainani4e2b6462022-03-26 15:23:17 -070039 if *demoCategory == "rankings" {
Philipp Schraderc49eaf72023-02-26 16:56:52 -080040 dumpData[scraping.EventRanking](jsonPtr, "rankings")
Yash Chainani4e2b6462022-03-26 15:23:17 -070041 } else if *demoCategory == "matches" {
Philipp Schraderc49eaf72023-02-26 16:56:52 -080042 dumpData[[]scraping.Match](jsonPtr, "matches")
Philipp Schraderd3fac192022-03-02 20:35:46 -080043 }
Het Satasiyac34b3ea2022-02-06 17:28:49 -080044}