diff --git a/accounts/__pycache__/__init__.cpython-310.pyc b/accounts/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..fe9b73e Binary files /dev/null and b/accounts/__pycache__/__init__.cpython-310.pyc differ diff --git a/accounts/__pycache__/admin.cpython-310.pyc b/accounts/__pycache__/admin.cpython-310.pyc new file mode 100644 index 0000000..b52726f Binary files /dev/null and b/accounts/__pycache__/admin.cpython-310.pyc differ diff --git a/accounts/__pycache__/apps.cpython-310.pyc b/accounts/__pycache__/apps.cpython-310.pyc new file mode 100644 index 0000000..f4772eb Binary files /dev/null and b/accounts/__pycache__/apps.cpython-310.pyc differ diff --git a/accounts/__pycache__/models.cpython-310.pyc b/accounts/__pycache__/models.cpython-310.pyc new file mode 100644 index 0000000..ae90c52 Binary files /dev/null and b/accounts/__pycache__/models.cpython-310.pyc differ diff --git a/accounts/migrations/__pycache__/0001_initial.cpython-310.pyc b/accounts/migrations/__pycache__/0001_initial.cpython-310.pyc new file mode 100644 index 0000000..90898e1 Binary files /dev/null and b/accounts/migrations/__pycache__/0001_initial.cpython-310.pyc differ diff --git a/accounts/migrations/__pycache__/__init__.cpython-310.pyc b/accounts/migrations/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..7d0eafc Binary files /dev/null and b/accounts/migrations/__pycache__/__init__.cpython-310.pyc differ diff --git a/core/__pycache__/__init__.cpython-310.pyc b/core/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..e0b16af Binary files /dev/null and b/core/__pycache__/__init__.cpython-310.pyc differ diff --git a/core/__pycache__/admin.cpython-310.pyc b/core/__pycache__/admin.cpython-310.pyc new file mode 100644 index 0000000..cee5a57 Binary files /dev/null and b/core/__pycache__/admin.cpython-310.pyc differ diff --git a/core/__pycache__/apps.cpython-310.pyc b/core/__pycache__/apps.cpython-310.pyc new file mode 100644 index 0000000..55ea8ca Binary files /dev/null and b/core/__pycache__/apps.cpython-310.pyc differ diff --git a/core/__pycache__/models.cpython-310.pyc b/core/__pycache__/models.cpython-310.pyc new file mode 100644 index 0000000..4e7a95b Binary files /dev/null and b/core/__pycache__/models.cpython-310.pyc differ diff --git a/core/migrations/0008_remove_player_teams.py b/core/migrations/0008_remove_player_teams.py new file mode 100644 index 0000000..910e5e9 --- /dev/null +++ b/core/migrations/0008_remove_player_teams.py @@ -0,0 +1,17 @@ +# Generated by Django 4.0.1 on 2022-05-23 20:08 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0007_penelty_peneltylength_peneltytype'), + ] + + operations = [ + migrations.RemoveField( + model_name='player', + name='teams', + ), + ] diff --git a/core/migrations/0009_teamplayer.py b/core/migrations/0009_teamplayer.py new file mode 100644 index 0000000..30e7295 --- /dev/null +++ b/core/migrations/0009_teamplayer.py @@ -0,0 +1,23 @@ +# Generated by Django 4.0.1 on 2022-05-23 20:10 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0008_remove_player_teams'), + ] + + operations = [ + migrations.CreateModel( + name='TeamPlayer', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('number', models.IntegerField()), + ('player', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='teams', to='core.player')), + ('team', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='players', to='core.team')), + ], + ), + ] diff --git a/core/migrations/0010_alter_goal_assists_alter_goal_goalie_and_more.py b/core/migrations/0010_alter_goal_assists_alter_goal_goalie_and_more.py new file mode 100644 index 0000000..81903b5 --- /dev/null +++ b/core/migrations/0010_alter_goal_assists_alter_goal_goalie_and_more.py @@ -0,0 +1,59 @@ +# Generated by Django 4.0.1 on 2022-05-23 20:11 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0009_teamplayer'), + ] + + operations = [ + migrations.AlterField( + model_name='goal', + name='assists', + field=models.ManyToManyField(blank=True, related_name='assists', to='core.TeamPlayer'), + ), + migrations.AlterField( + model_name='goal', + name='goalie', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='goals_on', to='core.teamplayer'), + ), + migrations.AlterField( + model_name='goal', + name='scorer', + field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='goals', to='core.teamplayer'), + ), + migrations.AlterField( + model_name='penelty', + name='drawn_by', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='penelties_drawn', to='core.teamplayer'), + ), + migrations.AlterField( + model_name='penelty', + name='on_ind', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='penelties_given', to='core.teamplayer'), + ), + migrations.AlterField( + model_name='penelty', + name='served_by', + field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='penelties_served', to='core.teamplayer'), + ), + migrations.AlterField( + model_name='shot', + name='blocker', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='blocked_shots', to='core.teamplayer'), + ), + migrations.AlterField( + model_name='shot', + name='goalie', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='shots_on', to='core.teamplayer'), + ), + migrations.AlterField( + model_name='shot', + name='shooter', + field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='shots', to='core.teamplayer'), + ), + ] diff --git a/core/migrations/__pycache__/0001_initial.cpython-310.pyc b/core/migrations/__pycache__/0001_initial.cpython-310.pyc new file mode 100644 index 0000000..ac196c4 Binary files /dev/null and b/core/migrations/__pycache__/0001_initial.cpython-310.pyc differ diff --git a/core/migrations/__pycache__/0002_auto_20220504_2124.cpython-310.pyc b/core/migrations/__pycache__/0002_auto_20220504_2124.cpython-310.pyc new file mode 100644 index 0000000..d9a515f Binary files /dev/null and b/core/migrations/__pycache__/0002_auto_20220504_2124.cpython-310.pyc differ diff --git a/core/migrations/__pycache__/0003_auto_20220504_2125.cpython-310.pyc b/core/migrations/__pycache__/0003_auto_20220504_2125.cpython-310.pyc new file mode 100644 index 0000000..95dd5f4 Binary files /dev/null and b/core/migrations/__pycache__/0003_auto_20220504_2125.cpython-310.pyc differ diff --git a/core/migrations/__pycache__/0004_rename_shot_shotongoal.cpython-310.pyc b/core/migrations/__pycache__/0004_rename_shot_shotongoal.cpython-310.pyc new file mode 100644 index 0000000..ba3ca3d Binary files /dev/null and b/core/migrations/__pycache__/0004_rename_shot_shotongoal.cpython-310.pyc differ diff --git a/core/migrations/__pycache__/0005_rename_shotongoal_shot.cpython-310.pyc b/core/migrations/__pycache__/0005_rename_shotongoal_shot.cpython-310.pyc new file mode 100644 index 0000000..e1685b7 Binary files /dev/null and b/core/migrations/__pycache__/0005_rename_shotongoal_shot.cpython-310.pyc differ diff --git a/core/migrations/__pycache__/0006_auto_20220504_2306.cpython-310.pyc b/core/migrations/__pycache__/0006_auto_20220504_2306.cpython-310.pyc new file mode 100644 index 0000000..ef19c74 Binary files /dev/null and b/core/migrations/__pycache__/0006_auto_20220504_2306.cpython-310.pyc differ diff --git a/core/migrations/__pycache__/0007_penelty_peneltylength_peneltytype.cpython-310.pyc b/core/migrations/__pycache__/0007_penelty_peneltylength_peneltytype.cpython-310.pyc new file mode 100644 index 0000000..e883177 Binary files /dev/null and b/core/migrations/__pycache__/0007_penelty_peneltylength_peneltytype.cpython-310.pyc differ diff --git a/core/migrations/__pycache__/0008_remove_player_teams.cpython-310.pyc b/core/migrations/__pycache__/0008_remove_player_teams.cpython-310.pyc new file mode 100644 index 0000000..08c2a2b Binary files /dev/null and b/core/migrations/__pycache__/0008_remove_player_teams.cpython-310.pyc differ diff --git a/core/migrations/__pycache__/0009_teamplayer.cpython-310.pyc b/core/migrations/__pycache__/0009_teamplayer.cpython-310.pyc new file mode 100644 index 0000000..41adc6c Binary files /dev/null and b/core/migrations/__pycache__/0009_teamplayer.cpython-310.pyc differ diff --git a/core/migrations/__pycache__/0010_alter_goal_assists_alter_goal_goalie_and_more.cpython-310.pyc b/core/migrations/__pycache__/0010_alter_goal_assists_alter_goal_goalie_and_more.cpython-310.pyc new file mode 100644 index 0000000..f74a009 Binary files /dev/null and b/core/migrations/__pycache__/0010_alter_goal_assists_alter_goal_goalie_and_more.cpython-310.pyc differ diff --git a/core/migrations/__pycache__/__init__.cpython-310.pyc b/core/migrations/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..8cf2d5e Binary files /dev/null and b/core/migrations/__pycache__/__init__.cpython-310.pyc differ diff --git a/core/models.py b/core/models.py index 9cc6e9e..1309c1a 100644 --- a/core/models.py +++ b/core/models.py @@ -18,7 +18,11 @@ class Player(models.Model): first_name = models.CharField(max_length=32, blank=True, null=False) last_name = models.CharField(max_length=32, blank=False, null=False) middle_names = models.CharField(max_length=64, blank=True, null=False) - teams = models.ManyToManyField(Team, related_name="players", blank=True) + +class TeamPlayer(models.Model): + team = models.ForeignKey(Team, related_name="players", on_delete=models.PROTECT, blank=False, null=False) + player = models.ForeignKey(Player, related_name="teams", on_delete=models.PROTECT, blank=False, null=False) + number = models.IntegerField(blank=False, null=False) class Game(models.Model): _name = models.CharField(max_length=64, blank=True, null=True) @@ -45,11 +49,11 @@ PERIOD_CHOICES = [ ] class Goal(models.Model): - scorer = models.ForeignKey(Player, related_name="goals", on_delete=models.PROTECT, blank=False, null=False) + scorer = models.ForeignKey(TeamPlayer, related_name="goals", on_delete=models.PROTECT, blank=False, null=False) game = models.ForeignKey(Game, related_name="goals", on_delete=models.PROTECT, blank=False, null=False) # NOTE: may be null if empty net - goalie = models.ForeignKey(Player, related_name="goals_on", on_delete=models.PROTECT, blank=True, null=True) - assists = models.ManyToManyField(Player, related_name="assists", blank=True) + goalie = models.ForeignKey(TeamPlayer, related_name="goals_on", on_delete=models.PROTECT, blank=True, null=True) + assists = models.ManyToManyField(TeamPlayer, related_name="assists", blank=True) period = models.IntegerField(choices=PERIOD_CHOICES, blank=False, null=False, default=1) time = models.DurationField(blank=True, null=True) # TODO allow no time column during SO @@ -62,28 +66,29 @@ class Shot(models.Model): ] # NOTE: default shot type is "on goal" shot_type = models.CharField(max_length=1, choices=SHOT_TYPE_CHOICES, blank=False, null=False, default="O") - shooter = models.ForeignKey(Player, related_name="shots", on_delete=models.PROTECT, blank=False, null=False) + shooter = models.ForeignKey(TeamPlayer, related_name="shots", on_delete=models.PROTECT, blank=False, null=False) game = models.ForeignKey(Game, related_name="shots", on_delete=models.PROTECT, blank=False, null=False) period = models.IntegerField(choices=PERIOD_CHOICES, blank=False, null=False, default=1) time = models.DurationField(blank=True, null=True) # NOTE: the goalie the shot was on; note that only player.shots_on.filter(shot_type="O") count as saved goals # NOTE: may be blank if an attempt is made on an open net - goalie = models.ForeignKey(Player, related_name="shots_on", on_delete=models.PROTECT, blank=True, null=True) + goalie = models.ForeignKey(TeamPlayer, related_name="shots_on", on_delete=models.PROTECT, blank=True, null=True) # TODO allow no time column during SO # this is only set in the case of a shot_type="B" for blocked - blocker = models.ForeignKey(Player, related_name="blocked_shots", on_delete=models.PROTECT, blank=True, null=True) + blocker = models.ForeignKey(TeamPlayer, related_name="blocked_shots", on_delete=models.PROTECT, blank=True, null=True) # NOTE: game misconducts will eject a player from the game, but the penelty may be served by another player class PeneltyLength(models.Model): PENELTY_LENGTH_CHOICES = [ ("M", "Minor"), # 2 mins in NHL + ("MR", "Minor (running)"), # 3 minutes for running clock compensation ("D", "Double Minor"), # 4 mins in NHL ("J", "Major"), # 5 mins in NHL ("C", "Misconduct"), # 10 mins in NHL ("G", "Game Misconduct"), # ejection from game in NHL ("S", "Shot"), # penelty shot ] - name = models.CharField(max_length=1, choices=PENELTY_LENGTH_CHOICES, blank=False, null=False) + name = models.CharField(max_length=2, choices=PENELTY_LENGTH_CHOICES, blank=False, null=False) length = models.DurationField(blank=False, null=False) # NOTE: i.e.: "Minor (2:00)", or "Misconduct (10:00")", or "Shot" @@ -123,12 +128,12 @@ class Penelty(models.Model): penelty_length = models.ForeignKey(PeneltyLength, related_name="given_out", on_delete=models.PROTECT, blank=False, null=False) game = models.ForeignKey(Game, related_name="penelties", on_delete=models.PROTECT, blank=False, null=False) # NOTE: may be none if team penelty like too many men - on_ind = models.ForeignKey(Player, related_name="penelties_given", on_delete=models.PROTECT, blank=True, null=True) + on_ind = models.ForeignKey(TeamPlayer, related_name="penelties_given", on_delete=models.PROTECT, blank=True, null=True) # NOTE: may be noen if individual penelty on_team = models.ForeignKey(Team, related_name="penelties_given", on_delete=models.PROTECT, blank=True, null=True) # NOTE: some player will ALWAYS serve the penelty - served_by = models.ForeignKey(Player, related_name="penelties_served", on_delete=models.PROTECT, blank=False, null=False) + served_by = models.ForeignKey(TeamPlayer, related_name="penelties_served", on_delete=models.PROTECT, blank=False, null=False) # NOTE: an indiviaul will not be named in the case of a delay of game; some misconducts, like swearing at a referee also would not list a "drawn_by" - drawn_by = models.ForeignKey(Player, related_name="penelties_drawn", on_delete=models.PROTECT, blank=True, null=True) + drawn_by = models.ForeignKey(TeamPlayer, related_name="penelties_drawn", on_delete=models.PROTECT, blank=True, null=True) period = models.IntegerField(choices=PERIOD_CHOICES, blank=False, null=False) time = models.DurationField(blank=False, null=False) diff --git a/csvs/children_and_youth/game_2/periods_game_one_children.csv b/csvs/children_and_youth/game_2/periods_game_one_children.csv new file mode 100644 index 0000000..6420ccd --- /dev/null +++ b/csvs/children_and_youth/game_2/periods_game_one_children.csv @@ -0,0 +1,3 @@ +period,time,timestamp_start,timestamp_end +1,15:00,7:36,28:29 +2,18:20,29:14,47:34 diff --git a/csvs/children_and_youth/game_2/shots.csv b/csvs/children_and_youth/game_2/shots.csv new file mode 100644 index 0000000..e69de29 diff --git a/csvs/children_and_youth/game_2/shots_game_one_children.csv b/csvs/children_and_youth/game_2/shots_game_one_children.csv new file mode 100644 index 0000000..c0bfef1 --- /dev/null +++ b/csvs/children_and_youth/game_2/shots_game_one_children.csv @@ -0,0 +1,33 @@ +goal,name,period,time,assists,goalie,video_timestamp +0,#16 Yellow,1,14:22,"",???,08:17 +1,#9 Yellow,1,10:40,"",???,14:31 +0,#9 Yellow,1,9:07,"",???,16:25 +0,#24 Yellow,1,6:01,"",???,21:11 +0,#9 Yellow,1,5:11,"",???,22:01 +0,#6 Yellow,1,4:48,"",???,22:24 +0,#54 Black,1,3:59,"",???,23:53 +0,#54 Black,1,2:49,"",???,25:04 +0,#9 Yellow,1,2:02,"",???,26:21 +0,#9 Yellow,1,0:46,"",???,27:36 +0,#24 Yellow,1,0:42,"",???,27:39 +0,#16 Yellow,2,18:08,"",???,29:26 +0,#7 Yellow,2,16:34,"",???,31:00 +0,#9 Yellow,2,15:04,"",???,32:30 +0,#9 Yellow,2,14:54,"",???,32:37 +0,#9 Yellow,2,14:29,"",???,33:05 +0,#9 Yellow,2,14:22,"",???,33:12 +0,#9 Yellow,2,14:12,"",???,33:22 +0,#7 Yellow,2,11:32,"",???,36:02 +0,#7 Yellow,2,11:21,"",???,36:13 +1,#7 Yellow,2,11:12,"",???,36:22 +0,#7 Yellow,2,10:29,"",???,37:05 +0,#7 Yellow,2,09:37,"",???,37:57 +0,#4 Yellow,2,09:35,"",???,37:59 +0,#9 Yellow,2,07:25,"",???,40:09 +0,#9 Yellow,2,06:46,"",???,40:48 +0,#7 Yellow,2,05:06,"",???,42:28 +0,#28 Black,2,03:11,"",???,44:23 +0,#9 Yellow,2,00:57,"",???,46:37 +0,#24 Yellow,2,00:28,"",???,47:06 +0,#24 Yellow,2,00:26,"",???,47:08 +0,#24 Yellow,2,00:24,"",???,47:10 diff --git a/csvs/children_and_youth/game_3/periods_game_one_children.csv b/csvs/children_and_youth/game_3/periods_game_one_children.csv new file mode 100644 index 0000000..98129d4 --- /dev/null +++ b/csvs/children_and_youth/game_3/periods_game_one_children.csv @@ -0,0 +1,2 @@ +period,time,timestamp_start,timestamp_end +1,38:00,0:47,39:36 diff --git a/csvs/children_and_youth/game_3/shots_game_three_children.csv b/csvs/children_and_youth/game_3/shots_game_three_children.csv new file mode 100644 index 0000000..5fb2d16 --- /dev/null +++ b/csvs/children_and_youth/game_3/shots_game_three_children.csv @@ -0,0 +1,20 @@ +goal,name,period,time,assists,goalie,video_timestamp +1,Cassandra Ruttle,1,36:21,"Marie-Ellen",Catharine,2:50 +0,#6 Black,1,33:43,"",Catharine,5:29 +0,#28 Black,1,31:17,"",Catharine,7:53 +1,Marie-Ellen McKecken,30:18,"#10 Black",Catharine,8:47 +0,Sophie,28:39,"",Catharine,10:33 +0,Cassandra,25:43,"",Catharine,13:29 +0,Cassandra,19:41,"",Joseph Robinson,19:30 +1,Jack Lowe,16:26,"",Catharine,16:26 +0,Eli,13:37,"",Joseph Robinson,25:34 +0,Vilot,13:35,"",Rory McDonald,25:36 +1,Cassandra,13:33,"",Rory McDonald,25:39 +0,#10 Black,12:23,"",Rory McDonald,26:49 +0,#12 Black,29:13,"",Rory McDonald,29:13 +1,Cassandra,7:51,"Marie-Ellen",Rory McDonald,31:20 +0,Cassandra,5:05,"",Rory McDonald,34:06 +0,Marie-Ellen,4:19,"",Rory McDonald,34:52 +0,Cassandra,3:37,"",Rory McDonald,35:34 +1,Taylor Wood,2:28,"",Catharine,37:04 +1,Kaden,0:31,"Stark",Catharine,39:04 diff --git a/csvs/children_and_youth/game_4/periods_game_four_children.csv b/csvs/children_and_youth/game_4/periods_game_four_children.csv new file mode 100644 index 0000000..2536b1b --- /dev/null +++ b/csvs/children_and_youth/game_4/periods_game_four_children.csv @@ -0,0 +1,2 @@ +period,time,timestamp_start,timestamp_end +1,42:00,11:10,54:07 diff --git a/csvs/children_and_youth/game_4/shots_game_four_children.csv b/csvs/children_and_youth/game_4/shots_game_four_children.csv new file mode 100644 index 0000000..0c9841c --- /dev/null +++ b/csvs/children_and_youth/game_4/shots_game_four_children.csv @@ -0,0 +1,38 @@ +goal,name,period,time,assists,goalie,video_timestamp +0,Mason,1,41:22,"",MacDonald,11:49 +0,Mason,1,40:03,"",MacDonald,13:08 +0,Gabby,1,37:12,"",MacDonald,15:59 +0,Wood,1,36:08,"",MacDonald,17:03 +0,Aiden,1,33:16,"",MacDonald,19:55 +1,Mason,1,33:13,"",MacDonald,19:58 +0,Aiden,1,32:32,"",MacDonald,20:38 +0,#4 Yellow,1,32:29,"",MacDonald,20:42 +0,Gabby,1,30:48,"",MacDonald,22:23 +0,Gabby,1,29:40,"",MacDonald,23:31 +0,Mason,1,28:29,"",MacDonald,25:29 +1,Gabby,1,26:11,"",MacDonald,27:56 +0,Gabby,1,25:01,"",MacDonald,29:07 +1,Wood,1,24:57,"",MacDonald,29:11 +0,Mason,1,21:18,"",MacDonald,32:30 +1,Gabby,1,19:10,"",MacDonald,34:56 +1,Mason,1,16:46,"",MacDonald,37:22 +0,Aiden,1,16:10,"",MacDonald,37:58 +0,Mason,1,14:51,"",MacDOnald,39:17 +1,Wood,1,13:35,"",MacDonald,40:33 +0,Gabby,1,12:49,"",MacDonald,41:19 +0,Wood,1,12:34,"",MacDonald,41:25 +0,Aiden,1,10:52,"",MacDonald,43:16 +0,Mason,1,10:32,"",MacDonald,43:36 +1,Aiden,1,10:31,"",MacDonald,43:37 +0,Gabby,1,8:07,"",MacDonald,46:01 +0,Wood,1,8:01,"",MacDOnald,46:07 +0,Wood,1,7:23,"",MacDonald,46:46 +1,Kaden,1,6:47,"",MacDonald,47:21 +0,Gabby,1,6:17,"",MacDonald,47:52 +1,Mason,1,5:07,"",MacDonald,49:01 +1,Aiden,1,4:21,"Mason",MacDonald,49:47 +0,Aiden,1,3:36,"",MacDonald,50:32 +0,Mason,1,3:06,"",MacDonald,51:03 +1,Gabby,1,2:24,"",MacDonald,51:44 +1,Gabby,1,1:15,"",MacDonald,52:53 +0,Gabby,1,0:11,"",MacDonald,53:57 diff --git a/csvs/children_and_youth/teams.csv b/csvs/children_and_youth/teams.csv new file mode 100644 index 0000000..7f282c9 --- /dev/null +++ b/csvs/children_and_youth/teams.csv @@ -0,0 +1,11 @@ +player_name,season,division,team,number,position +Eli,2022 Canadian National Blind Hockey Tournament,Children And Youth,Black,28,? +Dylan Wood,2022 Canadian National Blind Hockey Tournament,Children And Youth,Yellow,24,? +Kaden Benoui,2022 Canadian National Blind Hockey Tournament,Children And Youth,Yellow,3,? +Kaden Benoui,2022 Canadian National Blind Hockey Tournament,Children And Youth,Black,17,? +### WTF? How tf am I supposed to handle that lol? +Cassandra Ruttle,2022 Canadian National Blind Hockey Tournament,Children And Youth,Black,10,? +Marie-Ellen,2022 Canadian National Blind Hockey Tournament,Children And Youth,Black,24,? +Mason Yolken,2022 Canadian National Blind Hockey Tournament,Children And Youth,Yellow,7,? +Gabby Alvez,2022 Canadian National Blind Hockey Tournament,Children And Youth,Yellow,9,? +Aiden ???,2022 Canadian National Blind Hockey Tournament,Children And Youth,Yellow,16,? diff --git a/csvs/open/game_1/penelties.csv b/csvs/open/game_1/penelties.csv new file mode 100644 index 0000000..2b40a28 --- /dev/null +++ b/csvs/open/game_1/penelties.csv @@ -0,0 +1,5 @@ +by,served_by,on,period,time,video_timestamp,type,length +Fornasier,Fornasier,Yuha,1,16:23,10:50,O,MR +# 17 Ice Owls on #82 Eclipse +Bentz,Bentz,?,2,19:27,30:30,T,MR +Bentz,Bentz,?,2,7:07,42:49,I,MR diff --git a/csvs/open/game_1/periods.csv b/csvs/open/game_1/periods.csv new file mode 100644 index 0000000..06bf250 --- /dev/null +++ b/csvs/open/game_1/periods.csv @@ -0,0 +1,4 @@ +period,time,timestamp_start,timestamp_end +1,20:00,07:09,27:10 +2,20:00,29:54,51:45 +3,20:00,1:05:56,1:27:05 diff --git a/csvs/open/game_1/shots_game_one_open.csv b/csvs/open/game_1/shots_game_one_open.csv new file mode 100644 index 0000000..89919c6 --- /dev/null +++ b/csvs/open/game_1/shots_game_one_open.csv @@ -0,0 +1,39 @@ +goal,name,period,time,assists,goalie,video_timestamp +0,Yuha,1,19:30,"",Pye,07:43 +0,Fitzpatrick,1,19:29,"",Pye,07:44 +0,Lindberg,1,18:25,"",Cabral,08:48 +0,Amanda,1,14:22,"",Pye,12:52 +0,Leduc,1,12:02,"",Pye,15:11 +0,#11 Eclipse,1,11:14,"",Cabral,15:59 +0,Callagy,1,9:03,"Curtis",Cabral,18:11 +1,Yuha,1,5:06,"DeMontis",Pye,22:07 +1,Sean,1,4:04,"Leduc",Pye,23:09 +0,Yuha,1,2:16,"",Pye,24:57 +0,Amanda,1,1:47,"",Pye,25:27 +0,Lions,1,1:10,"",Cabral,26:03 +0,#11 Eclipse,1,1:09,"",Cabral,26:04 +0,Gobeil,2,18:14,"",Cabral,31:42 +0,Gobeil,2,17:57,"",Cabral,31:59 +0,Gobeil,2,17:31,"",Cabral,32:25 +1,Fornasier,2,14:41,"Lindberg",Cabral,35:16 +0,Arndt,2,12:03,"",Pye,37:53 +0,Fornasier,2,11:22,"",Cabral,38:35 +0,DeMontis,2,10:34,"",Pye,39:23 +0,#8,2,9:49,"",Cabral,40:07 +0,#62,2,9:45,"",Cabral,40:11 +1,Yuha,2,3:01,"DeMontis",Mainella,46:55 +0,Fitzpatrick,2,0:18,"",Mainella,50:52 +1,Yuha,3,19:30,"Fitzpatrick,DeMontis",Mainella,1:06:28 +0,Fornasier,3,16:42,"",Cabral,1:09:16 +0,Callagy,3,15:55,"",Cabral,1:10:03 +0,Fitzpatrick,3,13:15,"",Mainella,1:12:43 +0,Fornasier,3,12:43,"",Cabral,1:13:15 +0,Lindberg,3,12:01,"",Cabral,1:13:57 +1,DeMontis,3,10:49,"Yuha",Mainella,1:15:09 +0,Leduc,3,9:21,"",Mainella,1:16:37 +0,Leduc,3,9:22,"",Mainella,1:16:38 +0,Lindberg,3,8:12,"",Cabral,1:17:47 +1,Gobeil,3,0:59,"Curtis",Cabral,1:24:58 +0,Fornasier,3,0:37,"",Cabral,1:26:28 + + diff --git a/csvs/open/teams.csv b/csvs/open/teams.csv index 70f980d..b3a1bc5 100644 --- a/csvs/open/teams.csv +++ b/csvs/open/teams.csv @@ -1,26 +1,26 @@ -player_name,season,division,team,position -Roland Arndt,2022 Canadian National Blind Hockey Tournament,Open Divison,Ice Owls,? -Mark Bentz,2022 Canadian National Blind Hockey Tournament,Open Divison,Ice Owls,? -Mark DeMontis,2022 Canadian National Blind Hockey Tournament,Open Divison,Ice Owls,? +player_name,season,division,team,number,position +Roland Arndt,2022 Canadian National Blind Hockey Tournament,Open Divison,Ice Owls,12,? +Mark Bentz,2022 Canadian National Blind Hockey Tournament,Open Divison,Ice Owls,17,? +Mark DeMontis,2022 Canadian National Blind Hockey Tournament,Open Divison,Ice Owls,86,? Craig Fitzpatrick,2022 Canadian National Blind Hockey Tournament,Open Divison,Ice Owls,? -Sean Heaslip,2022 Canadian National Blind Hockey Tournament,Open Divison,Ice Owls,? +Sean Heaslip,2022 Canadian National Blind Hockey Tournament,Open Divison,Ice Owls,9,? Edward Laba,2022 Canadian National Blind Hockey Tournament,Open Divison,Ice Owls,? -Hughes Leduc,2022 Canadian National Blind Hockey Tournament,Open Divison,Ice Owls,? +Hughes Leduc,2022 Canadian National Blind Hockey Tournament,Open Divison,Ice Owls,14,? Amanda Provan,2022 Canadian National Blind Hockey Tournament,Open Divison,Ice Owls,? Paul Schmold,2022 Canadian National Blind Hockey Tournament,Open Divison,Ice Owls,? Wayne St.Denis,2022 Canadian National Blind Hockey Tournament,Open Divison,Ice Owls,? Nathan Tunis,2022 Canadian National Blind Hockey Tournament,Open Divison,Ice Owls,? -Jason Yuha,2022 Canadian National Blind Hockey Tournament,Open Divison,Ice Owls,? -Joey Cabral,2022 Canadian National Blind Hockey Tournament,Open Divison,Ice Owls,G +Jason Yuha,2022 Canadian National Blind Hockey Tournament,Open Divison,Ice Owls,97,? +Joey Cabral,2022 Canadian National Blind Hockey Tournament,Open Divison,Ice Owls,1,G Paul Kerins,2022 Canadian National Blind Hockey Tournament,Open Divison,Ice Owls,H Joe McCallion,2022 Canadian National Blind Hockey Tournament,Open Divison,Ice Owls,O Robert DeMontis,2022 Canadian National Blind Hockey Tournament,Open Divison,Ice Owls,O Sylvian Audet,2022 Canadian National Blind Hockey Tournament,Open Divison,Ice Owls,O Christine Callagy,2022 Canadian National Blind Hockey Tournament,Open Divison,Eclipse,? -Joe Fornasier,2022 Canadian National Blind Hockey Tournament,Open Divison,Eclipse,? +Joe Fornasier,2022 Canadian National Blind Hockey Tournament,Open Divison,Eclipse,8,? Yan Gobeil,2022 Canadian National Blind Hockey Tournament,Open Divison,Eclipse,? Michel Lapierre,2022 Canadian National Blind Hockey Tournament,Open Divison,Eclipse,? -Tristan Lindberg,2022 Canadian National Blind Hockey Tournament,Open Divison,Eclipse,? +Tristan Lindberg,2022 Canadian National Blind Hockey Tournament,Open Divison,Eclipse,17,? Braedan Lyons,2022 Canadian National Blind Hockey Tournament,Open Divison,Eclipse,? Brian Mackie,2022 Canadian National Blind Hockey Tournament,Open Divison,Eclipse,? Meghan Mahon,2022 Canadian National Blind Hockey Tournament,Open Divison,Eclipse,? diff --git a/scripts/generate_custom_period_times.py b/scripts/generate_custom_period_times.py new file mode 100755 index 0000000..cb6bf39 --- /dev/null +++ b/scripts/generate_custom_period_times.py @@ -0,0 +1,14 @@ +#!/usr/bin/env python + +from datetime import timedelta + +def time_to_dict(time): + return {"minutes": int(time.split(":")[0]), "seconds": int(time.split(":")[1])} + +length_of_period = timedelta(**time_to_dict("18:20")) +start_of_period = timedelta(**time_to_dict("29:14")) +shot_at_timestamp = timedelta(**time_to_dict(input("Shot at: "))) +shot_at_diff = shot_at_timestamp - start_of_period +shot_at_period_time = length_of_period - shot_at_diff + +print("{}:{}".format(str(shot_at_period_time.seconds // 60).rjust(2, "0"), str(shot_at_period_time.seconds % 60).rjust(2, "0")))