Merge "Don't keep record of dead processes in top.*"
diff --git a/scouting/db/db.go b/scouting/db/db.go
index 1f182b1..3d514e3 100644
--- a/scouting/db/db.go
+++ b/scouting/db/db.go
@@ -13,7 +13,7 @@
}
type Match struct {
- MatchNumber, Round int32
+ MatchNumber, SetNumber int32
CompLevel string
R1, R2, R3, B1, B2, B3 int32
}
@@ -24,10 +24,10 @@
}
type Stats struct {
- TeamNumber, MatchNumber, Round int32
- CompLevel string
- StartingQuadrant int32
- AutoBallPickedUp [5]bool
+ TeamNumber, MatchNumber, SetNumber int32
+ CompLevel string
+ StartingQuadrant int32
+ AutoBallPickedUp [5]bool
// TODO(phil): Re-order auto and teleop fields so auto comes first.
ShotsMissed, UpperGoalShots, LowerGoalShots int32
ShotsMissedAuto, UpperGoalAuto, LowerGoalAuto int32
@@ -39,7 +39,7 @@
// 3 -> "Low"
// 4 -> "Medium"
// 5 -> "High"
- // 6 -> "Transversal"
+ // 6 -> "Traversal"
Climbing int32
// Some non-numerical data that the scout felt worth noting.
Comment string
@@ -74,7 +74,7 @@
statement, err := database.Prepare("CREATE TABLE IF NOT EXISTS matches (" +
"MatchNumber INTEGER, " +
- "Round INTEGER, " +
+ "SetNumber INTEGER, " +
"CompLevel VARCHAR, " +
"R1 INTEGER, " +
"R2 INTEGER, " +
@@ -82,7 +82,7 @@
"B1 INTEGER, " +
"B2 INTEGER, " +
"B3 INTEGER, " +
- "PRIMARY KEY (MatchNumber, Round, CompLevel))")
+ "PRIMARY KEY (MatchNumber, SetNumber, CompLevel))")
if err != nil {
database.Close()
return nil, errors.New(fmt.Sprint("Failed to prepare matches table creation: ", err))
@@ -119,7 +119,7 @@
statement, err = database.Prepare("CREATE TABLE IF NOT EXISTS team_match_stats (" +
"TeamNumber INTEGER, " +
"MatchNumber INTEGER, " +
- "Round INTEGER, " +
+ "SetNumber INTEGER, " +
"CompLevel VARCHAR, " +
"StartingQuadrant INTEGER, " +
"AutoBall1PickedUp BOOLEAN, " +
@@ -138,7 +138,7 @@
"Climbing INTEGER, " +
"Comment VARCHAR, " +
"CollectedBy VARCHAR, " +
- "PRIMARY KEY (TeamNumber, MatchNumber, Round, CompLevel))")
+ "PRIMARY KEY (TeamNumber, MatchNumber, SetNumber, CompLevel))")
if err != nil {
database.Close()
return nil, errors.New(fmt.Sprint("Failed to prepare stats table creation: ", err))
@@ -238,12 +238,12 @@
// This function will also populate the Stats table with six empty rows every time a match is added
func (database *Database) AddToMatch(m Match) error {
statement, err := database.Prepare("INSERT INTO matches(" +
- "MatchNumber, Round, CompLevel, " +
+ "MatchNumber, SetNumber, CompLevel, " +
"R1, R2, R3, B1, B2, B3) " +
"VALUES (" +
"$1, $2, $3, " +
"$4, $5, $6, $7, $8, $9) " +
- "ON CONFLICT (MatchNumber, Round, CompLevel) DO UPDATE SET " +
+ "ON CONFLICT (MatchNumber, SetNumber, CompLevel) DO UPDATE SET " +
"R1 = EXCLUDED.R1, R2 = EXCLUDED.R2, R3 = EXCLUDED.R3, " +
"B1 = EXCLUDED.B1, B2 = EXCLUDED.B2, B3 = EXCLUDED.B3")
if err != nil {
@@ -251,7 +251,7 @@
}
defer statement.Close()
- _, err = statement.Exec(m.MatchNumber, m.Round, m.CompLevel,
+ _, err = statement.Exec(m.MatchNumber, m.SetNumber, m.CompLevel,
m.R1, m.R2, m.R3, m.B1, m.B2, m.B3)
if err != nil {
return errors.New(fmt.Sprint("Failed to insert into match database: ", err))
@@ -298,7 +298,7 @@
}
statement, err := database.Prepare("INSERT INTO team_match_stats(" +
- "TeamNumber, MatchNumber, Round, CompLevel, " +
+ "TeamNumber, MatchNumber, SetNumber, CompLevel, " +
"StartingQuadrant, " +
"AutoBall1PickedUp, AutoBall2PickedUp, AutoBall3PickedUp, " +
"AutoBall4PickedUp, AutoBall5PickedUp, " +
@@ -321,7 +321,7 @@
defer statement.Close()
_, err = statement.Exec(
- s.TeamNumber, s.MatchNumber, s.Round, s.CompLevel,
+ s.TeamNumber, s.MatchNumber, s.SetNumber, s.CompLevel,
s.StartingQuadrant,
s.AutoBallPickedUp[0], s.AutoBallPickedUp[1], s.AutoBallPickedUp[2],
s.AutoBallPickedUp[3], s.AutoBallPickedUp[4],
@@ -388,7 +388,7 @@
matches := make([]Match, 0)
for rows.Next() {
var match Match
- err := rows.Scan(&match.MatchNumber, &match.Round, &match.CompLevel,
+ err := rows.Scan(&match.MatchNumber, &match.SetNumber, &match.CompLevel,
&match.R1, &match.R2, &match.R3, &match.B1, &match.B2, &match.B3)
if err != nil {
return nil, errors.New(fmt.Sprint("Failed to scan from matches: ", err))
@@ -430,7 +430,7 @@
for rows.Next() {
var team Stats
err = rows.Scan(
- &team.TeamNumber, &team.MatchNumber, &team.Round, &team.CompLevel,
+ &team.TeamNumber, &team.MatchNumber, &team.SetNumber, &team.CompLevel,
&team.StartingQuadrant,
&team.AutoBallPickedUp[0], &team.AutoBallPickedUp[1], &team.AutoBallPickedUp[2],
&team.AutoBallPickedUp[3], &team.AutoBallPickedUp[4],
@@ -480,7 +480,7 @@
var matches []Match
for rows.Next() {
var match Match
- err = rows.Scan(&match.MatchNumber, &match.Round, &match.CompLevel,
+ err = rows.Scan(&match.MatchNumber, &match.SetNumber, &match.CompLevel,
&match.R1, &match.R2, &match.R3, &match.B1, &match.B2, &match.B3)
if err != nil {
return nil, errors.New(fmt.Sprint("Failed to scan from matches: ", err))
@@ -522,7 +522,7 @@
for rows.Next() {
var team Stats
err = rows.Scan(
- &team.TeamNumber, &team.MatchNumber, &team.Round, &team.CompLevel,
+ &team.TeamNumber, &team.MatchNumber, &team.SetNumber, &team.CompLevel,
&team.StartingQuadrant,
&team.AutoBallPickedUp[0], &team.AutoBallPickedUp[1], &team.AutoBallPickedUp[2],
&team.AutoBallPickedUp[3], &team.AutoBallPickedUp[4],
diff --git a/scouting/db/db_test.go b/scouting/db/db_test.go
index f19b68c..438e52e 100644
--- a/scouting/db/db_test.go
+++ b/scouting/db/db_test.go
@@ -65,7 +65,7 @@
correct := []Match{
Match{
MatchNumber: 7,
- Round: 1,
+ SetNumber: 1,
CompLevel: "quals",
R1: 9999, R2: 1000, R3: 777, B1: 0000, B2: 4321, B3: 1234,
},
@@ -174,7 +174,7 @@
}
err := fixture.db.AddToMatch(Match{
- MatchNumber: 7, Round: 1, CompLevel: "quals",
+ MatchNumber: 7, SetNumber: 1, CompLevel: "quals",
R1: 1236, R2: 1001, R3: 777, B1: 1000, B2: 4321, B3: 1234,
})
check(t, err, "Failed to add match")
@@ -207,7 +207,7 @@
}
err := fixture.db.AddToMatch(Match{
- MatchNumber: 7, Round: 1, CompLevel: "quals",
+ MatchNumber: 7, SetNumber: 1, CompLevel: "quals",
R1: 1236, R2: 1001, R3: 777, B1: 1000, B2: 4321, B3: 1234,
})
check(t, err, "Failed to add match")
@@ -231,10 +231,10 @@
defer fixture.TearDown()
testDatabase := []Match{
- Match{MatchNumber: 2, Round: 1, CompLevel: "quals", R1: 251, R2: 169, R3: 286, B1: 253, B2: 538, B3: 149},
- Match{MatchNumber: 4, Round: 1, CompLevel: "quals", R1: 198, R2: 135, R3: 777, B1: 999, B2: 434, B3: 698},
- Match{MatchNumber: 3, Round: 1, CompLevel: "quals", R1: 147, R2: 421, R3: 538, B1: 126, B2: 448, B3: 262},
- Match{MatchNumber: 6, Round: 1, CompLevel: "quals", R1: 191, R2: 132, R3: 773, B1: 994, B2: 435, B3: 696},
+ Match{MatchNumber: 2, SetNumber: 1, CompLevel: "quals", R1: 251, R2: 169, R3: 286, B1: 253, B2: 538, B3: 149},
+ Match{MatchNumber: 4, SetNumber: 1, CompLevel: "quals", R1: 198, R2: 135, R3: 777, B1: 999, B2: 434, B3: 698},
+ Match{MatchNumber: 3, SetNumber: 1, CompLevel: "quals", R1: 147, R2: 421, R3: 538, B1: 126, B2: 448, B3: 262},
+ Match{MatchNumber: 6, SetNumber: 1, CompLevel: "quals", R1: 191, R2: 132, R3: 773, B1: 994, B2: 435, B3: 696},
}
for i := 0; i < len(testDatabase); i++ {
@@ -244,11 +244,11 @@
correct := []Match{
Match{
- MatchNumber: 2, Round: 1, CompLevel: "quals",
+ MatchNumber: 2, SetNumber: 1, CompLevel: "quals",
R1: 251, R2: 169, R3: 286, B1: 253, B2: 538, B3: 149,
},
Match{
- MatchNumber: 3, Round: 1, CompLevel: "quals",
+ MatchNumber: 3, SetNumber: 1, CompLevel: "quals",
R1: 147, R2: 421, R3: 538, B1: 126, B2: 448, B3: 262,
},
}
@@ -302,14 +302,14 @@
testDatabase := []Stats{
Stats{
- TeamNumber: 1235, MatchNumber: 94, Round: 2, CompLevel: "quals",
+ TeamNumber: 1235, MatchNumber: 94, SetNumber: 2, CompLevel: "quals",
StartingQuadrant: 1,
AutoBallPickedUp: [5]bool{false, false, false, false, false},
ShotsMissed: 2, UpperGoalShots: 2, LowerGoalShots: 2,
ShotsMissedAuto: 2, UpperGoalAuto: 2, LowerGoalAuto: 2,
PlayedDefense: 2, DefenseReceivedScore: 1, Climbing: 2},
Stats{
- TeamNumber: 1234, MatchNumber: 94, Round: 2, CompLevel: "quals",
+ TeamNumber: 1234, MatchNumber: 94, SetNumber: 2, CompLevel: "quals",
StartingQuadrant: 2,
AutoBallPickedUp: [5]bool{false, false, false, false, true},
ShotsMissed: 4, UpperGoalShots: 4, LowerGoalShots: 4,
@@ -317,7 +317,7 @@
PlayedDefense: 7, DefenseReceivedScore: 1, Climbing: 2,
},
Stats{
- TeamNumber: 1233, MatchNumber: 94, Round: 2, CompLevel: "quals",
+ TeamNumber: 1233, MatchNumber: 94, SetNumber: 2, CompLevel: "quals",
StartingQuadrant: 3,
AutoBallPickedUp: [5]bool{false, false, false, false, false},
ShotsMissed: 3, UpperGoalShots: 3, LowerGoalShots: 3,
@@ -325,7 +325,7 @@
PlayedDefense: 3, DefenseReceivedScore: 0, Climbing: 3,
},
Stats{
- TeamNumber: 1232, MatchNumber: 94, Round: 2, CompLevel: "quals",
+ TeamNumber: 1232, MatchNumber: 94, SetNumber: 2, CompLevel: "quals",
StartingQuadrant: 2,
AutoBallPickedUp: [5]bool{true, false, false, false, true},
ShotsMissed: 5, UpperGoalShots: 5, LowerGoalShots: 5,
@@ -333,7 +333,7 @@
PlayedDefense: 7, DefenseReceivedScore: 2, Climbing: 1,
},
Stats{
- TeamNumber: 1231, MatchNumber: 94, Round: 2, CompLevel: "quals",
+ TeamNumber: 1231, MatchNumber: 94, SetNumber: 2, CompLevel: "quals",
StartingQuadrant: 3,
AutoBallPickedUp: [5]bool{false, false, true, false, false},
ShotsMissed: 6, UpperGoalShots: 6, LowerGoalShots: 6,
@@ -341,7 +341,7 @@
PlayedDefense: 7, DefenseReceivedScore: 3, Climbing: 1,
},
Stats{
- TeamNumber: 1239, MatchNumber: 94, Round: 2, CompLevel: "quals",
+ TeamNumber: 1239, MatchNumber: 94, SetNumber: 2, CompLevel: "quals",
StartingQuadrant: 4,
AutoBallPickedUp: [5]bool{false, true, true, false, false},
ShotsMissed: 7, UpperGoalShots: 7, LowerGoalShots: 7,
@@ -351,7 +351,7 @@
}
err := fixture.db.AddToMatch(Match{
- MatchNumber: 94, Round: 1, CompLevel: "quals",
+ MatchNumber: 94, SetNumber: 1, CompLevel: "quals",
R1: 1235, R2: 1234, R3: 1233, B1: 1232, B2: 1231, B3: 1239})
check(t, err, "Failed to add match")
@@ -362,7 +362,7 @@
correct := []Stats{
Stats{
- TeamNumber: 1235, MatchNumber: 94, Round: 2, CompLevel: "quals",
+ TeamNumber: 1235, MatchNumber: 94, SetNumber: 2, CompLevel: "quals",
StartingQuadrant: 1,
AutoBallPickedUp: [5]bool{false, false, false, false, false},
ShotsMissed: 2, UpperGoalShots: 2, LowerGoalShots: 2,
@@ -433,23 +433,23 @@
correct := []Match{
Match{
- MatchNumber: 2, Round: 1, CompLevel: "quals",
+ MatchNumber: 2, SetNumber: 1, CompLevel: "quals",
R1: 251, R2: 169, R3: 286, B1: 253, B2: 538, B3: 149,
},
Match{
- MatchNumber: 3, Round: 1, CompLevel: "quals",
+ MatchNumber: 3, SetNumber: 1, CompLevel: "quals",
R1: 147, R2: 421, R3: 538, B1: 126, B2: 448, B3: 262,
},
Match{
- MatchNumber: 4, Round: 1, CompLevel: "quals",
+ MatchNumber: 4, SetNumber: 1, CompLevel: "quals",
R1: 251, R2: 169, R3: 286, B1: 653, B2: 538, B3: 149,
},
Match{
- MatchNumber: 5, Round: 1, CompLevel: "quals",
+ MatchNumber: 5, SetNumber: 1, CompLevel: "quals",
R1: 198, R2: 1421, R3: 538, B1: 26, B2: 448, B3: 262,
},
Match{
- MatchNumber: 6, Round: 1, CompLevel: "quals",
+ MatchNumber: 6, SetNumber: 1, CompLevel: "quals",
R1: 251, R2: 188, R3: 286, B1: 555, B2: 538, B3: 149,
},
}
@@ -473,15 +473,15 @@
testDatabase := []Match{
Match{
- MatchNumber: 1, Round: 1, CompLevel: "quals",
+ MatchNumber: 1, SetNumber: 1, CompLevel: "quals",
R1: 251, R2: 169, R3: 286, B1: 253, B2: 538, B3: 149,
},
Match{
- MatchNumber: 2, Round: 1, CompLevel: "quals",
+ MatchNumber: 2, SetNumber: 1, CompLevel: "quals",
R1: 198, R2: 135, R3: 777, B1: 999, B2: 434, B3: 698,
},
Match{
- MatchNumber: 1, Round: 1, CompLevel: "quals",
+ MatchNumber: 1, SetNumber: 1, CompLevel: "quals",
R1: 147, R2: 421, R3: 538, B1: 126, B2: 448, B3: 262,
},
}
@@ -493,11 +493,11 @@
correct := []Match{
Match{
- MatchNumber: 2, Round: 1, CompLevel: "quals",
+ MatchNumber: 2, SetNumber: 1, CompLevel: "quals",
R1: 198, R2: 135, R3: 777, B1: 999, B2: 434, B3: 698,
},
Match{
- MatchNumber: 1, Round: 1, CompLevel: "quals",
+ MatchNumber: 1, SetNumber: 1, CompLevel: "quals",
R1: 147, R2: 421, R3: 538, B1: 126, B2: 448, B3: 262,
},
}
@@ -584,14 +584,14 @@
correct := []Stats{
Stats{
- TeamNumber: 1235, MatchNumber: 94, Round: 1, CompLevel: "quals",
+ TeamNumber: 1235, MatchNumber: 94, SetNumber: 1, CompLevel: "quals",
StartingQuadrant: 1,
AutoBallPickedUp: [5]bool{false, false, false, false, false},
ShotsMissed: 2, UpperGoalShots: 2, LowerGoalShots: 2,
ShotsMissedAuto: 2, UpperGoalAuto: 2, LowerGoalAuto: 2,
PlayedDefense: 2, DefenseReceivedScore: 3, Climbing: 2},
Stats{
- TeamNumber: 1236, MatchNumber: 94, Round: 1, CompLevel: "quals",
+ TeamNumber: 1236, MatchNumber: 94, SetNumber: 1, CompLevel: "quals",
StartingQuadrant: 2,
AutoBallPickedUp: [5]bool{false, false, false, false, true},
ShotsMissed: 4, UpperGoalShots: 4, LowerGoalShots: 4,
@@ -599,7 +599,7 @@
PlayedDefense: 7, DefenseReceivedScore: 1, Climbing: 2,
},
Stats{
- TeamNumber: 1237, MatchNumber: 94, Round: 1, CompLevel: "quals",
+ TeamNumber: 1237, MatchNumber: 94, SetNumber: 1, CompLevel: "quals",
StartingQuadrant: 3,
AutoBallPickedUp: [5]bool{false, false, false, false, false},
ShotsMissed: 3, UpperGoalShots: 3, LowerGoalShots: 3,
@@ -607,7 +607,7 @@
PlayedDefense: 3, DefenseReceivedScore: 0, Climbing: 3,
},
Stats{
- TeamNumber: 1238, MatchNumber: 94, Round: 1, CompLevel: "quals",
+ TeamNumber: 1238, MatchNumber: 94, SetNumber: 1, CompLevel: "quals",
StartingQuadrant: 2,
AutoBallPickedUp: [5]bool{true, false, false, false, true},
ShotsMissed: 5, UpperGoalShots: 5, LowerGoalShots: 5,
@@ -615,7 +615,7 @@
PlayedDefense: 7, DefenseReceivedScore: 4, Climbing: 1,
},
Stats{
- TeamNumber: 1239, MatchNumber: 94, Round: 1, CompLevel: "quals",
+ TeamNumber: 1239, MatchNumber: 94, SetNumber: 1, CompLevel: "quals",
StartingQuadrant: 3,
AutoBallPickedUp: [5]bool{false, false, true, false, false},
ShotsMissed: 6, UpperGoalShots: 6, LowerGoalShots: 6,
@@ -623,7 +623,7 @@
PlayedDefense: 7, DefenseReceivedScore: 4, Climbing: 1,
},
Stats{
- TeamNumber: 1233, MatchNumber: 94, Round: 1, CompLevel: "quals",
+ TeamNumber: 1233, MatchNumber: 94, SetNumber: 1, CompLevel: "quals",
StartingQuadrant: 4,
AutoBallPickedUp: [5]bool{false, true, true, false, false},
ShotsMissed: 7, UpperGoalShots: 7, LowerGoalShots: 7,
@@ -633,7 +633,7 @@
}
err := fixture.db.AddToMatch(Match{
- MatchNumber: 94, Round: 1, CompLevel: "quals",
+ MatchNumber: 94, SetNumber: 1, CompLevel: "quals",
R1: 1235, R2: 1236, R3: 1237, B1: 1238, B2: 1239, B3: 1233})
check(t, err, "Failed to add match")
diff --git a/scouting/scouting_test.ts b/scouting/scouting_test.ts
index 5740cc8..e983a86 100644
--- a/scouting/scouting_test.ts
+++ b/scouting/scouting_test.ts
@@ -157,7 +157,7 @@
expect(await getHeadingText()).toEqual('Team Selection');
expect(await getValueOfInputById('match_number')).toEqual('3');
expect(await getValueOfInputById('team_number')).toEqual('5254');
- expect(await getValueOfInputById('round')).toEqual('2');
+ expect(await getValueOfInputById('set_number')).toEqual('2');
expect(await getValueOfInputById('comp_level')).toEqual('3: sf');
});
@@ -228,7 +228,7 @@
expect(await getHeadingText()).toEqual('Team Selection');
await setTextboxByIdTo('match_number', '2');
await setTextboxByIdTo('team_number', '5254');
- await setTextboxByIdTo('round', '42');
+ await setTextboxByIdTo('set_number', '42');
await element(by.cssContainingText('option', 'Semi Finals')).click();
await element(by.buttonText('Next')).click();
@@ -257,7 +257,7 @@
// Validate Team Selection.
await expectReviewFieldToBe('Match number', '2');
await expectReviewFieldToBe('Team number', '5254');
- await expectReviewFieldToBe('Round', '42');
+ await expectReviewFieldToBe('SetNumber', '42');
await expectReviewFieldToBe('Comp Level', 'Semi Finals');
// Validate Auto.
diff --git a/scouting/scraping/scrape.go b/scouting/scraping/scrape.go
index 19426cf..625157a 100644
--- a/scouting/scraping/scrape.go
+++ b/scouting/scraping/scrape.go
@@ -13,8 +13,10 @@
// Stores the TBA API key to access the API.
type scrapingConfig struct {
- ApiKey string `json:"api_key"`
- BaseUrl string `json:"base_url"`
+ ApiKey string `json:"api_key"`
+ BaseUrl string `json:"base_url"`
+ Year int32 `json:"year"`
+ EventCode string `json:"event_code"`
}
// Takes in year and FIRST event code and returns requested information according to TBA.
@@ -47,9 +49,15 @@
if config.BaseUrl == "" {
config.BaseUrl = "https://www.thebluealliance.com"
}
+ if config.Year == 0 {
+ config.Year = year
+ }
+ if config.EventCode == "" {
+ config.EventCode = eventCode
+ }
// Create the TBA event key for the year and event code.
- eventKey := strconv.Itoa(int(year)) + eventCode
+ eventKey := strconv.Itoa(int(config.Year)) + config.EventCode
// Create a get request for the match info.
req, err := http.NewRequest("GET", config.BaseUrl+"/api/v3/event/"+eventKey+"/"+category, nil)
diff --git a/scouting/webserver/BUILD b/scouting/webserver/BUILD
index 745852a..3df423e 100644
--- a/scouting/webserver/BUILD
+++ b/scouting/webserver/BUILD
@@ -9,6 +9,7 @@
deps = [
"//scouting/db",
"//scouting/scraping",
+ "//scouting/webserver/rankings",
"//scouting/webserver/requests",
"//scouting/webserver/server",
"//scouting/webserver/static",
diff --git a/scouting/webserver/main.go b/scouting/webserver/main.go
index 8f4298b..5d4ab01 100644
--- a/scouting/webserver/main.go
+++ b/scouting/webserver/main.go
@@ -15,6 +15,7 @@
"github.com/frc971/971-Robot-Code/scouting/db"
"github.com/frc971/971-Robot-Code/scouting/scraping"
+ "github.com/frc971/971-Robot-Code/scouting/webserver/rankings"
"github.com/frc971/971-Robot-Code/scouting/webserver/requests"
"github.com/frc971/971-Robot-Code/scouting/webserver/server"
"github.com/frc971/971-Robot-Code/scouting/webserver/static"
@@ -131,6 +132,9 @@
scoutingServer.Start(*portPtr)
fmt.Println("Serving", *dirPtr, "on port", *portPtr)
+ scraper := rankings.RankingScraper{}
+ scraper.Start(database, 0, "", *blueAllianceConfigPtr)
+
// Block until the user hits Ctrl-C.
sigint := make(chan os.Signal, 1)
signal.Notify(sigint, syscall.SIGINT)
@@ -140,5 +144,6 @@
fmt.Println("Shutting down.")
scoutingServer.Stop()
+ scraper.Stop()
fmt.Println("Successfully shut down.")
}
diff --git a/scouting/webserver/rankings/rankings.go b/scouting/webserver/rankings/rankings.go
index 064aa13..6e63c0a 100644
--- a/scouting/webserver/rankings/rankings.go
+++ b/scouting/webserver/rankings/rankings.go
@@ -9,7 +9,7 @@
"time"
)
-type rankingScraper struct {
+type RankingScraper struct {
doneChan chan<- bool
checkStopped chan<- bool
}
@@ -52,7 +52,7 @@
}
}
-func (scraper *rankingScraper) Start(database Database, year int32, eventCode string, blueAllianceConfig string) {
+func (scraper *RankingScraper) Start(database Database, year int32, eventCode string, blueAllianceConfig string) {
scraper.doneChan = make(chan bool, 1)
scraper.checkStopped = make(chan bool, 1)
@@ -79,7 +79,7 @@
}(database, year, eventCode)
}
-func (scraper *rankingScraper) Stop() {
+func (scraper *RankingScraper) Stop() {
scraper.doneChan <- true
for {
diff --git a/scouting/webserver/rankings/rankings_test.go b/scouting/webserver/rankings/rankings_test.go
index f47c0a2..aa23c76 100644
--- a/scouting/webserver/rankings/rankings_test.go
+++ b/scouting/webserver/rankings/rankings_test.go
@@ -30,13 +30,13 @@
func TestGetRankings(t *testing.T) {
database := MockDatabase{}
- scraper := rankingScraper{}
+ scraper := RankingScraper{}
tbaServer := server.NewScoutingServer()
tbaServer.Handle("/", ServeRankings(http.FileServer(http.Dir("../../"))))
tbaServer.Start(8000)
defer tbaServer.Stop()
- scraper.Start(&database, 2016, "nytr", "scouting_test_config.json")
+ scraper.Start(&database, 0, "", "scouting_test_config.json")
defer scraper.Stop()
for {
diff --git a/scouting/webserver/rankings/scouting_test_config.json b/scouting/webserver/rankings/scouting_test_config.json
index 19a1b4f..40a7747 100644
--- a/scouting/webserver/rankings/scouting_test_config.json
+++ b/scouting/webserver/rankings/scouting_test_config.json
@@ -1,4 +1,6 @@
{
"api_key": "dummy_key_that_is_not_actually_used_in_this_test",
- "base_url": "http://localhost:8000"
+ "base_url": "http://localhost:8000",
+ "year": 2022,
+ "event_code": "CMPTX"
}
\ No newline at end of file
diff --git a/scouting/webserver/requests/debug/cli/cli_test.py b/scouting/webserver/requests/debug/cli/cli_test.py
index 6189284..2bcd75b 100644
--- a/scouting/webserver/requests/debug/cli/cli_test.py
+++ b/scouting/webserver/requests/debug/cli/cli_test.py
@@ -62,7 +62,7 @@
json_path = write_json_request({
"team": 100,
"match": 1,
- "round": 2,
+ "set_number": 2,
"comp_level": "quals",
"starting_quadrant": 3,
"auto_ball_1": True,
@@ -111,7 +111,7 @@
ClimbLevel: (request_data_scouting_response.ClimbLevel) Medium,
DefenseReceivedRating: (int32) 4,
Comment: (string) (len=35) "A very inspiring and useful comment",
- Round: (int32) 2,
+ SetNumber: (int32) 2,
CompLevel: (string) (len=5) "quals"
}"""), stdout)
diff --git a/scouting/webserver/requests/messages/request_all_matches_response.fbs b/scouting/webserver/requests/messages/request_all_matches_response.fbs
index 90401e3..9d3be62 100644
--- a/scouting/webserver/requests/messages/request_all_matches_response.fbs
+++ b/scouting/webserver/requests/messages/request_all_matches_response.fbs
@@ -2,7 +2,7 @@
table Match {
match_number:int (id: 0);
- round:int (id: 1);
+ set_number:int (id: 1);
comp_level:string (id: 2);
r1:int (id: 3);
r2:int (id: 4);
diff --git a/scouting/webserver/requests/messages/request_data_scouting_response.fbs b/scouting/webserver/requests/messages/request_data_scouting_response.fbs
index 9171335..071a848 100644
--- a/scouting/webserver/requests/messages/request_data_scouting_response.fbs
+++ b/scouting/webserver/requests/messages/request_data_scouting_response.fbs
@@ -10,13 +10,13 @@
Low,
Medium,
High,
- Transversal,
+ Traversal,
}
table Stats {
team:int (id: 0);
match:int (id: 1);
- round:int (id: 20);
+ set_number:int (id: 20);
comp_level:string (id: 21);
missed_shots_auto:int (id: 2);
diff --git a/scouting/webserver/requests/messages/request_matches_for_team_response.fbs b/scouting/webserver/requests/messages/request_matches_for_team_response.fbs
index cbb1895..dcfec52 100644
--- a/scouting/webserver/requests/messages/request_matches_for_team_response.fbs
+++ b/scouting/webserver/requests/messages/request_matches_for_team_response.fbs
@@ -2,7 +2,7 @@
table Match {
match_number:int (id: 0);
- round:int (id: 1);
+ set_number:int (id: 1);
comp_level:string (id: 2);
r1:int (id: 3);
r2:int (id: 4);
diff --git a/scouting/webserver/requests/messages/submit_data_scouting.fbs b/scouting/webserver/requests/messages/submit_data_scouting.fbs
index b1ae2b8..36990f5 100644
--- a/scouting/webserver/requests/messages/submit_data_scouting.fbs
+++ b/scouting/webserver/requests/messages/submit_data_scouting.fbs
@@ -10,13 +10,13 @@
Low,
Medium,
High,
- Transversal,
+ Traversal,
}
table SubmitDataScouting {
team:int (id: 0);
match:int (id: 1);
- round:int (id: 19);
+ set_number:int (id: 19);
comp_level:string (id: 20);
missed_shots_auto:int (id: 2);
diff --git a/scouting/webserver/requests/requests.go b/scouting/webserver/requests/requests.go
index af52510..cef87aa 100644
--- a/scouting/webserver/requests/requests.go
+++ b/scouting/webserver/requests/requests.go
@@ -144,7 +144,7 @@
stats := db.Stats{
TeamNumber: request.Team(),
MatchNumber: request.Match(),
- Round: request.Round(),
+ SetNumber: request.SetNumber(),
CompLevel: string(request.CompLevel()),
StartingQuadrant: request.StartingQuadrant(),
AutoBallPickedUp: [5]bool{
@@ -209,7 +209,7 @@
for _, match := range matches {
response.MatchList = append(response.MatchList, &request_all_matches_response.MatchT{
MatchNumber: match.MatchNumber,
- Round: match.Round,
+ SetNumber: match.SetNumber,
CompLevel: match.CompLevel,
R1: match.R1,
R2: match.R2,
@@ -252,7 +252,7 @@
for _, match := range matches {
response.MatchList = append(response.MatchList, &request_all_matches_response.MatchT{
MatchNumber: match.MatchNumber,
- Round: match.Round,
+ SetNumber: match.SetNumber,
CompLevel: match.CompLevel,
R1: match.R1,
R2: match.R2,
@@ -296,7 +296,7 @@
response.StatsList = append(response.StatsList, &request_data_scouting_response.StatsT{
Team: stat.TeamNumber,
Match: stat.MatchNumber,
- Round: stat.Round,
+ SetNumber: stat.SetNumber,
CompLevel: stat.CompLevel,
StartingQuadrant: stat.StartingQuadrant,
AutoBall1: stat.AutoBallPickedUp[0],
@@ -395,7 +395,7 @@
// Add the match to the database.
err = handler.db.AddToMatch(db.Match{
MatchNumber: int32(match.MatchNumber),
- Round: int32(match.SetNumber),
+ SetNumber: int32(match.SetNumber),
CompLevel: match.CompLevel,
R1: red[0],
R2: red[1],
diff --git a/scouting/webserver/requests/requests_test.go b/scouting/webserver/requests/requests_test.go
index 20af93c..4dda143 100644
--- a/scouting/webserver/requests/requests_test.go
+++ b/scouting/webserver/requests/requests_test.go
@@ -84,7 +84,7 @@
builder.Finish((&submit_data_scouting.SubmitDataScoutingT{
Team: 971,
Match: 1,
- Round: 8,
+ SetNumber: 8,
CompLevel: "quals",
StartingQuadrant: 2,
AutoBall1: true,
@@ -121,15 +121,15 @@
db := MockDatabase{
matches: []db.Match{
{
- MatchNumber: 1, Round: 1, CompLevel: "qual",
+ MatchNumber: 1, SetNumber: 1, CompLevel: "qual",
R1: 5, R2: 42, R3: 600, B1: 971, B2: 400, B3: 200,
},
{
- MatchNumber: 2, Round: 1, CompLevel: "qual",
+ MatchNumber: 2, SetNumber: 1, CompLevel: "qual",
R1: 6, R2: 43, R3: 601, B1: 972, B2: 401, B3: 201,
},
{
- MatchNumber: 3, Round: 1, CompLevel: "qual",
+ MatchNumber: 3, SetNumber: 1, CompLevel: "qual",
R1: 7, R2: 44, R3: 602, B1: 973, B2: 402, B3: 202,
},
},
@@ -149,7 +149,7 @@
expected := request_all_matches_response.RequestAllMatchesResponseT{
MatchList: []*request_all_matches_response.MatchT{
- // MatchNumber, Round, CompLevel
+ // MatchNumber, SetNumber, CompLevel
// R1, R2, R3, B1, B2, B3
{
1, 1, "qual",
@@ -181,11 +181,11 @@
db := MockDatabase{
matches: []db.Match{
{
- MatchNumber: 1, Round: 1, CompLevel: "qual",
+ MatchNumber: 1, SetNumber: 1, CompLevel: "qual",
R1: 5, R2: 42, R3: 600, B1: 971, B2: 400, B3: 200,
},
{
- MatchNumber: 2, Round: 1, CompLevel: "qual",
+ MatchNumber: 2, SetNumber: 1, CompLevel: "qual",
R1: 6, R2: 43, R3: 601, B1: 972, B2: 401, B3: 201,
},
},
@@ -207,7 +207,7 @@
expected := request_matches_for_team_response.RequestMatchesForTeamResponseT{
MatchList: []*request_matches_for_team_response.MatchT{
- // MatchNumber, Round, CompLevel
+ // MatchNumber, SetNumber, CompLevel
// R1, R2, R3, B1, B2, B3
{
1, 1, "qual",
@@ -230,7 +230,7 @@
db := MockDatabase{
stats: []db.Stats{
{
- TeamNumber: 971, MatchNumber: 1, Round: 2, CompLevel: "quals",
+ TeamNumber: 971, MatchNumber: 1, SetNumber: 2, CompLevel: "quals",
StartingQuadrant: 1,
AutoBallPickedUp: [5]bool{true, false, false, false, true},
ShotsMissed: 1, UpperGoalShots: 2, LowerGoalShots: 3,
@@ -239,7 +239,7 @@
Comment: "a lovely comment", CollectedBy: "john",
},
{
- TeamNumber: 972, MatchNumber: 1, Round: 4, CompLevel: "extra",
+ TeamNumber: 972, MatchNumber: 1, SetNumber: 4, CompLevel: "extra",
StartingQuadrant: 2,
AutoBallPickedUp: [5]bool{false, false, true, false, false},
ShotsMissed: 2, UpperGoalShots: 3, LowerGoalShots: 4,
@@ -265,7 +265,7 @@
expected := request_data_scouting_response.RequestDataScoutingResponseT{
StatsList: []*request_data_scouting_response.StatsT{
{
- Team: 971, Match: 1, Round: 2, CompLevel: "quals",
+ Team: 971, Match: 1, SetNumber: 2, CompLevel: "quals",
MissedShotsAuto: 4, UpperGoalAuto: 5, LowerGoalAuto: 6,
MissedShotsTele: 1, UpperGoalTele: 2, LowerGoalTele: 3,
DefenseRating: 7,
@@ -278,7 +278,7 @@
Comment: "a lovely comment",
},
{
- Team: 972, Match: 1, Round: 4, CompLevel: "extra",
+ Team: 972, Match: 1, SetNumber: 4, CompLevel: "extra",
MissedShotsAuto: 5, UpperGoalAuto: 6, LowerGoalAuto: 7,
MissedShotsTele: 2, UpperGoalTele: 3, LowerGoalTele: 4,
DefenseRating: 8,
@@ -414,7 +414,7 @@
expectedMatches := []db.Match{
{
MatchNumber: 1,
- Round: 2,
+ SetNumber: 2,
CompLevel: "qual",
R1: 100,
R2: 200,
diff --git a/scouting/www/app.ng.html b/scouting/www/app.ng.html
index 7bf7e63..297fd39 100644
--- a/scouting/www/app.ng.html
+++ b/scouting/www/app.ng.html
@@ -75,7 +75,7 @@
(switchTabsEvent)="switchTabTo($event)"
[teamNumber]="selectedTeamInMatch.teamNumber"
[matchNumber]="selectedTeamInMatch.matchNumber"
- [round]="selectedTeamInMatch.round"
+ [setNumber]="selectedTeamInMatch.setNumber"
[compLevel]="selectedTeamInMatch.compLevel"
*ngSwitchCase="'Entry'"
></app-entry>
diff --git a/scouting/www/app.ts b/scouting/www/app.ts
index 5180218..4f95c90 100644
--- a/scouting/www/app.ts
+++ b/scouting/www/app.ts
@@ -14,7 +14,7 @@
type TeamInMatch = {
teamNumber: number;
matchNumber: number;
- round: number;
+ setNumber: number;
compLevel: string;
};
@@ -27,7 +27,7 @@
selectedTeamInMatch: TeamInMatch = {
teamNumber: 1,
matchNumber: 1,
- round: 1,
+ setNumber: 1,
compLevel: 'qm',
};
tab: Tab = 'MatchList';
diff --git a/scouting/www/entry/entry.component.ts b/scouting/www/entry/entry.component.ts
index 9637e8c..d6829c5 100644
--- a/scouting/www/entry/entry.component.ts
+++ b/scouting/www/entry/entry.component.ts
@@ -54,7 +54,7 @@
@Output() switchTabsEvent = new EventEmitter<string>();
@Input() matchNumber: number = 1;
@Input() teamNumber: number = 1;
- @Input() round: number = 1;
+ @Input() setNumber: number = 1;
@Input() compLevel: CompLevel = 'qm';
autoUpperShotsMade: number = 0;
autoLowerShotsMade: number = 0;
@@ -135,7 +135,7 @@
SubmitDataScouting.startSubmitDataScouting(builder);
SubmitDataScouting.addTeam(builder, this.teamNumber);
SubmitDataScouting.addMatch(builder, this.matchNumber);
- SubmitDataScouting.addRound(builder, this.round);
+ SubmitDataScouting.addSetNumber(builder, this.setNumber);
SubmitDataScouting.addCompLevel(builder, compLevel);
SubmitDataScouting.addMissedShotsAuto(builder, this.autoShotsMissed);
SubmitDataScouting.addUpperGoalAuto(builder, this.autoUpperShotsMade);
diff --git a/scouting/www/entry/entry.ng.html b/scouting/www/entry/entry.ng.html
index 46e5989..6dab39b 100644
--- a/scouting/www/entry/entry.ng.html
+++ b/scouting/www/entry/entry.ng.html
@@ -29,11 +29,17 @@
/>
</div>
<div class="row">
- <label for="round">Round</label>
- <input [(ngModel)]="round" type="number" id="round" min="1" max="10" />
+ <label for="set_number">Set Number</label>
+ <input
+ [(ngModel)]="setNumber"
+ type="number"
+ id="set_number"
+ min="1"
+ max="10"
+ />
</div>
<div class="row">
- <label for="comp_level">Round</label>
+ <label for="comp_level">Comp Level</label>
<select [(ngModel)]="compLevel" type="number" id="comp_level">
<option *ngFor="let level of COMP_LEVELS" [ngValue]="level">
{{COMP_LEVEL_LABELS[level]}}
@@ -217,10 +223,10 @@
[(ngModel)]="level"
type="radio"
name="level"
- id="transversal"
- [value]="ClimbLevel.Transversal"
+ id="traversal"
+ [value]="ClimbLevel.Traversal"
/>
- <label for="transversal">Transversal</label>
+ <label for="traversal">Traversal</label>
<br />
<input
[(ngModel)]="level"
@@ -360,7 +366,7 @@
<ul>
<li>Match number: {{matchNumber}}</li>
<li>Team number: {{teamNumber}}</li>
- <li>Round: {{round}}</li>
+ <li>SetNumber: {{setNumber}}</li>
<li>Comp Level: {{COMP_LEVEL_LABELS[compLevel]}}</li>
</ul>
diff --git a/scouting/www/match_list/match_list.component.ts b/scouting/www/match_list/match_list.component.ts
index 1dc1f49..ab54e3e 100644
--- a/scouting/www/match_list/match_list.component.ts
+++ b/scouting/www/match_list/match_list.component.ts
@@ -12,7 +12,7 @@
type TeamInMatch = {
teamNumber: number;
matchNumber: number;
- round: number;
+ setNumber: number;
compLevel: string;
};
@@ -62,9 +62,9 @@
}
displayMatchNumber(match: Match): string {
- // Only display the set number ("round") for eliminations matches.
- const round = match.compLevel() == 'qm' ? '' : `${match.round()}`;
- return `${this.matchType(match)} ${round} Match ${match.matchNumber()}`;
+ // Only display the set number for eliminations matches.
+ const setNumber = match.compLevel() == 'qm' ? '' : `${match.setNumber()}`;
+ return `${this.matchType(match)} ${setNumber} Match ${match.matchNumber()}`;
}
ngOnInit() {
diff --git a/scouting/www/match_list/match_list.ng.html b/scouting/www/match_list/match_list.ng.html
index b2e66f8..e890faf 100644
--- a/scouting/www/match_list/match_list.ng.html
+++ b/scouting/www/match_list/match_list.ng.html
@@ -13,7 +13,7 @@
(click)="setTeamInMatch({
teamNumber: team.teamNumber,
matchNumber: match.matchNumber(),
- round: match.round(),
+ setNumber: match.setNumber(),
compLevel: match.compLevel()
})"
class="match-item"
diff --git a/scouting/www/rpc/match_list_requestor.ts b/scouting/www/rpc/match_list_requestor.ts
index ddbb221..f97b1ca 100644
--- a/scouting/www/rpc/match_list_requestor.ts
+++ b/scouting/www/rpc/match_list_requestor.ts
@@ -56,15 +56,15 @@
if (aMatchNumber > bMatchNumber) {
return 1;
}
- // Lastly, sort by round. I.e. Semi Final 1 Match 1 happens first. Then
- // comes Semi Final 2 Match 1. Then comes Semi Final 1 Match 2. Then
+ // Lastly, sort by set number. I.e. Semi Final 1 Match 1 happens first.
+ // Then comes Semi Final 2 Match 1. Then comes Semi Final 1 Match 2. Then
// Semi Final 2 Match 2.
- const aRound = a.round();
- const bRound = b.round();
- if (aRound < bRound) {
+ const aSetNumber = a.setNumber();
+ const bSetNumber = b.setNumber();
+ if (aSetNumber < bSetNumber) {
return -1;
}
- if (aRound > bRound) {
+ if (aSetNumber > bSetNumber) {
return 1;
}
return 0;