ahl_scraper 0.2.0 → 0.3.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/CHANGELOG.md +70 -0
- data/Gemfile +0 -19
- data/Gemfile.lock +46 -41
- data/ahl_scraper.gemspec +15 -1
- data/lib/ahl_scraper/fetchers/game_data_fetcher.rb +1 -1
- data/lib/ahl_scraper/fetchers/player_data_fetcher.rb +1 -1
- data/lib/ahl_scraper/fetchers/player_games/data_fetcher.rb +1 -1
- data/lib/ahl_scraper/fetchers/scoreboards/data_fetcher.rb +37 -0
- data/lib/ahl_scraper/fetchers/season_type_fetcher.rb +1 -2
- data/lib/ahl_scraper/fixed_games/1001050.json +18 -18
- data/lib/ahl_scraper/fixed_games/1003351.json +2728 -0
- data/lib/ahl_scraper/fixed_games/1018774.json +4 -4
- data/lib/ahl_scraper/fixed_games/1020527.json +8 -8
- data/lib/ahl_scraper/helpers/ice_time_helper.rb +3 -1
- data/lib/ahl_scraper/helpers/period_time_helper.rb +6 -2
- data/lib/ahl_scraper/resources/game.rb +7 -5
- data/lib/ahl_scraper/resources/game_list_item.rb +13 -13
- data/lib/ahl_scraper/resources/games/goalie.rb +1 -1
- data/lib/ahl_scraper/resources/games/info.rb +1 -1
- data/lib/ahl_scraper/resources/games/penalty.rb +2 -2
- data/lib/ahl_scraper/resources/games/penalty_shot.rb +0 -5
- data/lib/ahl_scraper/resources/games/team.rb +2 -2
- data/lib/ahl_scraper/resources/goalie_game_list_item.rb +2 -1
- data/lib/ahl_scraper/resources/player.rb +2 -2
- data/lib/ahl_scraper/resources/playoff_bracket.rb +5 -5
- data/lib/ahl_scraper/resources/playoff_brackets/round.rb +1 -1
- data/lib/ahl_scraper/resources/playoff_brackets/series.rb +60 -20
- data/lib/ahl_scraper/resources/roster_player.rb +1 -1
- data/lib/ahl_scraper/resources/scoreboard.rb +147 -0
- data/lib/ahl_scraper/resources/scoreboards/team.rb +67 -0
- data/lib/ahl_scraper/resources/season.rb +13 -8
- data/lib/ahl_scraper/resources/season_list_item.rb +2 -2
- data/lib/ahl_scraper/resources/seasons/team.rb +6 -5
- data/lib/ahl_scraper/resources/skater_game_list_item.rb +2 -2
- data/lib/ahl_scraper/resources/team_game_list_item.rb +2 -3
- data/lib/ahl_scraper/resources/team_list_item.rb +1 -1
- data/lib/ahl_scraper/scoreboards.rb +15 -0
- data/lib/ahl_scraper/services/games/create_skaters_service.rb +1 -1
- data/lib/ahl_scraper/services/games/on_ice_statlines_service.rb +1 -1
- data/lib/ahl_scraper/services/games/penalty_shots_service.rb +1 -6
- data/lib/ahl_scraper/services/games/scoring_statlines_service.rb +29 -25
- data/lib/ahl_scraper/services/games/team_on_ice_goals_service.rb +1 -1
- data/lib/ahl_scraper/team_games.rb +3 -1
- data/lib/ahl_scraper/version.rb +1 -1
- data/lib/ahl_scraper.rb +2 -0
- metadata +178 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8fc138bb02a9563b2b9a4940a15dd9bd6e56f56d5b7352bddbb09fb2a63a7c0d
|
4
|
+
data.tar.gz: 4292c6ed3cd9c4da7f92aa6b861fa2d40a7cc1c933962c8c55610e34819317f0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cc5998864a75a5a351c2f42eb97066340e681024af5da5d766077dc80d581a5c767340aa9b5125d06da1e40cd615e1c7805d86a831b28f5174d3632dd6d6f14f
|
7
|
+
data.tar.gz: 8cb1e8fa0b79e50bacf1b4755120f3e41382b8f1b0fb542352af6ea744e62719b2c0b9cb821631c3efa3ffdef1491828742a519023b7eb9d300689f947a526ec
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
ruby-2.7.
|
1
|
+
ruby-2.7.3
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,75 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
+
## 0.3.2
|
4
|
+
|
5
|
+
## General
|
6
|
+
|
7
|
+
- Changed `.split` to `&.split` and use `.dig` more to not fail when fields don't exist (often on games that have not finished)
|
8
|
+
|
9
|
+
### Game::Goalie
|
10
|
+
|
11
|
+
- Fix penalty minutes not being copied to the object because of a typo
|
12
|
+
|
13
|
+
## 0.3.1
|
14
|
+
|
15
|
+
### Scoreboards
|
16
|
+
|
17
|
+
- Add new module for getting the scores seen at the top of the AHL website
|
18
|
+
- Retrieve Scoreboards based on a passed in date range
|
19
|
+
|
20
|
+
### Game
|
21
|
+
|
22
|
+
- Add postponed status to possible game statuses
|
23
|
+
|
24
|
+
## 0.3.0
|
25
|
+
|
26
|
+
### General
|
27
|
+
|
28
|
+
- Upgrade project Ruby version to `2.7.3`
|
29
|
+
- Update gem minimum version to `2.7.0`
|
30
|
+
- Use JSON override for game `1003351` where goalie boxscore stats don't match goal records (see wiki)
|
31
|
+
- Use term `handedness` for players
|
32
|
+
- Added penalty ids to JSON override games
|
33
|
+
|
34
|
+
### GameInfo
|
35
|
+
|
36
|
+
- If game has not started set status to reflect that and include start time
|
37
|
+
|
38
|
+
### Game
|
39
|
+
|
40
|
+
- Current time will check for whether a game has started so that games that haven't been played yet will return nil
|
41
|
+
|
42
|
+
### GameListItem
|
43
|
+
|
44
|
+
- Use `dig` to be less error prone
|
45
|
+
- Set status to `Not Started` if game status still shows start time
|
46
|
+
|
47
|
+
### Games::Penalty
|
48
|
+
|
49
|
+
- Add `id` field
|
50
|
+
- Add `bench?` attribute for when bench minor penalty
|
51
|
+
- Add `:penalty_shot` penalty type
|
52
|
+
|
53
|
+
### PlayoffBracket
|
54
|
+
|
55
|
+
- Hardcode wins needed for series to allow for accurate series statuses
|
56
|
+
- Revamp `active?` logic to work even for finals (which remained set to active by AHL)
|
57
|
+
- Stick with `home` and `away` teams instead of `team1` and `team2` for:
|
58
|
+
- `feeder_series1` to `home_feeder_series`
|
59
|
+
- `feeder_series2` to `away_feeder_series`
|
60
|
+
- `team1` to `home_team_id`
|
61
|
+
- `team2` to `away_team_id`
|
62
|
+
- Change `winning_team` to `winning_team_id`
|
63
|
+
- Add `wins_needed` attribute
|
64
|
+
|
65
|
+
### Game::Skater
|
66
|
+
|
67
|
+
- Use `p1_` for primary point short form instead of full words for `scoring_statline`
|
68
|
+
|
69
|
+
### Season
|
70
|
+
|
71
|
+
- Add `preseason` season type with appropriate abbreviations
|
72
|
+
|
3
73
|
## 0.2.0
|
4
74
|
|
5
75
|
### RosterPlayers
|
data/Gemfile
CHANGED
@@ -4,22 +4,3 @@ source "https://rubygems.org"
|
|
4
4
|
|
5
5
|
# Specify your gem's dependencies in ahl_scraper.gemspec
|
6
6
|
gemspec
|
7
|
-
|
8
|
-
gem "json"
|
9
|
-
gem "nokogiri"
|
10
|
-
gem "rake", "~> 12.0"
|
11
|
-
|
12
|
-
group :development do
|
13
|
-
gem "rubocop", "~> 0.89.0", require: false
|
14
|
-
gem "rubocop-performance", "~> 1.8.1", require: false
|
15
|
-
gem "solargraph"
|
16
|
-
end
|
17
|
-
|
18
|
-
group :development, :test do
|
19
|
-
gem "byebug"
|
20
|
-
gem "pry"
|
21
|
-
gem "pry-byebug"
|
22
|
-
gem "rspec", "~> 3.0"
|
23
|
-
gem "vcr"
|
24
|
-
gem "webmock", ">= 3.8.0"
|
25
|
-
end
|
data/Gemfile.lock
CHANGED
@@ -1,31 +1,37 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
ahl_scraper (0.
|
4
|
+
ahl_scraper (0.3.1)
|
5
|
+
json (~> 2.5.1)
|
6
|
+
nokogiri (~> 1.12.4)
|
7
|
+
rake (~> 13.0.0)
|
5
8
|
|
6
9
|
GEM
|
7
10
|
remote: https://rubygems.org/
|
8
11
|
specs:
|
9
|
-
addressable (2.
|
12
|
+
addressable (2.8.0)
|
10
13
|
public_suffix (>= 2.0.2, < 5.0)
|
11
|
-
ast (2.4.
|
12
|
-
backport (1.
|
13
|
-
benchmark (0.1.
|
14
|
+
ast (2.4.2)
|
15
|
+
backport (1.2.0)
|
16
|
+
benchmark (0.1.1)
|
14
17
|
byebug (11.1.3)
|
15
18
|
coderay (1.1.3)
|
16
|
-
crack (0.4.
|
19
|
+
crack (0.4.5)
|
20
|
+
rexml
|
17
21
|
diff-lcs (1.4.4)
|
18
22
|
e2mmap (0.1.0)
|
19
23
|
hashdiff (1.0.1)
|
20
24
|
jaro_winkler (1.5.4)
|
21
|
-
json (2.
|
22
|
-
|
25
|
+
json (2.5.1)
|
26
|
+
kramdown (2.3.1)
|
27
|
+
rexml
|
28
|
+
kramdown-parser-gfm (1.1.0)
|
29
|
+
kramdown (~> 2.0)
|
23
30
|
method_source (1.0.0)
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
parser (2.7.2.0)
|
31
|
+
nokogiri (1.12.5-x86_64-darwin)
|
32
|
+
racc (~> 1.4)
|
33
|
+
parallel (1.21.0)
|
34
|
+
parser (3.0.2.0)
|
29
35
|
ast (~> 2.4.1)
|
30
36
|
pry (0.13.1)
|
31
37
|
coderay (~> 1.1)
|
@@ -34,25 +40,26 @@ GEM
|
|
34
40
|
byebug (~> 11.0)
|
35
41
|
pry (~> 0.13.0)
|
36
42
|
public_suffix (4.0.6)
|
43
|
+
racc (1.5.2)
|
37
44
|
rainbow (3.0.0)
|
38
|
-
rake (
|
39
|
-
regexp_parser (2.
|
45
|
+
rake (13.0.6)
|
46
|
+
regexp_parser (2.1.1)
|
40
47
|
reverse_markdown (2.0.0)
|
41
48
|
nokogiri
|
42
|
-
rexml (3.2.
|
49
|
+
rexml (3.2.5)
|
43
50
|
rspec (3.10.0)
|
44
51
|
rspec-core (~> 3.10.0)
|
45
52
|
rspec-expectations (~> 3.10.0)
|
46
53
|
rspec-mocks (~> 3.10.0)
|
47
|
-
rspec-core (3.10.
|
54
|
+
rspec-core (3.10.1)
|
48
55
|
rspec-support (~> 3.10.0)
|
49
|
-
rspec-expectations (3.10.
|
56
|
+
rspec-expectations (3.10.1)
|
50
57
|
diff-lcs (>= 1.2.0, < 2.0)
|
51
58
|
rspec-support (~> 3.10.0)
|
52
|
-
rspec-mocks (3.10.
|
59
|
+
rspec-mocks (3.10.2)
|
53
60
|
diff-lcs (>= 1.2.0, < 2.0)
|
54
61
|
rspec-support (~> 3.10.0)
|
55
|
-
rspec-support (3.10.
|
62
|
+
rspec-support (3.10.2)
|
56
63
|
rubocop (0.89.1)
|
57
64
|
parallel (~> 1.10)
|
58
65
|
parser (>= 2.7.1.1)
|
@@ -67,47 +74,45 @@ GEM
|
|
67
74
|
rubocop-performance (1.8.1)
|
68
75
|
rubocop (>= 0.87.0)
|
69
76
|
rubocop-ast (>= 0.4.0)
|
70
|
-
ruby-progressbar (1.
|
71
|
-
solargraph (0.
|
72
|
-
backport (~> 1.
|
77
|
+
ruby-progressbar (1.11.0)
|
78
|
+
solargraph (0.43.3)
|
79
|
+
backport (~> 1.2)
|
73
80
|
benchmark
|
74
81
|
bundler (>= 1.17.2)
|
82
|
+
diff-lcs (~> 1.4)
|
75
83
|
e2mmap
|
76
84
|
jaro_winkler (~> 1.5)
|
77
|
-
|
78
|
-
|
79
|
-
parser (~>
|
85
|
+
kramdown (~> 2.3)
|
86
|
+
kramdown-parser-gfm (~> 1.1)
|
87
|
+
parser (~> 3.0)
|
80
88
|
reverse_markdown (>= 1.0.5, < 3)
|
81
|
-
rubocop (
|
89
|
+
rubocop (>= 0.52)
|
82
90
|
thor (~> 1.0)
|
83
91
|
tilt (~> 2.0)
|
84
92
|
yard (~> 0.9, >= 0.9.24)
|
85
|
-
thor (1.0
|
93
|
+
thor (1.1.0)
|
86
94
|
tilt (2.0.10)
|
87
|
-
unicode-display_width (1.
|
95
|
+
unicode-display_width (1.8.0)
|
88
96
|
vcr (6.0.0)
|
89
|
-
webmock (3.
|
90
|
-
addressable (>= 2.
|
97
|
+
webmock (3.14.0)
|
98
|
+
addressable (>= 2.8.0)
|
91
99
|
crack (>= 0.3.2)
|
92
100
|
hashdiff (>= 0.4.0, < 2.0.0)
|
93
|
-
yard (0.9.
|
101
|
+
yard (0.9.26)
|
94
102
|
|
95
103
|
PLATFORMS
|
96
|
-
|
104
|
+
x86_64-darwin-19
|
97
105
|
|
98
106
|
DEPENDENCIES
|
99
107
|
ahl_scraper!
|
100
|
-
byebug
|
101
|
-
|
102
|
-
|
103
|
-
pry
|
104
|
-
pry-byebug
|
105
|
-
rake (~> 12.0)
|
108
|
+
byebug (~> 11.1.3)
|
109
|
+
pry (~> 0.13.1)
|
110
|
+
pry-byebug (~> 3.9.0)
|
106
111
|
rspec (~> 3.0)
|
107
112
|
rubocop (~> 0.89.0)
|
108
113
|
rubocop-performance (~> 1.8.1)
|
109
|
-
solargraph
|
110
|
-
vcr
|
114
|
+
solargraph (~> 0.43.0)
|
115
|
+
vcr (~> 6.0.0)
|
111
116
|
webmock (>= 3.8.0)
|
112
117
|
|
113
118
|
BUNDLED WITH
|
data/ahl_scraper.gemspec
CHANGED
@@ -12,12 +12,26 @@ Gem::Specification.new do |spec|
|
|
12
12
|
spec.description = "Allows users to gather game, season, and player data from the AHL website"
|
13
13
|
spec.homepage = "http://www.ahltracker.com"
|
14
14
|
spec.license = "MIT"
|
15
|
-
spec.required_ruby_version = Gem::Requirement.new(">= 2.
|
15
|
+
spec.required_ruby_version = Gem::Requirement.new(">= 2.7.0")
|
16
16
|
|
17
17
|
spec.metadata["homepage_uri"] = "https://github.com/notnotjeff/ahl_scraper"
|
18
18
|
spec.metadata["source_code_uri"] = "https://github.com/notnotjeff/ahl_scraper"
|
19
19
|
spec.metadata["changelog_uri"] = "https://github.com/notnotjeff/ahl_scraper"
|
20
20
|
|
21
|
+
spec.add_dependency "json", "~> 2.5.1"
|
22
|
+
spec.add_dependency "nokogiri", "~> 1.12.4"
|
23
|
+
spec.add_dependency "rake", "~> 13.0.0"
|
24
|
+
|
25
|
+
spec.add_development_dependency "byebug", "~> 11.1.3"
|
26
|
+
spec.add_development_dependency "pry", "~> 0.13.1"
|
27
|
+
spec.add_development_dependency "pry-byebug", "~> 3.9.0"
|
28
|
+
spec.add_development_dependency "rspec", "~> 3.0"
|
29
|
+
spec.add_development_dependency "rubocop", "~> 0.89.0"
|
30
|
+
spec.add_development_dependency "rubocop-performance", "~> 1.8.1"
|
31
|
+
spec.add_development_dependency "solargraph", "~> 0.43.0"
|
32
|
+
spec.add_development_dependency "vcr", "~> 6.0.0"
|
33
|
+
spec.add_development_dependency "webmock", ">= 3.8.0"
|
34
|
+
|
21
35
|
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
22
36
|
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
23
37
|
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module AhlScraper
|
4
|
+
module Scoreboards
|
5
|
+
class DataFetcher
|
6
|
+
def initialize(start_date:, end_date:)
|
7
|
+
@start_date = start_date
|
8
|
+
@end_date = end_date
|
9
|
+
end
|
10
|
+
|
11
|
+
def call
|
12
|
+
JSON.parse(Nokogiri::HTML(URI.parse(url).open).text[5..-2], symbolize_names: true)&.dig(:SiteKit, :Scorebar)&.filter do |game|
|
13
|
+
game_date = Date.parse(game[:Date])
|
14
|
+
game_date >= @start_date && game_date <= @end_date
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def url
|
21
|
+
"https://lscluster.hockeytech.com/feed/index.php?feed=modulekit&key=ccb91f29d6744675&client_code=ahl&view=scorebar&numberofdaysahead=#{days_ahead}&numberofdaysback=#{days_back}&fmt=json&site_id=3&lang=en&league_id=4&division_id=undefined&callback=json" # rubocop:disable Layout/LineLength
|
22
|
+
end
|
23
|
+
|
24
|
+
def days_back
|
25
|
+
date_today > @start_date ? (date_today - @start_date).to_i : 0
|
26
|
+
end
|
27
|
+
|
28
|
+
def days_ahead
|
29
|
+
date_today < @end_date ? (@end_date - date_today).to_i : 0
|
30
|
+
end
|
31
|
+
|
32
|
+
def date_today
|
33
|
+
@date_today ||= Date.today
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -7,8 +7,7 @@ module AhlScraper
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def call
|
10
|
-
season = JSON.parse(Nokogiri::HTML(URI.parse(url).open).text[5..-2], symbolize_names: true)
|
11
|
-
.dig(:seasons)
|
10
|
+
season = JSON.parse(Nokogiri::HTML(URI.parse(url).open).text[5..-2], symbolize_names: true)[:seasons]
|
12
11
|
&.find { |s| s[:id].to_i == @season_id.to_i }
|
13
12
|
return nil unless season
|
14
13
|
|
@@ -1224,7 +1224,7 @@
|
|
1224
1224
|
],
|
1225
1225
|
"penalties": [
|
1226
1226
|
{
|
1227
|
-
"game_penalty_id":
|
1227
|
+
"game_penalty_id": 202,
|
1228
1228
|
"period": { "id": "1", "shortName": "", "longName": "1st" },
|
1229
1229
|
"time": "0:40",
|
1230
1230
|
"againstTeam": {
|
@@ -1259,7 +1259,7 @@
|
|
1259
1259
|
"isBench": false
|
1260
1260
|
},
|
1261
1261
|
{
|
1262
|
-
"game_penalty_id":
|
1262
|
+
"game_penalty_id": 203,
|
1263
1263
|
"period": { "id": "1", "shortName": "", "longName": "1st" },
|
1264
1264
|
"time": "3:00",
|
1265
1265
|
"againstTeam": {
|
@@ -1294,7 +1294,7 @@
|
|
1294
1294
|
"isBench": false
|
1295
1295
|
},
|
1296
1296
|
{
|
1297
|
-
"game_penalty_id":
|
1297
|
+
"game_penalty_id": 204,
|
1298
1298
|
"period": { "id": "1", "shortName": "", "longName": "1st" },
|
1299
1299
|
"time": "6:29",
|
1300
1300
|
"againstTeam": {
|
@@ -1329,7 +1329,7 @@
|
|
1329
1329
|
"isBench": false
|
1330
1330
|
},
|
1331
1331
|
{
|
1332
|
-
"game_penalty_id":
|
1332
|
+
"game_penalty_id": 207,
|
1333
1333
|
"period": { "id": "1", "shortName": "", "longName": "1st" },
|
1334
1334
|
"time": "8:19",
|
1335
1335
|
"againstTeam": {
|
@@ -1364,7 +1364,7 @@
|
|
1364
1364
|
"isBench": false
|
1365
1365
|
},
|
1366
1366
|
{
|
1367
|
-
"game_penalty_id":
|
1367
|
+
"game_penalty_id": 211,
|
1368
1368
|
"period": { "id": "1", "shortName": "", "longName": "1st" },
|
1369
1369
|
"time": "8:59",
|
1370
1370
|
"againstTeam": {
|
@@ -1399,7 +1399,7 @@
|
|
1399
1399
|
"isBench": false
|
1400
1400
|
},
|
1401
1401
|
{
|
1402
|
-
"game_penalty_id":
|
1402
|
+
"game_penalty_id": 227,
|
1403
1403
|
"period": { "id": "1", "shortName": "", "longName": "1st" },
|
1404
1404
|
"time": "17:54",
|
1405
1405
|
"againstTeam": {
|
@@ -1446,7 +1446,7 @@
|
|
1446
1446
|
"goals": [],
|
1447
1447
|
"penalties": [
|
1448
1448
|
{
|
1449
|
-
"game_penalty_id":
|
1449
|
+
"game_penalty_id": 243,
|
1450
1450
|
"period": { "id": "2", "shortName": "", "longName": "2nd" },
|
1451
1451
|
"time": "2:52",
|
1452
1452
|
"againstTeam": {
|
@@ -1481,7 +1481,7 @@
|
|
1481
1481
|
"isBench": false
|
1482
1482
|
},
|
1483
1483
|
{
|
1484
|
-
"game_penalty_id":
|
1484
|
+
"game_penalty_id": 252,
|
1485
1485
|
"period": { "id": "2", "shortName": "", "longName": "2nd" },
|
1486
1486
|
"time": "5:31",
|
1487
1487
|
"againstTeam": {
|
@@ -1516,7 +1516,7 @@
|
|
1516
1516
|
"isBench": false
|
1517
1517
|
},
|
1518
1518
|
{
|
1519
|
-
"game_penalty_id":
|
1519
|
+
"game_penalty_id": 254,
|
1520
1520
|
"period": { "id": "2", "shortName": "", "longName": "2nd" },
|
1521
1521
|
"time": "8:05",
|
1522
1522
|
"againstTeam": {
|
@@ -1551,7 +1551,7 @@
|
|
1551
1551
|
"isBench": false
|
1552
1552
|
},
|
1553
1553
|
{
|
1554
|
-
"game_penalty_id":
|
1554
|
+
"game_penalty_id": 255,
|
1555
1555
|
"period": { "id": "2", "shortName": "", "longName": "2nd" },
|
1556
1556
|
"time": "13:02",
|
1557
1557
|
"againstTeam": {
|
@@ -1586,7 +1586,7 @@
|
|
1586
1586
|
"isBench": false
|
1587
1587
|
},
|
1588
1588
|
{
|
1589
|
-
"game_penalty_id":
|
1589
|
+
"game_penalty_id": 260,
|
1590
1590
|
"period": { "id": "2", "shortName": "", "longName": "2nd" },
|
1591
1591
|
"time": "14:16",
|
1592
1592
|
"againstTeam": {
|
@@ -1894,7 +1894,7 @@
|
|
1894
1894
|
],
|
1895
1895
|
"penalties": [
|
1896
1896
|
{
|
1897
|
-
"game_penalty_id":
|
1897
|
+
"game_penalty_id": 261,
|
1898
1898
|
"period": { "id": "3", "shortName": "", "longName": "3rd" },
|
1899
1899
|
"time": "1:32",
|
1900
1900
|
"againstTeam": {
|
@@ -1929,7 +1929,7 @@
|
|
1929
1929
|
"isBench": false
|
1930
1930
|
},
|
1931
1931
|
{
|
1932
|
-
"game_penalty_id":
|
1932
|
+
"game_penalty_id": 278,
|
1933
1933
|
"period": { "id": "3", "shortName": "", "longName": "3rd" },
|
1934
1934
|
"time": "5:51",
|
1935
1935
|
"againstTeam": {
|
@@ -1964,7 +1964,7 @@
|
|
1964
1964
|
"isBench": false
|
1965
1965
|
},
|
1966
1966
|
{
|
1967
|
-
"game_penalty_id":
|
1967
|
+
"game_penalty_id": 281,
|
1968
1968
|
"period": { "id": "3", "shortName": "", "longName": "3rd" },
|
1969
1969
|
"time": "10:22",
|
1970
1970
|
"againstTeam": {
|
@@ -1999,7 +1999,7 @@
|
|
1999
1999
|
"isBench": false
|
2000
2000
|
},
|
2001
2001
|
{
|
2002
|
-
"game_penalty_id":
|
2002
|
+
"game_penalty_id": 332,
|
2003
2003
|
"period": { "id": "3", "shortName": "", "longName": "3rd" },
|
2004
2004
|
"time": "12:05",
|
2005
2005
|
"againstTeam": {
|
@@ -2034,7 +2034,7 @@
|
|
2034
2034
|
"isBench": false
|
2035
2035
|
},
|
2036
2036
|
{
|
2037
|
-
"game_penalty_id":
|
2037
|
+
"game_penalty_id": 340,
|
2038
2038
|
"period": { "id": "3", "shortName": "", "longName": "3rd" },
|
2039
2039
|
"time": "15:53",
|
2040
2040
|
"againstTeam": {
|
@@ -2069,7 +2069,7 @@
|
|
2069
2069
|
"isBench": false
|
2070
2070
|
},
|
2071
2071
|
{
|
2072
|
-
"game_penalty_id":
|
2072
|
+
"game_penalty_id": 355,
|
2073
2073
|
"period": { "id": "3", "shortName": "", "longName": "3rd" },
|
2074
2074
|
"time": "15:53",
|
2075
2075
|
"againstTeam": {
|
@@ -2104,7 +2104,7 @@
|
|
2104
2104
|
"isBench": false
|
2105
2105
|
},
|
2106
2106
|
{
|
2107
|
-
"game_penalty_id":
|
2107
|
+
"game_penalty_id": 363,
|
2108
2108
|
"period": { "id": "3", "shortName": "", "longName": "3rd" },
|
2109
2109
|
"time": "17:11",
|
2110
2110
|
"againstTeam": {
|