Hi everyone,
I was helping out my home team (1257) with coming up with prescouting for some of our events, and to alleviate the tedium of doing so manually, I wrote this python script.
By default, it returns the best and worst four matches a team has played in the season so far, outputting only the match code via the command-line. The best / worst are calculated with total points, subtracted from fouls. This way, a team’s “best and worst” are based purely on field performance and not fouls / cards.
Dependencies
python3 (3.5 preferred)
requests
sqlite3
Code
How To Run
- To run on a specific set of teams, you can comment out the method at line 100 and uncomment the one at line 15, following the syntax specified.
- To run on all teams registered for an event thus far, simply change the TBA eventcode at line 100 from “2017cmpmo” to whatever code you want.
- To change the number of good / bad matches, simply change the number at line 5, my team tended to use 2 instead.
**
Example Run (bestWorst = 2)(2017 St. Louis Championship Teams):**
20 2017nytr_qf1m2 2017nytr_qf1m1 2017nytr_qm27 2017nysu_qm70
27 2017miwat_f1m1 2017miwat_qf4m1 2017mndu2_qm69 2017miwat_qm39
45 2017inpmh_qm58 2017inpmh_qm15 2017inwla_qm21 2017inwla_qm43
48 2017ohsp_qf4m2 2017ohsp_f1m2 2017ohsp_qm55 2017tnkn_qm8
51 2017migay_qm25 2017migay_qm60 2017migay_qm15 2017migay_qm72
67 2017miwat_qm71 2017miwat_qf1m1 2017misou_qm2 2017misou_qm23
93 2017wimi_qm75 2017wimi_qm29 2017mndu_qm78 2017mndu_qm7
103 2017paphi_sf2m2 2017paphi_f1m2 2017pahat_qm11 2017pahat_qm14
111 2017ilpe_qm48 2017ilpe_qm43 2017ilpe_qf1m1 2017ilpe_qm40
126 2017ripro_qm66 2017ripro_qf2m2 2017mawor_qm2 2017mawor_qm17
156 2017paca_qf2m3 2017paca_qm43 2017paca_qm1 2017paca_qm61
190 2017ripro_qf2m2 2017ripro_qm17 2017week0_qm8 2017week0_qm4
191 2017nyro_qf3m2 2017nyro_f1m2 2017nyro_qm12 2017nyro_qm8
222 2017njfla_qm56 2017njfla_qm73 2017njfla_qm10 2017njfla_sf1m2
236 2017ctwat_sf2m2 2017ctwat_f1m2 2017ctwat_qm31 2017ctwat_qm60
250 2017nytr_qf4m1 2017nysu_qm43 2017nytr_qm62 2017nytr_qm34
254 2017casf_sf1m1 2017casf_qf1m2 2017casf_qm18 2017casf_qm40
271 2017nyro_qf1m1 2017nyro_f1m2 2017nyro_qm5 2017nyro_qm12
333 2017nytr_f1m2 2017nytr_qf2m2 2017nytr_qm60 2017nytr_qm10
340 2017nyro_qm59 2017nyro_qf1m1 2017nyro_qm74 2017nyro_qm1
341 2017paphi_qm44 2017paphi_qm61 2017pahat_qm12 2017pahat_qm31
354 No matches played yet, check back later.
359 2017paca_qf1m2 2017paca_f1m1 2017scmb_qm1 2017paca_qm34
537 2017mosl_qf1m1 2017mosl_sf1m2 2017mosl_qm10 2017mosl_qm81
597 2017calb_qf1m2 2017calb_qf1m1 2017calb_qm36 2017calb_qm29
677 No matches played yet, check back later.
694 2017flwp_qm56 2017flwp_qm41 2017flwp_qm36 2017flwp_qm2
876 2017iacf_qf1m2 2017mndu2_sf1m1 2017mndu2_qm31 2017mndu2_qm58
935 2017mokc_qf3m2 2017mokc_qf3m1 2017mokc_sf2m3 2017txlu_qm45
1086 2017vagle_qm55 2017vabla_f1m3 2017vabla_qm22 2017vabla_qm28
1114 2017onwat_f1m3 2017onwat_qf1m1 2017onto1_qm3 2017onto1_qm22
1288 2017mosl_qf3m2 2017mosl_qf3m1 2017mosl_f1m2 2017mosl_qm1
1511 2017nyro_qf2m2 2017nyro_sf1m2 2017nyro_qm30 2017nyro_qm21
1676 2017njbri_qm39 2017njbri_qm61 2017vabla_qm2 2017vabla_qm60
1706 2017mosl_qf1m1 2017mosl_sf1m2 2017alhu_qm57 2017mosl_qm6
1710 2017mokc_qf3m2 2017mokc_qf3m1 2017mokc_sf2m3 2017mokc_qm34
1714 2017wimi_qf4m1 2017wimi_qm83 2017mndu_qm53 2017wimi_qm47
1730 2017mokc_qm26 2017lake_qf3m1 2017lake_qm33 2017lake_qm27
1732 2017wimi_qf2m1 2017mosl_qf1m1 2017mosl_qm1 2017mosl_qm30
1810 2017mokc_qm26 2017mokc_qm36 2017mokc_qm14 2017mokc_qm43
1816 2017mndu_qm83 2017mndu_qm57 2017mndu_qm19 2017mndu_qm70
1880 2017nysu_qf3m1 2017nysu_qm68 2017nysu_qm3 2017nysu_qm43
1939 2017mosl_qf3m2 2017mosl_qm75 2017mosl_qm50 2017mosl_f1m2
1987 2017mokc_f1m2 2017iacf_sf2m5 2017mokc_qm28 2017iacf_qm32
2039 2017ilpe_qm66 2017ilpe_qm2 2017ilpe_qm45 2017ilpe_qm40
2052 2017mndu_qf1m3 2017mndu_f1m3 2017mndu_qm36 2017mndu_f1m2
2056 2017onwat_f1m3 2017onwat_qf1m1 2017onwat_qm18 2017onwat_qm7
2068 2017mdedg_qm73 2017mdedg_qm11 2017mdedg_qm22 2017vahay_qm12
2164 2017mokc_qf4m2 2017mokc_qf4m3 2017txlu_qm4 2017txlu_qm31
2169 2017ilpe_qf3m3 2017ilpe_qm36 2017ilpe_f1m1 2017ilpe_qm18
2220 2017ilpe_qf1m2 2017ilpe_sf1m1 2017ilpe_qm13 2017ilpe_qm3
2252 2017paca_qf1m2 2017paca_f1m1 2017ohsp_qm23 2017ohsp_qm42
2451 2017ohsp_qf4m2 2017ohsp_f1m2 2017ohsp_qm3 2017ohsp_qm33
2481 2017ilpe_qf1m2 2017ilpe_sf1m1 2017txlu_qm36 2017txlu_sf1m1
2502 2017mndu2_qf2m2 2017mndu2_qf2m1 2017mndu2_qm35 2017mndu2_qm3
2509 2017mndu2_sf2m1 2017mndu2_sf2m2 2017mndu2_qm25 2017mndu2_qm41
2512 2017iacf_qf1m2 2017mndu2_sf1m1 2017mndu2_qm30 2017iacf_qm23
2607 2017njtab_qm3 2017njtab_qf1m2 2017pahat_qm2 2017njtab_qm49
2614 2017scmb_qf4m3 2017scmb_qf4m4 2017scmb_qm18 2017scmb_qm11
2781 No matches played yet, check back later.
2791 2017nytr_f1m2 2017nytr_qf2m2 2017nytr_qm24 2017nytr_qm18
2977 2017mndu_qm53 2017mndu_qm64 2017mndu_qm19 2017mndu_qm82
3015 2017nyro_qf3m2 2017nyro_f1m2 2017nyro_qm41 2017nyro_qm53
3044 2017nysu_qm30 2017nytr_qm40 2017nysu_qm80 2017nytr_qm43
3090 No matches played yet, check back later.
3130 2017wimi_qf1m2 2017wimi_qf1m1 2017mndu2_qm2 2017mndu2_qm12
3201 2017ohsp_f1m1 2017ohsp_qm70 2017ohsp_qm29 2017ohsp_qm79
3260 2017paca_qm56 2017paca_qm70 2017paca_qf2m3 2017ohsp_qm22
3293 2017mndu_sf2m1 2017mndu_qf3m1 2017mndu_f1m3 2017mndu_qm59
3324 2017ohsp_qm24 2017ohsp_qf3m1 2017ohsp_qm3 2017ohsp_qm68
3359 2017vapor_qf2m2 2017vapor_qf2m3 2017vabla_qm22 2017vabla_qm19
3492 2017paca_sf2m2 2017paca_sf2m1 2017paca_qm45 2017paca_qm10
3494 2017inpmh_qf2m3 2017inpmh_sf1m2 2017vabla_qm5 2017vabla_qm8
3504 2017paca_qf3m2 2017paca_qf3m1 2017paca_qf3m3 2017paca_qm49
3525 2017ripro_qm32 2017ripro_qm43 2017ctwat_qm25 2017ctwat_qm32
3755 2017mndu_sf2m1 2017mndu_qf3m1 2017mndu_qm52 2017mndu_qm82
3799 2017nyro_qf3m2 2017nyro_f1m2 2017nyro_qm30 2017nyro_qm2
3926 No matches played yet, check back later.
3954 2017paca_qf1m2 2017paca_f1m1 2017paca_qm51 2017paca_qm1
3990 2017qcmo_qf3m2 2017nytr_qf3m2 2017qcmo_sf2m1 2017qcmo_qm30
4028 2017paca_sf2m2 2017paca_sf2m1 2017paca_qm47 2017paca_qm34
4085 2017ohsp_qf4m2 2017ohsp_f1m2 2017ohsp_qm35 2017ohsp_qm67
4143 2017ilpe_qf1m2 2017ilpe_sf1m1 2017mosl_qm26 2017ilpe_qm50
4241 2017ilpe_qf3m3 2017ilpe_f1m2 2017ilpe_qm4 2017ilpe_qm27
4253 2017ausc_qm39 2017ausp_sf2m4 2017ausc_qm45 2017ausp_qm44
4481 2017flor_f1m1 2017flor_f1m2 2017flwp_qm7 2017flwp_qm34
4485 2017inpmh_qm36 2017inmis_qf1m1 2017inpmh_qm45 2017inpmh_qm6
4508 2017nytr_qf3m1 2017nytr_qm53 2017nytr_qm8 2017nytr_qm23
4522 2017okok_qf3m1 2017okok_qf3m2 2017arli_qm43 2017mokc_qm11
4539 2017wimi_qm90 2017mndu_qf1m3 2017mndu_qm70 2017wimi_qm5
4859 2017mndu2_qf2m2 2017mndu2_qm65 2017mndu2_qm3 2017mndu2_qm26
4926 2017inpmh_qf1m1 2017inpmh_qm1 2017inwla_qm21 2017inwla_qm4
4959 2017mokc_qm86 2017mokc_qf3m2 2017mokc_sf2m3 2017mokc_qm70
4961 2017miwat_qm65 2017miwat_qm9 2017miwat_qm22 2017miwat_qm5
4991 2017paca_sf2m2 2017paca_qm51 2017paca_qm10 2017paca_qm35
5123 2017nytr_qm7 2017nysu_qm33 2017nytr_qm3 2017nysu_qm2
5243 2017mdedg_qm71 2017mdedg_qm45 2017flwp_qm30 2017mdbet_qm70
5675 2017miwmi_qm20 2017miwmi_qf4m3 2017migul_qm47 2017migul_qm42
5801 2017mokc_f1m2 2017mokc_sf1m1 2017mokc_qm7 2017mokc_qm78
5847 2017ilpe_qf3m3 2017ilpe_qm6 2017ilpe_f1m1 2017ilpe_qm49
6318 2017mndu_qf2m1 2017mndu_sf1m2 2017mndu_qm29 2017mndu_qm73
6391 2017mosl_qm67 2017mosl_qm38 2017mosl_qm71 2017mosl_qm29
6419 2017mokc_qm42 2017mokc_qm84 2017mokc_qm31 2017mokc_qm15
6490 2017nyro_qf4m1 2017nyro_qm73 2017nyro_qm25 2017nyro_qm5
6613 2017mndu2_sf2m1 2017mndu2_sf2m2 2017mndu2_qm31 2017mndu2_qm41
6758 2017mndu2_qf1m2 2017mndu2_qf1m1 2017mndu2_qm30 2017mndu2_qm18
Please note that each match, each team, and each event are separate calls to The Blue Alliance, and as such, this tool should be used semi-sparingly. Otherwise, you may inadvertently make hundreds of API calls.
Good luck, and happy scouting!