sportradar-api 0.18.1 → 0.19.2
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/Gemfile.lock +1 -1
- data/lib/sportradar/api/football/game.rb +5 -1
- data/lib/sportradar/api/football/game_stats.rb +4 -0
- data/lib/sportradar/api/football/nfl/api.rb +5 -5
- data/lib/sportradar/api/football/nfl.rb +14 -4
- data/lib/sportradar/api/football/stat_pack.rb +4 -0
- data/lib/sportradar/api/football/stats_shim.rb +24 -0
- data/lib/sportradar/api/football.rb +1 -0
- data/lib/sportradar/api/odds/README.md +1 -1
- data/lib/sportradar/api/odds/competition.rb +14 -3
- data/lib/sportradar/api/odds/sport_event.rb +0 -2
- data/lib/sportradar/api/request.rb +2 -2
- data/lib/sportradar/api/version.rb +1 -1
- data/lib/sportradar/api.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f244f4735aed098ff6deba5da0b71e858dd2ad46f810af5ac13ab2eb939bab21
|
|
4
|
+
data.tar.gz: ae24d54e8a5212bc77128cd9a8b77a5df519b0bcf5b1f5c39219baa642a9011c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7b9f802af3d7a9d027417bca43b5e3d647c536d42d8c096a80f1bb5fb5954ad9c52c0e9fcf93bc546b79820292a33d520b3eb6ac1e4f081f38c6e5bc00d70597
|
|
7
|
+
data.tar.gz: 261a12216c0f88484bfabb3b7d994aba7f3d0444a7cabe62f07c74d8a5b1b5e6d1269fd4bc49063d3ba2cee9bdf5ea2956d234ab6c040b6420c7256a23310bc9
|
data/Gemfile.lock
CHANGED
|
@@ -20,7 +20,7 @@ module Sportradar
|
|
|
20
20
|
|
|
21
21
|
@teams_hash = {}
|
|
22
22
|
@team_stats = {}
|
|
23
|
-
@player_stats =
|
|
23
|
+
@player_stats = StatsShim.new(self)
|
|
24
24
|
|
|
25
25
|
@quarters_hash = {}
|
|
26
26
|
@drives_hash = {}
|
|
@@ -394,6 +394,10 @@ module Sportradar
|
|
|
394
394
|
ingest_statistics(data)
|
|
395
395
|
end
|
|
396
396
|
|
|
397
|
+
def get_summary
|
|
398
|
+
get_statistics
|
|
399
|
+
end
|
|
400
|
+
|
|
397
401
|
def queue_statistics
|
|
398
402
|
url, headers, options, timeout = api.get_request_info(path_statistics)
|
|
399
403
|
{url: url, headers: headers, params: options, timeout: timeout, callback: method(:ingest_statistics)}
|
|
@@ -29,6 +29,10 @@ module Sportradar
|
|
|
29
29
|
@return_yards = data.dig('summary', "return_yards")
|
|
30
30
|
end
|
|
31
31
|
|
|
32
|
+
def dig(*args)
|
|
33
|
+
args.inject(self) { |memo, arg| memo.public_send(arg) }
|
|
34
|
+
end
|
|
35
|
+
|
|
32
36
|
def turnovers
|
|
33
37
|
@turnovers || passing.interceptions + fumbles&.lost_fumbles.to_i
|
|
34
38
|
end
|
|
@@ -22,9 +22,9 @@ module Sportradar
|
|
|
22
22
|
end
|
|
23
23
|
def default_access_level
|
|
24
24
|
if (ENV['SPORTRADAR_ENV'] || ENV['SPORTRADAR_ENV_NFL'] || ENV['RACK_ENV'] || ENV['RAILS_ENV']) == 'production'
|
|
25
|
-
'
|
|
25
|
+
'production'
|
|
26
26
|
else
|
|
27
|
-
'
|
|
27
|
+
'trial'
|
|
28
28
|
end
|
|
29
29
|
end
|
|
30
30
|
|
|
@@ -35,11 +35,11 @@ module Sportradar
|
|
|
35
35
|
end
|
|
36
36
|
|
|
37
37
|
def request_url(path)
|
|
38
|
-
"/nfl
|
|
38
|
+
"/nfl/official/#{access_level}/v#{version}/en/#{path}"
|
|
39
39
|
end
|
|
40
40
|
|
|
41
41
|
def api_key
|
|
42
|
-
if !['
|
|
42
|
+
if !['trial', 'sim'].include?(access_level) || (access_level == 'sim' && default_access_level == 'production')
|
|
43
43
|
::Sportradar::Api.api_key_params('nfl', 'production')
|
|
44
44
|
else
|
|
45
45
|
::Sportradar::Api.api_key_params('nfl')
|
|
@@ -51,7 +51,7 @@ module Sportradar
|
|
|
51
51
|
end
|
|
52
52
|
|
|
53
53
|
def allowed_access_levels
|
|
54
|
-
%w[
|
|
54
|
+
%w[production trial sim]
|
|
55
55
|
end
|
|
56
56
|
|
|
57
57
|
def allowed_seasons
|
|
@@ -159,13 +159,13 @@ module Sportradar
|
|
|
159
159
|
"games/#{season_year}/#{nfl_season}/#{nfl_season_week}/schedule"
|
|
160
160
|
end
|
|
161
161
|
def path_weekly_depth_charts(nfl_season_week)
|
|
162
|
-
"
|
|
162
|
+
"seasons/#{season_year}/#{nfl_season}/#{nfl_season_week}/depth_charts"
|
|
163
163
|
end
|
|
164
164
|
def path_weekly_depth_injuries(nfl_season_week)
|
|
165
|
-
"
|
|
165
|
+
"seasons/#{season_year}/#{nfl_season}/#{nfl_season_week}/injuries"
|
|
166
166
|
end
|
|
167
167
|
def path_standings
|
|
168
|
-
"
|
|
168
|
+
"seasons/#{season_year}/standings"
|
|
169
169
|
end
|
|
170
170
|
|
|
171
171
|
# data retrieval
|
|
@@ -320,4 +320,14 @@ File.binwrite('nfl.bin', Marshal.dump(nfl))
|
|
|
320
320
|
nfl = Sportradar::Api::Football::Nfl.new
|
|
321
321
|
nfl.season = 2016
|
|
322
322
|
res = nfl.get_weekly_depth_charts
|
|
323
|
-
dc = nfl.instance_variable_get(:@depth_charts_hash)
|
|
323
|
+
dc = nfl.instance_variable_get(:@depth_charts_hash)
|
|
324
|
+
|
|
325
|
+
|
|
326
|
+
nfl = Sportradar::Api::Football::Nfl.new
|
|
327
|
+
nfl.season = 2021
|
|
328
|
+
nfl.get_schedule
|
|
329
|
+
g = nfl.games.sample
|
|
330
|
+
data = g.get_statistics
|
|
331
|
+
g.team_stats
|
|
332
|
+
g.team_stats.values.first.dig('rushing', 'yards')
|
|
333
|
+
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
module Sportradar
|
|
2
|
+
module Api
|
|
3
|
+
module Football
|
|
4
|
+
class StatsShim
|
|
5
|
+
attr_reader :game
|
|
6
|
+
|
|
7
|
+
def initialize(game)
|
|
8
|
+
@game = game
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def dig(player_id, category, stat)
|
|
12
|
+
game.team_stats.each_value do |stats|
|
|
13
|
+
player = stats.public_send(category).for_player(player_id)
|
|
14
|
+
if player
|
|
15
|
+
return player.send(stat)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
0
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -13,7 +13,7 @@ sport.get_competitions
|
|
|
13
13
|
comp = sport.competitions.first
|
|
14
14
|
|
|
15
15
|
api = Sportradar::Api::Odds::PlayerOdds.api
|
|
16
|
-
comp = Sportradar::Api::Odds::Competition.new({'id' => 'sr:competition:
|
|
16
|
+
comp = Sportradar::Api::Odds::Competition.new({'id' => 'sr:competition:109'}, api: api)
|
|
17
17
|
data = comp.get_player_props
|
|
18
18
|
comp.sport_events
|
|
19
19
|
event = comp.sport_events.first
|
|
@@ -29,12 +29,23 @@ module Sportradar
|
|
|
29
29
|
|
|
30
30
|
def get_player_props
|
|
31
31
|
data = fetch_player_props
|
|
32
|
-
|
|
32
|
+
prop_data = if data["competition_sport_events_players_props"].size == 10
|
|
33
|
+
arr = data["competition_sport_events_players_props"]
|
|
34
|
+
data = fetch_player_props(start: 10)
|
|
35
|
+
arr += data["competition_sport_events_players_props"]
|
|
36
|
+
if data["competition_sport_events_players_props"].size == 10
|
|
37
|
+
data = fetch_player_props(start: 20)
|
|
38
|
+
arr += data["competition_sport_events_players_props"]
|
|
39
|
+
end
|
|
40
|
+
else
|
|
41
|
+
data["competition_sport_events_players_props"]
|
|
42
|
+
end
|
|
43
|
+
create_data(@sport_events_hash, prop_data, klass: SportEvent, api: api)
|
|
33
44
|
data
|
|
34
45
|
end
|
|
35
46
|
|
|
36
|
-
def fetch_player_props
|
|
37
|
-
api.get_data(path_player_props)
|
|
47
|
+
def fetch_player_props(params = {})
|
|
48
|
+
api.get_data(path_player_props, params)
|
|
38
49
|
end
|
|
39
50
|
|
|
40
51
|
# url path helpers
|
|
@@ -30,8 +30,6 @@ module Sportradar
|
|
|
30
30
|
def update(data, **opts)
|
|
31
31
|
create_data(@player_props_hash, data['players_props'], klass: PlayerProp, api: api) if data['players_props']
|
|
32
32
|
create_data(@player_markets_hash, data['players_markets'], klass: Market, api: api) if data['players_markets']
|
|
33
|
-
rescue => e
|
|
34
|
-
binding.pry
|
|
35
33
|
end
|
|
36
34
|
|
|
37
35
|
end
|
data/lib/sportradar/api.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sportradar-api
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.19.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ben Eggett
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2022-
|
|
11
|
+
date: 2022-07-10 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -380,6 +380,7 @@ files:
|
|
|
380
380
|
- lib/sportradar/api/football/stat_pack/punts.rb
|
|
381
381
|
- lib/sportradar/api/football/stat_pack/receiving.rb
|
|
382
382
|
- lib/sportradar/api/football/stat_pack/rushing.rb
|
|
383
|
+
- lib/sportradar/api/football/stats_shim.rb
|
|
383
384
|
- lib/sportradar/api/football/team.rb
|
|
384
385
|
- lib/sportradar/api/football/venue.rb
|
|
385
386
|
- lib/sportradar/api/football/week.rb
|