ahl_scraper 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/CHANGELOG.md +49 -0
- data/Gemfile +8 -8
- data/Gemfile.lock +46 -41
- data/ahl_scraper.gemspec +1 -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/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/resources/game.rb +4 -3
- data/lib/ahl_scraper/resources/game_list_item.rb +13 -13
- 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/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/season.rb +13 -8
- data/lib/ahl_scraper/resources/season_list_item.rb +2 -2
- data/lib/ahl_scraper/resources/seasons/team.rb +4 -3
- 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/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/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
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b50eba6912cfdd78130e062fda2e5714d0899d419d977b92c638378f9f672d4c
|
4
|
+
data.tar.gz: 0ab43e3f52a2de435ea0ea5f404b752d13ef6ae6eba003e485dd55967d6ab967
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0c3c0faf348050a9e1172f01d25c3f47b363eea83b4b8613688637b18532dfea6102ee7e0388ade687c306c452520be79b69d44702f2cd1b30142b548308b698
|
7
|
+
data.tar.gz: 70817e1d4a3258850516fe9f28543e04d31ca2c9bbcdba98f382af6152a48c6e59683b21fe49425450cb9c20d71ee2da5b2a03b7a518d3aa2a68265caaed1848
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
ruby-2.7.
|
1
|
+
ruby-2.7.3
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,54 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
+
## 0.3.0
|
4
|
+
|
5
|
+
### General
|
6
|
+
|
7
|
+
- Upgrade project Ruby version to `2.7.3`
|
8
|
+
- Update gem minimum version to `2.7.0`
|
9
|
+
- Use JSON override for game `1003351` where goalie boxscore stats don't match goal records (see wiki)
|
10
|
+
- Use term `handedness` for players
|
11
|
+
- Added penalty ids to JSON override games
|
12
|
+
|
13
|
+
### GameInfo
|
14
|
+
|
15
|
+
- If game has not started set status to reflect that and include start time
|
16
|
+
|
17
|
+
### Game
|
18
|
+
|
19
|
+
- Current time will check for whether a game has started so that games that haven't been played yet will return nil
|
20
|
+
|
21
|
+
### GameListItem
|
22
|
+
|
23
|
+
- Use `dig` to be less error prone
|
24
|
+
- Set status to `Not Started` if game status still shows start time
|
25
|
+
|
26
|
+
### Games::Penalty
|
27
|
+
|
28
|
+
- Add `id` field
|
29
|
+
- Add `bench?` attribute for when bench minor penalty
|
30
|
+
- Add `:penalty_shot` penalty type
|
31
|
+
|
32
|
+
### PlayoffBracket
|
33
|
+
|
34
|
+
- Hardcode wins needed for series to allow for accurate series statuses
|
35
|
+
- Revamp `active?` logic to work even for finals (which remained set to active by AHL)
|
36
|
+
- Stick with `home` and `away` teams instead of `team1` and `team2` for:
|
37
|
+
- `feeder_series1` to `home_feeder_series`
|
38
|
+
- `feeder_series2` to `away_feeder_series`
|
39
|
+
- `team1` to `home_team_id`
|
40
|
+
- `team2` to `away_team_id`
|
41
|
+
- Change `winning_team` to `winning_team_id`
|
42
|
+
- Add `wins_needed` attribute
|
43
|
+
|
44
|
+
### Game::Skater
|
45
|
+
|
46
|
+
- Use `p1_` for primary point short form instead of full words for `scoring_statline`
|
47
|
+
|
48
|
+
### Season
|
49
|
+
|
50
|
+
- Add `preseason` season type with appropriate abbreviations
|
51
|
+
|
3
52
|
## 0.2.0
|
4
53
|
|
5
54
|
### RosterPlayers
|
data/Gemfile
CHANGED
@@ -5,21 +5,21 @@ source "https://rubygems.org"
|
|
5
5
|
# Specify your gem's dependencies in ahl_scraper.gemspec
|
6
6
|
gemspec
|
7
7
|
|
8
|
-
gem "json"
|
9
|
-
gem "nokogiri"
|
10
|
-
gem "rake", "~>
|
8
|
+
gem "json", "~> 2.5.1"
|
9
|
+
gem "nokogiri", "~> 1.12.4"
|
10
|
+
gem "rake", "~> 13.0.0"
|
11
11
|
|
12
12
|
group :development do
|
13
13
|
gem "rubocop", "~> 0.89.0", require: false
|
14
14
|
gem "rubocop-performance", "~> 1.8.1", require: false
|
15
|
-
gem "solargraph"
|
15
|
+
gem "solargraph", "~> 0.43.0"
|
16
16
|
end
|
17
17
|
|
18
18
|
group :development, :test do
|
19
|
-
gem "byebug"
|
20
|
-
gem "pry"
|
21
|
-
gem "pry-byebug"
|
19
|
+
gem "byebug", "~> 11.1.3"
|
20
|
+
gem "pry", "~> 0.13.1"
|
21
|
+
gem "pry-byebug", "~> 3.9.0"
|
22
22
|
gem "rspec", "~> 3.0"
|
23
|
-
gem "vcr"
|
23
|
+
gem "vcr", "~> 6.0.0"
|
24
24
|
gem "webmock", ">= 3.8.0"
|
25
25
|
end
|
data/Gemfile.lock
CHANGED
@@ -1,31 +1,34 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
ahl_scraper (0.
|
4
|
+
ahl_scraper (0.3.0)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
8
8
|
specs:
|
9
|
-
addressable (2.
|
9
|
+
addressable (2.8.0)
|
10
10
|
public_suffix (>= 2.0.2, < 5.0)
|
11
|
-
ast (2.4.
|
12
|
-
backport (1.
|
13
|
-
benchmark (0.1.
|
11
|
+
ast (2.4.2)
|
12
|
+
backport (1.2.0)
|
13
|
+
benchmark (0.1.1)
|
14
14
|
byebug (11.1.3)
|
15
15
|
coderay (1.1.3)
|
16
|
-
crack (0.4.
|
16
|
+
crack (0.4.5)
|
17
|
+
rexml
|
17
18
|
diff-lcs (1.4.4)
|
18
19
|
e2mmap (0.1.0)
|
19
20
|
hashdiff (1.0.1)
|
20
21
|
jaro_winkler (1.5.4)
|
21
|
-
json (2.
|
22
|
-
|
22
|
+
json (2.5.1)
|
23
|
+
kramdown (2.3.1)
|
24
|
+
rexml
|
25
|
+
kramdown-parser-gfm (1.1.0)
|
26
|
+
kramdown (~> 2.0)
|
23
27
|
method_source (1.0.0)
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
parser (2.7.2.0)
|
28
|
+
nokogiri (1.12.5-x86_64-darwin)
|
29
|
+
racc (~> 1.4)
|
30
|
+
parallel (1.21.0)
|
31
|
+
parser (3.0.2.0)
|
29
32
|
ast (~> 2.4.1)
|
30
33
|
pry (0.13.1)
|
31
34
|
coderay (~> 1.1)
|
@@ -34,25 +37,26 @@ GEM
|
|
34
37
|
byebug (~> 11.0)
|
35
38
|
pry (~> 0.13.0)
|
36
39
|
public_suffix (4.0.6)
|
40
|
+
racc (1.5.2)
|
37
41
|
rainbow (3.0.0)
|
38
|
-
rake (
|
39
|
-
regexp_parser (2.
|
42
|
+
rake (13.0.6)
|
43
|
+
regexp_parser (2.1.1)
|
40
44
|
reverse_markdown (2.0.0)
|
41
45
|
nokogiri
|
42
|
-
rexml (3.2.
|
46
|
+
rexml (3.2.5)
|
43
47
|
rspec (3.10.0)
|
44
48
|
rspec-core (~> 3.10.0)
|
45
49
|
rspec-expectations (~> 3.10.0)
|
46
50
|
rspec-mocks (~> 3.10.0)
|
47
|
-
rspec-core (3.10.
|
51
|
+
rspec-core (3.10.1)
|
48
52
|
rspec-support (~> 3.10.0)
|
49
|
-
rspec-expectations (3.10.
|
53
|
+
rspec-expectations (3.10.1)
|
50
54
|
diff-lcs (>= 1.2.0, < 2.0)
|
51
55
|
rspec-support (~> 3.10.0)
|
52
|
-
rspec-mocks (3.10.
|
56
|
+
rspec-mocks (3.10.2)
|
53
57
|
diff-lcs (>= 1.2.0, < 2.0)
|
54
58
|
rspec-support (~> 3.10.0)
|
55
|
-
rspec-support (3.10.
|
59
|
+
rspec-support (3.10.2)
|
56
60
|
rubocop (0.89.1)
|
57
61
|
parallel (~> 1.10)
|
58
62
|
parser (>= 2.7.1.1)
|
@@ -67,47 +71,48 @@ GEM
|
|
67
71
|
rubocop-performance (1.8.1)
|
68
72
|
rubocop (>= 0.87.0)
|
69
73
|
rubocop-ast (>= 0.4.0)
|
70
|
-
ruby-progressbar (1.
|
71
|
-
solargraph (0.
|
72
|
-
backport (~> 1.
|
74
|
+
ruby-progressbar (1.11.0)
|
75
|
+
solargraph (0.43.3)
|
76
|
+
backport (~> 1.2)
|
73
77
|
benchmark
|
74
78
|
bundler (>= 1.17.2)
|
79
|
+
diff-lcs (~> 1.4)
|
75
80
|
e2mmap
|
76
81
|
jaro_winkler (~> 1.5)
|
77
|
-
|
78
|
-
|
79
|
-
parser (~>
|
82
|
+
kramdown (~> 2.3)
|
83
|
+
kramdown-parser-gfm (~> 1.1)
|
84
|
+
parser (~> 3.0)
|
80
85
|
reverse_markdown (>= 1.0.5, < 3)
|
81
|
-
rubocop (
|
86
|
+
rubocop (>= 0.52)
|
82
87
|
thor (~> 1.0)
|
83
88
|
tilt (~> 2.0)
|
84
89
|
yard (~> 0.9, >= 0.9.24)
|
85
|
-
thor (1.0
|
90
|
+
thor (1.1.0)
|
86
91
|
tilt (2.0.10)
|
87
|
-
unicode-display_width (1.
|
92
|
+
unicode-display_width (1.8.0)
|
88
93
|
vcr (6.0.0)
|
89
|
-
webmock (3.
|
90
|
-
addressable (>= 2.
|
94
|
+
webmock (3.14.0)
|
95
|
+
addressable (>= 2.8.0)
|
91
96
|
crack (>= 0.3.2)
|
92
97
|
hashdiff (>= 0.4.0, < 2.0.0)
|
93
|
-
yard (0.9.
|
98
|
+
yard (0.9.26)
|
94
99
|
|
95
100
|
PLATFORMS
|
96
|
-
|
101
|
+
x86_64-darwin-19
|
97
102
|
|
98
103
|
DEPENDENCIES
|
99
104
|
ahl_scraper!
|
100
|
-
byebug
|
101
|
-
json
|
102
|
-
nokogiri
|
103
|
-
pry
|
104
|
-
pry-byebug
|
105
|
-
rake (~>
|
105
|
+
byebug (~> 11.1.3)
|
106
|
+
json (~> 2.5.1)
|
107
|
+
nokogiri (~> 1.12.4)
|
108
|
+
pry (~> 0.13.1)
|
109
|
+
pry-byebug (~> 3.9.0)
|
110
|
+
rake (~> 13.0.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,7 +12,7 @@ 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"
|
@@ -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": {
|