sportradar-api 0.10.55 → 0.11.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +28 -26
- data/README.md +7 -6
- data/lib/sportradar/api/baseball/{REAME.md → README.md} +0 -0
- data/lib/sportradar/api/baseball/game.rb +29 -2
- data/lib/sportradar/api/baseball/mlb/hierarchy.rb +1 -0
- data/lib/sportradar/api/baseball/record.rb +0 -4
- data/lib/sportradar/api/baseball/venue.rb +2 -1
- data/lib/sportradar/api/basketball/game.rb +2 -2
- data/lib/sportradar/api/basketball/record.rb +0 -4
- data/lib/sportradar/api/basketball/venue.rb +2 -1
- data/lib/sportradar/api/data.rb +3 -3
- data/lib/sportradar/api/football/README.md +62 -0
- data/lib/sportradar/api/football/drive.rb +105 -0
- data/lib/sportradar/api/football/event.rb +33 -0
- data/lib/sportradar/api/football/game.rb +389 -0
- data/lib/sportradar/api/football/game_stats.rb +135 -0
- data/lib/sportradar/api/football/ncaafb/api.rb +76 -0
- data/lib/sportradar/api/football/ncaafb/conference.rb +53 -0
- data/lib/sportradar/api/football/ncaafb/division.rb +42 -0
- data/lib/sportradar/api/football/ncaafb/drive.rb +16 -0
- data/lib/sportradar/api/football/ncaafb/game.rb +110 -0
- data/lib/sportradar/api/football/ncaafb/play.rb +20 -0
- data/lib/sportradar/api/football/ncaafb/player.rb +31 -0
- data/lib/sportradar/api/football/ncaafb/quarter.rb +15 -0
- data/lib/sportradar/api/football/ncaafb/subdivision.rb +43 -0
- data/lib/sportradar/api/football/ncaafb/team.rb +45 -0
- data/lib/sportradar/api/football/ncaafb/week.rb +24 -0
- data/lib/sportradar/api/football/ncaafb.rb +273 -0
- data/lib/sportradar/api/football/nfl/api.rb +76 -0
- data/lib/sportradar/api/football/nfl/conference.rb +35 -0
- data/lib/sportradar/api/football/nfl/division.rb +37 -0
- data/lib/sportradar/api/football/nfl/drive.rb +19 -0
- data/lib/sportradar/api/football/nfl/event.rb +19 -0
- data/lib/sportradar/api/football/nfl/game.rb +77 -0
- data/lib/sportradar/api/football/nfl/play.rb +20 -0
- data/lib/sportradar/api/football/nfl/player.rb +31 -0
- data/lib/sportradar/api/football/nfl/quarter.rb +15 -0
- data/lib/sportradar/api/football/nfl/team.rb +42 -0
- data/lib/sportradar/api/football/nfl/week.rb +24 -0
- data/lib/sportradar/api/football/nfl.rb +293 -0
- data/lib/sportradar/api/football/play.rb +93 -0
- data/lib/sportradar/api/football/player.rb +111 -0
- data/lib/sportradar/api/football/quarter.rb +42 -0
- data/lib/sportradar/api/football/record.rb +48 -0
- data/lib/sportradar/api/football/scoring.rb +92 -0
- data/lib/sportradar/api/football/situation.rb +20 -0
- data/lib/sportradar/api/football/stat_pack/defense.rb +20 -20
- data/lib/sportradar/api/football/stat_pack/extra_points.rb +5 -4
- data/lib/sportradar/api/football/stat_pack/field_goals.rb +6 -5
- data/lib/sportradar/api/football/stat_pack/fumbles.rb +11 -9
- data/lib/sportradar/api/football/stat_pack/kick_returns.rb +8 -7
- data/lib/sportradar/api/football/stat_pack/kickoffs.rb +9 -7
- data/lib/sportradar/api/football/stat_pack/misc_returns.rb +1 -1
- data/lib/sportradar/api/football/stat_pack/passing.rb +13 -11
- data/lib/sportradar/api/football/stat_pack/penalties.rb +2 -2
- data/lib/sportradar/api/football/stat_pack/punt_returns.rb +7 -6
- data/lib/sportradar/api/football/stat_pack/punts.rb +12 -10
- data/lib/sportradar/api/football/stat_pack/receiving.rb +10 -9
- data/lib/sportradar/api/football/stat_pack/rushing.rb +11 -9
- data/lib/sportradar/api/football/stat_pack.rb +7 -3
- data/lib/sportradar/api/football/team.rb +160 -0
- data/lib/sportradar/api/football/venue.rb +25 -0
- data/lib/sportradar/api/football/week.rb +57 -0
- data/lib/sportradar/api/football.rb +43 -0
- data/lib/sportradar/api/mma/venue.rb +1 -1
- data/lib/sportradar/api/request.rb +19 -2
- data/lib/sportradar/api/version.rb +1 -1
- data/lib/sportradar/api.rb +0 -41
- metadata +41 -43
- data/lib/sportradar/api/ncaafb/drive.rb +0 -89
- data/lib/sportradar/api/ncaafb/game.rb +0 -161
- data/lib/sportradar/api/ncaafb/play.rb +0 -39
- data/lib/sportradar/api/ncaafb/player.rb +0 -61
- data/lib/sportradar/api/ncaafb/quarter.rb +0 -37
- data/lib/sportradar/api/ncaafb/season.rb +0 -71
- data/lib/sportradar/api/ncaafb/team.rb +0 -69
- data/lib/sportradar/api/ncaafb/week.rb +0 -33
- data/lib/sportradar/api/ncaafb.rb +0 -185
- data/lib/sportradar/api/nfl/.play_statistics.rb.swo +0 -0
- data/lib/sportradar/api/nfl/broadcast.rb +0 -13
- data/lib/sportradar/api/nfl/changelog.rb +0 -17
- data/lib/sportradar/api/nfl/coach.rb +0 -17
- data/lib/sportradar/api/nfl/conference.rb +0 -17
- data/lib/sportradar/api/nfl/depth_chart.rb +0 -47
- data/lib/sportradar/api/nfl/division.rb +0 -16
- data/lib/sportradar/api/nfl/draft.rb +0 -16
- data/lib/sportradar/api/nfl/drive.rb +0 -73
- data/lib/sportradar/api/nfl/event.rb +0 -19
- data/lib/sportradar/api/nfl/franchise.rb +0 -14
- data/lib/sportradar/api/nfl/game.rb +0 -123
- data/lib/sportradar/api/nfl/game_statistic.rb +0 -133
- data/lib/sportradar/api/nfl/hierarchy.rb +0 -19
- data/lib/sportradar/api/nfl/injury.rb +0 -16
- data/lib/sportradar/api/nfl/league_depth_chart.rb +0 -26
- data/lib/sportradar/api/nfl/play.rb +0 -39
- data/lib/sportradar/api/nfl/play_statistics.rb +0 -249
- data/lib/sportradar/api/nfl/player.rb +0 -56
- data/lib/sportradar/api/nfl/position.rb +0 -14
- data/lib/sportradar/api/nfl/quarter.rb +0 -29
- data/lib/sportradar/api/nfl/scoring.rb +0 -25
- data/lib/sportradar/api/nfl/season.rb +0 -23
- data/lib/sportradar/api/nfl/situation.rb +0 -18
- data/lib/sportradar/api/nfl/statistic.rb +0 -28
- data/lib/sportradar/api/nfl/summary.rb +0 -17
- data/lib/sportradar/api/nfl/team.rb +0 -56
- data/lib/sportradar/api/nfl/team_depth_chart.rb +0 -44
- data/lib/sportradar/api/nfl/venue.rb +0 -22
- data/lib/sportradar/api/nfl/week.rb +0 -16
- data/lib/sportradar/api/nfl.rb +0 -211
data/lib/sportradar/api/nfl.rb
DELETED
@@ -1,211 +0,0 @@
|
|
1
|
-
module Sportradar
|
2
|
-
module Api
|
3
|
-
class Nfl < Request
|
4
|
-
attr_accessor :league, :access_level, :simulation
|
5
|
-
|
6
|
-
def initialize( access_level = "ot")
|
7
|
-
@league = "nfl"
|
8
|
-
raise Sportradar::Api::Error::InvalidAccessLevel unless allowed_access_levels.include? access_level
|
9
|
-
@access_level = access_level
|
10
|
-
end
|
11
|
-
|
12
|
-
def schedule(year = Date.today.year, season = "reg")
|
13
|
-
raise Sportradar::Api::Error::InvalidSeason unless allowed_seasons.include? season
|
14
|
-
response = get request_url("games/#{ year }/#{ season }/schedule")
|
15
|
-
if response.success? && response["season"]
|
16
|
-
Sportradar::Api::Nfl::Season.new response["season"]
|
17
|
-
else
|
18
|
-
response
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
def weekly_schedule(week = 1, year = Date.today.year, season = "reg")
|
23
|
-
response = get request_url("games/#{ week_path(year, season, week) }/schedule")
|
24
|
-
if response.success? && response["season"]
|
25
|
-
Sportradar::Api::Nfl::Season.new response["season"]
|
26
|
-
else
|
27
|
-
response
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
def weekly_depth_charts(week = 1, year = Date.today.year, season = "reg" )
|
32
|
-
response = get request_url("seasontd/#{ week_path(year, season, week) }/depth_charts")
|
33
|
-
if response.success?
|
34
|
-
Sportradar::Api::Nfl::LeagueDepthChart.new response['season']
|
35
|
-
else
|
36
|
-
response
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
def weekly_injuries(week = 1, year = Date.today.year, season = "reg")
|
41
|
-
response = get request_url("seasontd/#{ week_path(year, season, week) }/injuries")
|
42
|
-
if response.success? && response["season"]
|
43
|
-
Sportradar::Api::Nfl::Season.new response["season"]
|
44
|
-
else
|
45
|
-
response
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
# past_game_id = "0141a0a5-13e5-4b28-b19f-0c3923aaef6e"
|
50
|
-
# future_game_id = "28290722-4ceb-4a4c-a4e5-1f9bec7283b3"
|
51
|
-
def game_boxscore(game_id)
|
52
|
-
check_simulation(game_id)
|
53
|
-
response = get request_url("games/#{ game_id }/boxscore")
|
54
|
-
if response.success? && response["game"] # mostly done, just missing play statistics
|
55
|
-
Sportradar::Api::Nfl::Game.new response["game"]
|
56
|
-
else
|
57
|
-
response
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
def game_roster(game_id)
|
62
|
-
check_simulation(game_id)
|
63
|
-
response = get request_url("games/#{ game_id }/roster")
|
64
|
-
if response.success? && response["game"]
|
65
|
-
Sportradar::Api::Nfl::Game.new response["game"]
|
66
|
-
else
|
67
|
-
response
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
def game_statistics(game_id)
|
72
|
-
check_simulation(game_id)
|
73
|
-
response = get request_url("games/#{ game_id }/statistics")
|
74
|
-
if response.success? && response["game"]
|
75
|
-
Sportradar::Api::Nfl::Game.new response["game"]
|
76
|
-
else
|
77
|
-
response
|
78
|
-
end
|
79
|
-
## Need to properly implement statistics
|
80
|
-
end
|
81
|
-
|
82
|
-
def play_by_play(game_id)
|
83
|
-
check_simulation(game_id)
|
84
|
-
response = get request_url("games/#{ game_id }/pbp")
|
85
|
-
if response.success? && response["game"]
|
86
|
-
Sportradar::Api::Nfl::Game.new response["game"]
|
87
|
-
else
|
88
|
-
response
|
89
|
-
end
|
90
|
-
# need to get into quarters, drives, plays, stats more still
|
91
|
-
end
|
92
|
-
|
93
|
-
# player_id = "ede260be-5ae6-4a06-887b-e4a130932705"
|
94
|
-
def player_profile(player_id)
|
95
|
-
response = get request_url("players/#{ player_id }/profile")
|
96
|
-
if response.success? && response["player"]
|
97
|
-
Sportradar::Api::Nfl::Player.new response["player"]
|
98
|
-
else
|
99
|
-
response
|
100
|
-
end
|
101
|
-
end
|
102
|
-
|
103
|
-
# team_id = "97354895-8c77-4fd4-a860-32e62ea7382a"
|
104
|
-
def seasonal_statistics(team_id, year = Date.today.year, season = "reg")
|
105
|
-
raise Sportradar::Api::Error::InvalidLeague unless allowed_seasons.include? season
|
106
|
-
response = get request_url("seasontd/#{ year }/#{ season }/teams/#{ team_id }/statistics")
|
107
|
-
if response.success? && response["season"]
|
108
|
-
Sportradar::Api::Nfl::Season.new response["season"]
|
109
|
-
else
|
110
|
-
response
|
111
|
-
end
|
112
|
-
# TODO: Object map team & player records - statistics
|
113
|
-
end
|
114
|
-
|
115
|
-
def team_profile(team_id)
|
116
|
-
response = get request_url("teams/#{ team_id }/profile")
|
117
|
-
if response.success? && response["team"]
|
118
|
-
Sportradar::Api::Nfl::Team.new response["team"]
|
119
|
-
else
|
120
|
-
response
|
121
|
-
end
|
122
|
-
end
|
123
|
-
|
124
|
-
def league_hierarchy
|
125
|
-
response = get request_url("league/hierarchy")
|
126
|
-
if response.success? && response["league"]
|
127
|
-
Sportradar::Api::Nfl::Hierarchy.new response["league"]
|
128
|
-
else
|
129
|
-
response
|
130
|
-
end
|
131
|
-
end
|
132
|
-
|
133
|
-
def standings(year = Date.today.year)
|
134
|
-
response = get request_url("seasontd/#{ year }/standings")
|
135
|
-
if response.success? && response["season"]
|
136
|
-
Sportradar::Api::Nfl::Season.new response["season"]
|
137
|
-
else
|
138
|
-
response
|
139
|
-
end
|
140
|
-
# TODO Needs implement rankings/records/stats on team
|
141
|
-
end
|
142
|
-
|
143
|
-
def daily_changelog(date = Date.today)
|
144
|
-
response = get request_url("league/#{date_path(date)}/changes")
|
145
|
-
if response.success? && response["league"] && response["league"]["changelog"]
|
146
|
-
Sportradar::Api::Nfl::Changelog.new response["league"]["changelog"]
|
147
|
-
else
|
148
|
-
response
|
149
|
-
end
|
150
|
-
end
|
151
|
-
|
152
|
-
def simulation_games
|
153
|
-
[
|
154
|
-
"f45b4a31-b009-4039-8394-42efbc6d5532",
|
155
|
-
"5a7042cb-fe7a-4838-b93f-6b8c167ec384",
|
156
|
-
"7f761bb5-7963-43ea-a01b-baf4f5d50fe3"
|
157
|
-
]
|
158
|
-
end
|
159
|
-
|
160
|
-
def active_simulation
|
161
|
-
game = simulation_games.lazy.map {|game_id| game_boxscore game_id }.find{ |g| g.status == 'inprogress' if g.is_a?(Sportradar::Api::Nfl::Game) }
|
162
|
-
if game
|
163
|
-
puts "Live Game: #{game.summary.home.full_name} vs #{game.summary.away.full_name}. Q#{game.quarter} #{game.clock}. game_id='#{game.id}'"
|
164
|
-
game
|
165
|
-
else
|
166
|
-
"No active simulation"
|
167
|
-
end
|
168
|
-
end
|
169
|
-
|
170
|
-
private
|
171
|
-
|
172
|
-
def check_simulation(game_id)
|
173
|
-
@simulation = true if simulation_games.include?(game_id)
|
174
|
-
end
|
175
|
-
|
176
|
-
def request_url(path)
|
177
|
-
if simulation
|
178
|
-
"/nfl-sim1/#{path}"
|
179
|
-
else
|
180
|
-
"/nfl-#{access_level}#{version}/#{path}"
|
181
|
-
end
|
182
|
-
end
|
183
|
-
|
184
|
-
def api_key
|
185
|
-
if access_level == 'o'
|
186
|
-
Sportradar::Api.api_key_params("nfl", "production")
|
187
|
-
else
|
188
|
-
Sportradar::Api.api_key_params("nfl")
|
189
|
-
end
|
190
|
-
end
|
191
|
-
|
192
|
-
def version
|
193
|
-
Sportradar::Api.version("nfl")
|
194
|
-
end
|
195
|
-
|
196
|
-
def allowed_access_levels
|
197
|
-
["o", "ot"]
|
198
|
-
end
|
199
|
-
|
200
|
-
def allowed_seasons
|
201
|
-
["pre", "reg", "pst"]
|
202
|
-
end
|
203
|
-
end
|
204
|
-
end
|
205
|
-
end
|
206
|
-
|
207
|
-
__END__
|
208
|
-
|
209
|
-
http://api.sportradar.us/nfl-ot1/games/f45b4a31-b009-4039-8394-42efbc6d5532/pbp.xml?api_key=fzve3ze2xnvs8pbtpddx4t58
|
210
|
-
http://api.sportradar.us/nfl-ot1/games/5a7042cb-fe7a-4838-b93f-6b8c167ec384/pbp.xml?api_key=fzve3ze2xnvs8pbtpddx4t58
|
211
|
-
http://api.sportradar.us/nfl-ot1/games/7f761bb5-7963-43ea-a01b-baf4f5d50fe3/pbp.xml?api_key=fzve3ze2xnvs8pbtpddx4t58
|