sportradar-api 0.18.0 → 0.19.1
Sign up to get free protection for your applications and to get access to all the features.
- 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.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/soccer/player.rb +3 -1
- data/lib/sportradar/api/version.rb +1 -1
- data/lib/sportradar/api.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ce9f7183e1c4345e6cd8645eb7464f474125c1c8adb0e8d56c14d950637339d9
|
4
|
+
data.tar.gz: 94b6ed0d85b2158437da00526138c9b451342837ba0a130ba48f11c23417b58d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 414ec76183a9bfc0aecbb90246304b4636a004ada1eabb118c51e55900862a35a3caa7d2976809c99658f0f3d848d25c5544669fa0b58a1469f41a53faaa8adc
|
7
|
+
data.tar.gz: 17238d7e343ca736d632e5d60ebbb708ac6362bc6f07da6f26527cfe93958956557c4aa8a0b4007b9675175be675079d59379fa7aab43391e292a810b40b9d16
|
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
|
+
|
@@ -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
|
@@ -3,7 +3,7 @@ module Sportradar
|
|
3
3
|
module Soccer
|
4
4
|
class Player < Data
|
5
5
|
|
6
|
-
attr_reader :id, :league_group, :name, :type, :nationality, :country_code, :height, :weight, :jersey_number, :preferred_foot, :stats, :game_stats, :date_of_birth, :matches_played
|
6
|
+
attr_reader :id, :league_group, :name, :type, :nationality, :country_code, :height, :weight, :jersey_number, :preferred_foot, :stats, :game_stats, :date_of_birth, :matches_played, :starter
|
7
7
|
alias :position :type
|
8
8
|
|
9
9
|
def initialize(data = {}, league_group: nil, **opts)
|
@@ -37,6 +37,8 @@ module Sportradar
|
|
37
37
|
@preferred_foot = data['preferred_foot'] if data['preferred_foot']
|
38
38
|
@matches_played = data['matches_played'] if data['matches_played']
|
39
39
|
@stats = data['statistics'] if data['statistics']
|
40
|
+
@starter = data['starter'] if data.key?('starter')
|
41
|
+
|
40
42
|
@date_of_birth = Date.parse(data['date_of_birth']) if data['date_of_birth']
|
41
43
|
set_game_stats(data)
|
42
44
|
|
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.1
|
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-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|