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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c1fcf7c9daa2a091b2ad3d09f6b2569ba35f7210003a7398be83490d7aff395c
4
- data.tar.gz: ec8d6a527c8be97080cdc78aae7e52f0a9b102fba17f623f9ebc60fc5a723918
3
+ metadata.gz: ce9f7183e1c4345e6cd8645eb7464f474125c1c8adb0e8d56c14d950637339d9
4
+ data.tar.gz: 94b6ed0d85b2158437da00526138c9b451342837ba0a130ba48f11c23417b58d
5
5
  SHA512:
6
- metadata.gz: 14e7d482a3a4a1b48ed592ca071f341ae20a762855f1cfb58d352820d69bb74fb92bc27dbbdc393339c871c5e166244e695a3a737da9ce82180a6e6a28f3bc78
7
- data.tar.gz: 38f8b83c02f842bd1ec02f513115ad646a02a7699d87668e6e03d0b73568b573874b6d13e44a0d9e5ef4e82a6496dd75b6e105a06a0890307be2250e1edab64b
6
+ metadata.gz: 414ec76183a9bfc0aecbb90246304b4636a004ada1eabb118c51e55900862a35a3caa7d2976809c99658f0f3d848d25c5544669fa0b58a1469f41a53faaa8adc
7
+ data.tar.gz: 17238d7e343ca736d632e5d60ebbb708ac6362bc6f07da6f26527cfe93958956557c4aa8a0b4007b9675175be675079d59379fa7aab43391e292a810b40b9d16
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- sportradar-api (0.18.0)
4
+ sportradar-api (0.19.1)
5
5
  activesupport
6
6
  httparty (>= 0.14.0)
7
7
 
@@ -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
- 'o'
25
+ 'production'
26
26
  else
27
- 'ot'
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-#{access_level}#{version}/#{path}"
38
+ "/nfl/official/#{access_level}/v#{version}/en/#{path}"
39
39
  end
40
40
 
41
41
  def api_key
42
- if !['ot', 'sim'].include?(access_level) || (access_level == 'sim' && default_access_level == 'o')
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[rt o p s b t ot sim]
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
- "seasontd/#{season_year}/#{nfl_season}/#{nfl_season_week}/depth_charts"
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
- "seasontd/#{season_year}/#{nfl_season}/#{nfl_season_week}/injuries"
165
+ "seasons/#{season_year}/#{nfl_season}/#{nfl_season_week}/injuries"
166
166
  end
167
167
  def path_standings
168
- "seasontd/#{season_year}/standings"
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
+
@@ -15,6 +15,10 @@ module Sportradar
15
15
  set_stats
16
16
  end
17
17
 
18
+ def for_player(id)
19
+ @players && @players.detect { |stat| stat.player.id == id }
20
+ end
21
+
18
22
  private
19
23
 
20
24
  def set_stats
@@ -1,3 +1,4 @@
1
+ require "sportradar/api/football/stats_shim"
1
2
  require "sportradar/api/football/stat_pack"
2
3
  require "sportradar/api/football/stat_pack/defense"
3
4
  require "sportradar/api/football/stat_pack/extra_points"
@@ -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:234'}, api: api)
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
- create_data(@sport_events_hash, data["competition_sport_events_players_props"], klass: SportEvent, api: api)
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
@@ -12,8 +12,8 @@ module Sportradar
12
12
  self
13
13
  end
14
14
 
15
- def get_data(url)
16
- data = get request_url(url)
15
+ def get_data(url, extra_params = {})
16
+ data = get(request_url(url), extra_params)
17
17
  if data.is_a?(::Sportradar::Api::Error)
18
18
  puts request_url(url)
19
19
  puts
@@ -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
 
@@ -1,5 +1,5 @@
1
1
  module Sportradar
2
2
  module Api
3
- VERSION = "0.18.0"
3
+ VERSION = "0.19.1"
4
4
  end
5
5
  end
@@ -50,7 +50,7 @@ module Sportradar
50
50
  module Api
51
51
 
52
52
  API_GALLERY = [
53
- {api: :nfl, version: 1},
53
+ {api: :nfl, version: 7},
54
54
  {api: :mlb, version: 7},
55
55
  {api: :nhl, version: 3},
56
56
  {api: :nba, version: 7},
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.18.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-05-26 00:00:00.000000000 Z
11
+ date: 2022-07-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler