espn_rb 0.0.1 → 0.0.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.
- data/Gemfile +10 -0
- data/README.md +83 -8
- data/Rakefile +16 -0
- data/lib/espn_rb/{headline_methods.yaml → api_definitions/headline_methods.yaml} +6 -3
- data/lib/espn_rb/api_definitions/headline_resources.yaml +49 -0
- data/lib/espn_rb/headline.rb +39 -11
- data/lib/espn_rb/headline_response.rb +43 -0
- data/lib/espn_rb/utilities.rb +18 -0
- data/lib/espn_rb/version.rb +2 -1
- data/lib/espn_rb.rb +7 -10
- data/spec/espn_rb_spec.rb +45 -3
- data/spec/mock_requests/all_headlines_request.txt +1 -0
- data/spec/spec_helper.rb +2 -1
- metadata +8 -4
- data/lib/espn_rb/headline_resources.yaml +0 -56
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,24 +1,99 @@
|
|
1
1
|
# EspnRb
|
2
2
|
|
3
|
-
|
3
|
+
A ruby wrapper for the ESPN api. It allows you to interact, in a semantically pleasing way, with the ESPN api. Currently it only allows access to the publicly available Headline API which can be found [here](http://developer.espn.com/docs/headlines). I am working to bring more of ESPN's features to espn_rb. While I do that I'll try to keep this document updated to its current functionality. That said, I hope you enjoy.
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
7
7
|
Add this line to your application's Gemfile:
|
8
|
-
|
8
|
+
|
9
9
|
gem 'espn_rb'
|
10
10
|
|
11
|
-
|
11
|
+
## Espn Headines
|
12
|
+
|
13
|
+
Instantiate the EspnRb object and check the headlines.
|
14
|
+
|
15
|
+
#### Get all headlines
|
16
|
+
|
17
|
+
```ruby
|
18
|
+
require 'espn_rb'
|
19
|
+
espn = Espn.headlines
|
20
|
+
|
21
|
+
espn.all
|
22
|
+
```
|
23
|
+
|
24
|
+
Which will return an HeadlineResponse object. To get the response straight from the horses' mouth:
|
25
|
+
|
26
|
+
#### Get ESPN response as JSON
|
27
|
+
|
28
|
+
```ruby
|
29
|
+
# from above
|
30
|
+
|
31
|
+
espn.all.response
|
32
|
+
#=> ESPN's response string as JSON
|
33
|
+
```
|
34
|
+
|
35
|
+
The raw response from ESPN will give you the top ten stories meeting your criteria. Since this is a basic collection and each headline share many common attributes there are collection methods defined on the HeadlineResponse object. Use them like so.
|
36
|
+
|
37
|
+
#### Collections
|
38
|
+
|
39
|
+
```ruby
|
40
|
+
# from above
|
41
|
+
|
42
|
+
# Available methods are [headlines descriptions sources bylines types]
|
43
|
+
|
44
|
+
espn.all.response.titles
|
45
|
+
#=> ["array", "of", "ESPN", "titles"]
|
46
|
+
|
47
|
+
espn.all.response.descriptions
|
48
|
+
#=> ["array", "of", "ESPN", "descriptions"]
|
49
|
+
|
50
|
+
# etc...
|
51
|
+
```
|
52
|
+
|
53
|
+
#### API methods
|
54
|
+
|
55
|
+
When calling on the api to get new data you can pass any (soon) of the methods supported by the API.
|
56
|
+
|
57
|
+
```ruby
|
58
|
+
espn = EspnRb.headlines
|
59
|
+
|
60
|
+
espn.nba(:news) #=> HeadlineResponse
|
61
|
+
espn.nba(:top) #=> HeadlineResponse
|
62
|
+
```
|
63
|
+
|
64
|
+
#### HELP
|
65
|
+
|
66
|
+
```ruby
|
67
|
+
espn = Espn.headlines
|
68
|
+
espn.help
|
69
|
+
#=> methods/descriptions below....
|
70
|
+
```
|
71
|
+
You are currently using the headlines api from here you can do the follow:
|
72
|
+
|
73
|
+
Method Description
|
12
74
|
|
13
|
-
|
75
|
+
:all News across all sports/sections
|
76
|
+
:golf Golf
|
77
|
+
:boxing Boxing
|
78
|
+
:mma Mixed Martial Arts
|
79
|
+
:racing Auto Racing
|
80
|
+
:soccer Professional soccer (US focus)
|
81
|
+
:tennis Tennis
|
82
|
+
:mlb Major League Baseball (MLB)
|
83
|
+
:nba National Basketball Association (NBA)
|
84
|
+
:nfl National Football League (NFL)
|
85
|
+
:nhl National Hockey League (NHL)
|
86
|
+
:nascar NASCAR racing
|
87
|
+
:wnba Women's National Basketball Association (WNBA)
|
88
|
+
:ncaa_basketball NCAA Men's College Basketball
|
89
|
+
:ncaa_football NCAA College Football
|
90
|
+
:ncaa_womens_basketball NCAA Women's College Basketball
|
14
91
|
|
15
|
-
Or install it yourself as:
|
16
92
|
|
17
|
-
$ gem install espn_rb
|
18
93
|
|
19
|
-
|
94
|
+
---
|
95
|
+
I am actively work on this. Check the commit log to see where I'm at, and check the issues to see how you can contribute.
|
20
96
|
|
21
|
-
Currently this doesn't do much. I am actively work on this. Check the commit log to see where I'm at, and check the issues to see how you can contribute.
|
22
97
|
|
23
98
|
## Contributing
|
24
99
|
|
data/Rakefile
CHANGED
@@ -1,2 +1,18 @@
|
|
1
1
|
#!/usr/bin/env rake
|
2
2
|
require "bundler/gem_tasks"
|
3
|
+
require 'rspec/core/rake_task'
|
4
|
+
|
5
|
+
desc 'Default: run specs.'
|
6
|
+
task :default => :spec
|
7
|
+
|
8
|
+
desc "Run specs"
|
9
|
+
RSpec::Core::RakeTask.new do |t|
|
10
|
+
t.pattern = "./spec/**/*_spec.rb"
|
11
|
+
end
|
12
|
+
|
13
|
+
desc "Generate code coverage"
|
14
|
+
RSpec::Core::RakeTask.new(:coverage) do |t|
|
15
|
+
t.pattern = "./spec/**/*_spec.rb"
|
16
|
+
t.rcov = true
|
17
|
+
t.rcov_opts = ['--exclude', 'spec']
|
18
|
+
end
|
@@ -1,10 +1,13 @@
|
|
1
1
|
---
|
2
2
|
:news:
|
3
|
-
:
|
3
|
+
:url: /news
|
4
4
|
:description: Retrieves a stream of all news for current date.
|
5
5
|
:news_headlines:
|
6
|
-
:
|
6
|
+
:url: /news/headlines
|
7
7
|
:description: Retrieves top stories as selected by ESPN editorial staff.
|
8
8
|
:top:
|
9
|
-
:
|
9
|
+
:url: /news/headlines/top
|
10
10
|
:description: Retrieves top stories as shown on ESPN.com home page. Only applicable to /sports/ resource.
|
11
|
+
:for_date:
|
12
|
+
:url: /news/dates/:yyyymmdd
|
13
|
+
:description: Retrieves news for a specific date.
|
@@ -0,0 +1,49 @@
|
|
1
|
+
---
|
2
|
+
:all:
|
3
|
+
:url: /sports
|
4
|
+
:description: News across all sports/sections
|
5
|
+
:golf:
|
6
|
+
:url: /sports/golf
|
7
|
+
:description: Golf
|
8
|
+
:boxing:
|
9
|
+
:url: /sports/boxing
|
10
|
+
:description: Boxing
|
11
|
+
:mma:
|
12
|
+
:url: /sports/mma
|
13
|
+
:description: Mixed Martial Arts
|
14
|
+
:racing:
|
15
|
+
:url: /sports/racing
|
16
|
+
:description: Auto Racing
|
17
|
+
:soccer:
|
18
|
+
:url: /sports/soccer
|
19
|
+
:description: Professional soccer (US focus)
|
20
|
+
:tennis:
|
21
|
+
:url: /sports/tennis
|
22
|
+
:description: Tennis
|
23
|
+
:mlb:
|
24
|
+
:url: /sports/baseball/mlb
|
25
|
+
:description: Major League Baseball (MLB)
|
26
|
+
:nba:
|
27
|
+
:url: /sports/basketball/nba
|
28
|
+
:description: National Basketball Association (NBA)
|
29
|
+
:nfl:
|
30
|
+
:url: /sports/football/nfl
|
31
|
+
:description: National Football League (NFL)
|
32
|
+
:nhl:
|
33
|
+
:url: /sports/hockey/nhl
|
34
|
+
:description: National Hockey League (NHL)
|
35
|
+
:nascar:
|
36
|
+
:url: /sports/racing/nascar
|
37
|
+
:description: NASCAR racing
|
38
|
+
:wnba:
|
39
|
+
:url: /sports/basketball/wnba
|
40
|
+
:description: Women's National Basketball Association (WNBA)
|
41
|
+
:ncaa_basketball:
|
42
|
+
:url: /sports/basketball/mens-college-basketball
|
43
|
+
:description: NCAA Men's College Basketball
|
44
|
+
:ncaa_football:
|
45
|
+
:url: /sports/football/college-football
|
46
|
+
:description: NCAA College Football
|
47
|
+
:ncaa_womens_basketball:
|
48
|
+
:url: /sports/basketball/womens-college-basketball
|
49
|
+
:description: NCAA Women's College Basketball
|
data/lib/espn_rb/headline.rb
CHANGED
@@ -1,23 +1,51 @@
|
|
1
1
|
module EspnRb
|
2
|
-
|
3
|
-
|
4
|
-
|
2
|
+
class Headline
|
3
|
+
attr_reader :api_key
|
4
|
+
|
5
|
+
def initialize(opts)
|
6
|
+
@api_key = opts && opts[:api_key].nil? ? opts[:api_key] : ENV['espn_api_key']
|
7
|
+
raise StandardError, "You must specify an API key." if @api_key.nil?
|
8
|
+
create_headline_methods
|
9
|
+
end
|
10
|
+
|
11
|
+
def api_resources
|
12
|
+
@api_resources ||= YAML::load(File.read('lib/espn_rb/api_definitions/headline_resources.yaml'))
|
13
|
+
end
|
14
|
+
|
15
|
+
def api_methods
|
16
|
+
@api_methods ||= YAML::load(File.read('lib/espn_rb/api_definitions/headline_methods.yaml'))
|
17
|
+
end
|
18
|
+
|
19
|
+
def create_headline_methods
|
20
|
+
api_resources.each do |k,v|
|
21
|
+
define_singleton_method(k) do |opt=nil|
|
22
|
+
get_results(v[:url], get_api_method(opt))
|
23
|
+
end
|
24
|
+
end
|
5
25
|
end
|
6
26
|
|
7
|
-
def
|
8
|
-
|
27
|
+
def get_api_method(opt)
|
28
|
+
case opt.class.to_s
|
29
|
+
when "Symbol"
|
30
|
+
api_method = api_methods.keys.include?(opt) ? api_methods[opt][:url] : (raise StandardError, "The parameter you sent is not available.")
|
31
|
+
when "Hash"
|
32
|
+
unless opt[:for_date].nil?
|
33
|
+
api_method = api_methods[:for_date][:url].gsub(":yyyymmdd", Date.parse(opt[:for_date]).strftime("%Y%m%d"))
|
34
|
+
else
|
35
|
+
end
|
36
|
+
else
|
37
|
+
api_method = api_methods[:news][:url]
|
38
|
+
end
|
9
39
|
end
|
10
40
|
|
11
41
|
def get_results(resource, method)
|
12
42
|
http = Net::HTTP.new("api.espn.com")
|
13
|
-
request = Net::HTTP::Get.new("#{resource}#{method}?apikey=#{
|
14
|
-
http.request(request)
|
43
|
+
request = Net::HTTP::Get.new("/#{EspnRb::API_VERSION}#{resource}#{method}?apikey=#{@api_key}")
|
44
|
+
HeadlineResponse.new JSON.parse(http.request(request).body)
|
15
45
|
end
|
16
46
|
|
17
|
-
def
|
18
|
-
|
47
|
+
def help
|
48
|
+
EspnRb::Utilities.help api_resources.map {|k,v| "\t#{(':' + k.to_s).ljust(25)} #{v[:description]}"}.join("\n")
|
19
49
|
end
|
20
|
-
|
21
|
-
extend self
|
22
50
|
end
|
23
51
|
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
class HeadlineResponse
|
2
|
+
attr_reader :response,:responses
|
3
|
+
|
4
|
+
def initialize(response)
|
5
|
+
@response = @response || response
|
6
|
+
@responses = @response['headlines'].map {|h| HeadlineItem.new(h)}
|
7
|
+
@reports = create_reports(reponse)
|
8
|
+
end
|
9
|
+
|
10
|
+
def [](int)
|
11
|
+
@responses[int]
|
12
|
+
end
|
13
|
+
|
14
|
+
def method_missing(sym, *args)
|
15
|
+
sym.to_s == "titles"? sym = :headlines : sym
|
16
|
+
|
17
|
+
if %w{headlines descriptions sources bylines types}.include?(sym.to_s)
|
18
|
+
@response["headlines"].map {|h| h[sym.to_s[0..-2]] }
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
class HeadlineItem
|
23
|
+
def initialize(opts)
|
24
|
+
@headline = opts
|
25
|
+
end
|
26
|
+
|
27
|
+
def web_url(mobile=false)
|
28
|
+
(mobile == true) ? @headline["links"]["mobile"]["href"] : @headline["links"]["web"]["href"]
|
29
|
+
end
|
30
|
+
|
31
|
+
def title
|
32
|
+
@headline["headline"]
|
33
|
+
end
|
34
|
+
|
35
|
+
def id
|
36
|
+
@headline["id"]
|
37
|
+
end
|
38
|
+
|
39
|
+
def api_url
|
40
|
+
@headline["links"]["api"]["news"]["href"]
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module EspnRb
|
2
|
+
module Utilities
|
3
|
+
def self.help(str)
|
4
|
+
puts "-----------------------------Welcome to EspnRb.---------------------------------\n\n"
|
5
|
+
puts s = <<EOF
|
6
|
+
_.-=""=-._
|
7
|
+
.'\\\\-++++-//'.
|
8
|
+
( || || )
|
9
|
+
'.// \\\\.'
|
10
|
+
`'-=..=-'`
|
11
|
+
EOF
|
12
|
+
puts "--------------------------------------------------------------------------------"
|
13
|
+
puts "You are currently using the headlines api from here you can do the follow:\n\n"
|
14
|
+
puts "\t#{'Method'.ljust(25)} Description\n\n"
|
15
|
+
puts str
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/lib/espn_rb/version.rb
CHANGED
data/lib/espn_rb.rb
CHANGED
@@ -1,18 +1,15 @@
|
|
1
1
|
require "espn_rb/version"
|
2
2
|
require "espn_rb/headline.rb"
|
3
|
+
require 'espn_rb/headline_response.rb'
|
4
|
+
require 'espn_rb/utilities.rb'
|
5
|
+
|
6
|
+
require 'json'
|
3
7
|
require "net/http"
|
4
8
|
|
5
9
|
module EspnRb
|
6
|
-
|
7
|
-
|
8
|
-
def api_key
|
9
|
-
raise StandardError, "You must specify an API key." unless ENV['espn_api_key']
|
10
|
-
ENV['espn_api_key']
|
11
|
-
end
|
10
|
+
include EspnRb::Utilities
|
12
11
|
|
13
|
-
def
|
14
|
-
EspnRb::Headline
|
12
|
+
def self.headlines(options=nil)
|
13
|
+
EspnRb::Headline.new(options)
|
15
14
|
end
|
16
|
-
|
17
|
-
extend self
|
18
15
|
end
|
data/spec/espn_rb_spec.rb
CHANGED
@@ -1,7 +1,49 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe EspnRb::Headline do
|
4
|
-
|
5
|
-
|
4
|
+
before(:each) do
|
5
|
+
@espn = EspnRb.headlines
|
6
|
+
|
7
|
+
# Stub request for valid #all_headlines call
|
8
|
+
stub_request(:get, "http://api.espn.com/v1/sports/news?apikey=#{@espn.api_key}").to_return(
|
9
|
+
:status => 200,
|
10
|
+
:body => File.read('spec/mock_requests/all_headlines_request.txt'),
|
11
|
+
:headers => {})
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should return valid HeadlineResponse when #all is called." do
|
15
|
+
@espn.all.class.should eq(HeadlineResponse)
|
6
16
|
end
|
7
|
-
|
17
|
+
|
18
|
+
it "get_results from api.espn.com" do
|
19
|
+
@espn.get_results(@espn.api_resources[:all][:url], @espn.api_methods[:news][:url]).class.should eq(HeadlineResponse)
|
20
|
+
end
|
21
|
+
|
22
|
+
context "api_resources and api_methods should be defined properly (Ensure no typos)" do
|
23
|
+
it {@espn.api_resources[:nba][:url].should eq("/sports/basketball/nba") }
|
24
|
+
it {@espn.api_resources[:all][:url].should eq("/sports") }
|
25
|
+
it {@espn.api_resources[:golf][:url].should eq("/sports/golf") }
|
26
|
+
it {@espn.api_resources[:boxing][:url].should eq("/sports/boxing") }
|
27
|
+
it {@espn.api_resources[:mma][:url].should eq("/sports/mma") }
|
28
|
+
it {@espn.api_resources[:racing][:url].should eq("/sports/racing") }
|
29
|
+
it {@espn.api_resources[:soccer][:url].should eq("/sports/soccer") }
|
30
|
+
it {@espn.api_resources[:tennis][:url].should eq("/sports/tennis") }
|
31
|
+
it {@espn.api_resources[:mlb][:url].should eq("/sports/baseball/mlb") }
|
32
|
+
it {@espn.api_resources[:nfl][:url].should eq("/sports/football/nfl") }
|
33
|
+
it {@espn.api_resources[:nhl][:url].should eq("/sports/hockey/nhl") }
|
34
|
+
it {@espn.api_resources[:nascar][:url].should eq("/sports/racing/nascar") }
|
35
|
+
it {@espn.api_resources[:wnba][:url].should eq("/sports/basketball/wnba") }
|
36
|
+
it {@espn.api_resources[:ncaa_basketball][:url].should eq("/sports/basketball/mens-college-basketball") }
|
37
|
+
it {@espn.api_resources[:ncaa_football][:url].should eq("/sports/football/college-football") }
|
38
|
+
it {@espn.api_resources[:ncaa_womens_basketball][:url].should eq("/sports/basketball/womens-college-basketball") }
|
39
|
+
end
|
40
|
+
|
41
|
+
|
42
|
+
describe HeadlineResponse do
|
43
|
+
context "returns the correct title information when #title is called" do
|
44
|
+
it {@espn.all.titles.first.should eq("Trail Blazers 86, Hornets 74")}
|
45
|
+
it {@espn.all.titles.last.should eq("Saint Mary's (Cal) 78, No. 24 Gonzaga 74") }
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
@@ -0,0 +1 @@
|
|
1
|
+
{"timestamp" :"2012-03-07T06:07:17Z","resultsOffset" :0,"status" :"success","resultsLimit" :10,"resultsCount" :638,"headlines" :[{"headline" :"Trail Blazers 86, Hornets 74","keywords" :[],"lastModified" :"2012-03-06T07:00:04Z","premium" :false,"mobileStory" :"","links" :{"api" :{"news" :{"href" :"http://api.espn.com/v1/sports/news/7651014"}},"web" :{"href" :"http://sports.espn.go.com/espn/wire?section=nba&id=7651014&ex_cid=espnapi_public"},"mobile" :{"href" :"http://m.espn.go.com/nba/story?storyId=7651014&ex_cid=espnapi_public"}},"type" :"Wire","related" :[],"id" :7651014,"story" :"","linkText" :"Trail Blazers 86, Hornets 74","source" :"Associated Press","description" :"A looming seven-game road trip clouded the Trail Blazers' relief that their three-game losing streak was over.","images" :[],"categories" :[{"description" :"NBA","type" :"league","sportId" :46,"leagueId" :46,"league" :{"id" :46,"description" :"NBA","links" :{"api" :{"leagues" :{"href" :"http://api.espn.com/v1/sports/basketball/nba"}},"web" :{"leagues" :{"href" :"http://espn.go.com/nba/?ex_cid=espnapi_public"}},"mobile" :{"leagues" :{"href" :"http://m.espn.go.com/nba/?ex_cid=espnapi_public"}}}}},{"description" :"Portland Trail Blazers","type" :"team","sportId" :46,"teamId" :22,"team" :{"id" :22,"description" :"Portland Trail Blazers","links" :{"api" :{"teams" :{"href" :"http://api.espn.com/v1/sports/basketball/nba/teams/22"}},"web" :{"teams" :{"href" :"http://espn.go.com/nba/team/_/name/por/portland-trail-blazers?ex_cid=espnapi_public"}},"mobile" :{"teams" :{"href" :"http://m.espn.go.com/nba/clubhouse?teamId=22&ex_cid=espnapi_public"}}}}},{"description" :"LaMarcus Aldridge","type" :"athlete","sportId" :46,"athleteId" :2983,"athlete" :{"id" :2983,"description" :"LaMarcus Aldridge","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/basketball/nba/athletes/2983"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nba/player/_/id/2983/lamarcus-aldridge?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nba/playercard?playerId=2983&ex_cid=espnapi_public"}}}}},{"description" :"New Orleans Hornets","type" :"team","sportId" :46,"teamId" :3,"team" :{"id" :3,"description" :"New Orleans Hornets","links" :{"api" :{"teams" :{"href" :"http://api.espn.com/v1/sports/basketball/nba/teams/3"}},"web" :{"teams" :{"href" :"http://espn.go.com/nba/team/_/name/no/new-orleans-hornets?ex_cid=espnapi_public"}},"mobile" :{"teams" :{"href" :"http://m.espn.go.com/nba/clubhouse?teamId=3&ex_cid=espnapi_public"}}}}},{"description" :"Minnesota Timberwolves","type" :"team","sportId" :46,"teamId" :16,"team" :{"id" :16,"description" :"Minnesota Timberwolves","links" :{"api" :{"teams" :{"href" :"http://api.espn.com/v1/sports/basketball/nba/teams/16"}},"web" :{"teams" :{"href" :"http://espn.go.com/nba/team/_/name/min/minnesota-timberwolves?ex_cid=espnapi_public"}},"mobile" :{"teams" :{"href" :"http://m.espn.go.com/nba/clubhouse?teamId=16&ex_cid=espnapi_public"}}}}},{"description" :"Nicolas Batum","type" :"athlete","sportId" :46,"athleteId" :3416,"athlete" :{"id" :3416,"description" :"Nicolas Batum","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/basketball/nba/athletes/3416"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nba/player/_/id/3416/nicolas-batum?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nba/playercard?playerId=3416&ex_cid=espnapi_public"}}}}},{"description" :"Marco Belinelli","type" :"athlete","sportId" :46,"athleteId" :3190,"athlete" :{"id" :3190,"description" :"Marco Belinelli","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/basketball/nba/athletes/3190"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nba/player/_/id/3190/marco-belinelli?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nba/playercard?playerId=3190&ex_cid=espnapi_public"}}}}},{"description" :"Chris Kaman","type" :"athlete","sportId" :46,"athleteId" :1982,"athlete" :{"id" :1982,"description" :"Chris Kaman","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/basketball/nba/athletes/1982"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nba/player/_/id/1982/chris-kaman?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nba/playercard?playerId=1982&ex_cid=espnapi_public"}}}}},{"description" :"Raymond Felton","type" :"athlete","sportId" :46,"athleteId" :2753,"athlete" :{"id" :2753,"description" :"Raymond Felton","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/basketball/nba/athletes/2753"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nba/player/_/id/2753/raymond-felton?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nba/playercard?playerId=2753&ex_cid=espnapi_public"}}}}},{"description" :"Jamal Crawford","type" :"athlete","sportId" :46,"athleteId" :165,"athlete" :{"id" :165,"description" :"Jamal Crawford","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/basketball/nba/athletes/165"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nba/player/_/id/165/jamal-crawford?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nba/playercard?playerId=165&ex_cid=espnapi_public"}}}}},{"description" :"Trevor Ariza","type" :"athlete","sportId" :46,"athleteId" :2426,"athlete" :{"id" :2426,"description" :"Trevor Ariza","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/basketball/nba/athletes/2426"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nba/player/_/id/2426/trevor-ariza?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nba/playercard?playerId=2426&ex_cid=espnapi_public"}}}}},{"description" :"Carl Landry","type" :"athlete","sportId" :46,"athleteId" :3217,"athlete" :{"id" :3217,"description" :"Carl Landry","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/basketball/nba/athletes/3217"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nba/player/_/id/3217/carl-landry?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nba/playercard?playerId=3217&ex_cid=espnapi_public"}}}}},{"description" :"Jason Smith","type" :"athlete","sportId" :46,"athleteId" :3232,"athlete" :{"id" :3232,"description" :"Jason Smith","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/basketball/nba/athletes/3232"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nba/player/_/id/3232/jason-smith?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nba/playercard?playerId=3232&ex_cid=espnapi_public"}}}}},{"description" :"Eric Gordon","type" :"athlete","sportId" :46,"athleteId" :3431,"athlete" :{"id" :3431,"description" :"Eric Gordon","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/basketball/nba/athletes/3431"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nba/player/_/id/3431/eric-gordon?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nba/playercard?playerId=3431&ex_cid=espnapi_public"}}}}},{"description" :"Emeka Okafor","type" :"athlete","sportId" :46,"athleteId" :2399,"athlete" :{"id" :2399,"description" :"Emeka Okafor","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/basketball/nba/athletes/2399"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nba/player/_/id/2399/emeka-okafor?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nba/playercard?playerId=2399&ex_cid=espnapi_public"}}}}},{"description" :"Xavier Henry","type" :"athlete","sportId" :46,"athleteId" :4241,"athlete" :{"id" :4241,"description" :"Xavier Henry","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/basketball/nba/athletes/4241"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nba/player/_/id/4241/xavier-henry?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nba/playercard?playerId=4241&ex_cid=espnapi_public"}}}}}],"published" :"2012-03-06T07:00:04Z"},{"headline" :"Oilers-Sharks Preview","keywords" :[],"lastModified" :"2012-03-06T06:55:01Z","premium" :false,"mobileStory" :"","links" :{"api" :{"news" :{"href" :"http://api.espn.com/v1/sports/news/7651009"}},"web" :{"href" :"http://sports.espn.go.com/espn/wire?section=nhl&id=7651009&ex_cid=espnapi_public"},"mobile" :{"href" :"http://m.espn.go.com/nhl/story?storyId=7651009&ex_cid=espnapi_public"}},"type" :"Wire","related" :[],"id" :7651009,"story" :"","linkText" :"Oilers-Sharks Preview","source" :"Associated Press","description" :"The San Jose Sharks are trying to reverse what's becoming a free fall through the Western Conference standings.","images" :[],"categories" :[{"description" :"NHL","type" :"league","sportId" :90,"leagueId" :90,"league" :{"id" :90,"description" :"NHL","links" :{"api" :{"leagues" :{"href" :"http://api.espn.com/v1/sports/hockey/nhl"}},"web" :{"leagues" :{"href" :"http://espn.go.com/nhl/?ex_cid=espnapi_public"}},"mobile" :{"leagues" :{"href" :"http://m.espn.go.com/nhl/?ex_cid=espnapi_public"}}}}},{"description" :"San Jose Sharks","type" :"team","sportId" :90,"teamId" :18,"team" :{"id" :18,"description" :"San Jose Sharks","links" :{"api" :{"teams" :{"href" :"http://api.espn.com/v1/sports/hockey/nhl/teams/18"}},"web" :{"teams" :{"href" :"http://espn.go.com/nhl/team/_/name/sj/san-jose-sharks?ex_cid=espnapi_public"}},"mobile" :{"teams" :{"href" :"http://m.espn.go.com/nhl/clubhouse?teamId=18&ex_cid=espnapi_public"}}}}},{"description" :"Edmonton Oilers","type" :"team","sportId" :90,"teamId" :6,"team" :{"id" :6,"description" :"Edmonton Oilers","links" :{"api" :{"teams" :{"href" :"http://api.espn.com/v1/sports/hockey/nhl/teams/6"}},"web" :{"teams" :{"href" :"http://espn.go.com/nhl/team/_/name/edm/edmonton-oilers?ex_cid=espnapi_public"}},"mobile" :{"teams" :{"href" :"http://m.espn.go.com/nhl/clubhouse?teamId=6&ex_cid=espnapi_public"}}}}},{"description" :"Douglas Murray","type" :"athlete","sportId" :90,"athleteId" :2100,"athlete" :{"id" :2100,"description" :"Douglas Murray","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/hockey/nhl/athletes/2100"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nhl/player/_/id/2100/douglas-murray?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nhl/playercard?playerId=2100&ex_cid=espnapi_public"}}}}},{"description" :"Logan Couture","type" :"athlete","sportId" :90,"athleteId" :3773,"athlete" :{"id" :3773,"description" :"Logan Couture","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/hockey/nhl/athletes/3773"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nhl/player/_/id/3773/logan-couture?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nhl/playercard?playerId=3773&ex_cid=espnapi_public"}}}}},{"description" :"Patrick Marleau","type" :"athlete","sportId" :90,"athleteId" :576,"athlete" :{"id" :576,"description" :"Patrick Marleau","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/hockey/nhl/athletes/576"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nhl/player/_/id/576/patrick-marleau?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nhl/playercard?playerId=576&ex_cid=espnapi_public"}}}}},{"description" :"Joe Thornton","type" :"athlete","sportId" :90,"athleteId" :939,"athlete" :{"id" :939,"description" :"Joe Thornton","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/hockey/nhl/athletes/939"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nhl/player/_/id/939/joe-thornton?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nhl/playercard?playerId=939&ex_cid=espnapi_public"}}}}},{"description" :"Anaheim Ducks","type" :"team","sportId" :90,"teamId" :25,"team" :{"id" :25,"description" :"Anaheim Ducks","links" :{"api" :{"teams" :{"href" :"http://api.espn.com/v1/sports/hockey/nhl/teams/25"}},"web" :{"teams" :{"href" :"http://espn.go.com/nhl/team/_/name/ana/anaheim-ducks?ex_cid=espnapi_public"}},"mobile" :{"teams" :{"href" :"http://m.espn.go.com/nhl/clubhouse?teamId=25&ex_cid=espnapi_public"}}}}},{"description" :"Jordan Eberle","type" :"athlete","sportId" :90,"athleteId" :5032,"athlete" :{"id" :5032,"description" :"Jordan Eberle","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/hockey/nhl/athletes/5032"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nhl/player/_/id/5032/jordan-eberle?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nhl/playercard?playerId=5032&ex_cid=espnapi_public"}}}}},{"description" :"Shawn Horcoff","type" :"athlete","sportId" :90,"athleteId" :1080,"athlete" :{"id" :1080,"description" :"Shawn Horcoff","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/hockey/nhl/athletes/1080"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nhl/player/_/id/1080/shawn-horcoff?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nhl/playercard?playerId=1080&ex_cid=espnapi_public"}}}}},{"description" :"Taylor Hall","type" :"athlete","sportId" :90,"athleteId" :5428,"athlete" :{"id" :5428,"description" :"Taylor Hall","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/hockey/nhl/athletes/5428"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nhl/player/_/id/5428/taylor-hall?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nhl/playercard?playerId=5428&ex_cid=espnapi_public"}}}}}],"published" :"2012-03-06T06:55:01Z"},{"headline" :"Gonzaga forces OT but loses WCC tourney title","keywords" :[],"lastModified" :"2012-03-06T06:46:58Z","premium" :false,"mobileStory" :"","links" :{"api" :{"news" :{"href" :"http://api.espn.com/v1/sports/news/7650995"}},"web" :{"href" :"http://sports.espn.go.com/espn/wire?section=ncb&id=7650995&ex_cid=espnapi_public"},"mobile" :{"href" :"http://m.espn.go.com/ncb/story?storyId=7650995&ex_cid=espnapi_public"}},"type" :"Wire","related" :[],"id" :7650995,"story" :"","linkText" :"Gonzaga forces OT but loses WCC tourney title","source" :"Associated Press","description" :"Gonzaga players could have given up when they were down by five points with just 30 seconds remaining.","images" :[],"categories" :[{"description" :"NCB","type" :"league","sportId" :41,"leagueId" :41,"league" :{"id" :41,"description" :"NCB","links" :{"api" :{"leagues" :{"href" :"http://api.espn.com/v1/sports/basketball/mens-college-basketball"}},"web" :{"leagues" :{"href" :"http://espn.go.com/mens-college-basketball/?ex_cid=espnapi_public"}},"mobile" :{"leagues" :{"href" :"http://m.espn.go.com/ncb/?ex_cid=espnapi_public"}}}}},{"description" :"Gonzaga Bulldogs","type" :"team","sportId" :41,"teamId" :2250,"team" :{"id" :2250,"description" :"Gonzaga Bulldogs","links" :{"api" :{"teams" :{"href" :"http://api.espn.com/v1/sports/basketball/mens-college-basketball/teams/2250"}},"web" :{"teams" :{"href" :"http://espn.go.com/mens-college-basketball/team/_/id/2250/gonzaga-bulldogs?ex_cid=espnapi_public"}},"mobile" :{"teams" :{"href" :"http://m.espn.go.com/ncb/clubhouse?teamId=2250&ex_cid=espnapi_public"}}}}},{"description" :"Saint Mary's Gaels","type" :"team","sportId" :41,"teamId" :2608,"team" :{"id" :2608,"description" :"Saint Mary's Gaels","links" :{"api" :{"teams" :{"href" :"http://api.espn.com/v1/sports/basketball/mens-college-basketball/teams/2608"}},"web" :{"teams" :{"href" :"http://espn.go.com/mens-college-basketball/team/_/id/2608/saint-mary's-gaels?ex_cid=espnapi_public"}},"mobile" :{"teams" :{"href" :"http://m.espn.go.com/ncb/clubhouse?teamId=2608&ex_cid=espnapi_public"}}}}},{"description" :"Hofstra Flying Dutchmen","type" :"team","sportId" :41,"teamId" :2275,"team" :{"id" :2275,"description" :"Hofstra Flying Dutchmen","links" :{"api" :{"teams" :{"href" :"http://api.espn.com/v1/sports/basketball/mens-college-basketball/teams/2275"}},"web" :{"teams" :{"href" :"http://espn.go.com/mens-college-basketball/team/_/id/2275/hofstra-pride?ex_cid=espnapi_public"}},"mobile" :{"teams" :{"href" :"http://m.espn.go.com/ncb/clubhouse?teamId=2275&ex_cid=espnapi_public"}}}}}],"published" :"2012-03-06T06:46:58Z"},{"headline" :"Nuggets 119, Kings 116, OT","keywords" :[],"lastModified" :"2012-03-06T06:41:03Z","premium" :false,"mobileStory" :"","links" :{"api" :{"news" :{"href" :"http://api.espn.com/v1/sports/news/7650990"}},"web" :{"href" :"http://sports.espn.go.com/espn/wire?section=nba&id=7650990&ex_cid=espnapi_public"},"mobile" :{"href" :"http://m.espn.go.com/nba/story?storyId=7650990&ex_cid=espnapi_public"}},"type" :"Wire","related" :[],"id" :7650990,"story" :"","linkText" :"Nuggets 119, Kings 116, OT","source" :"Associated Press","description" :"Arron Afflalo saved the game and Ty Lawson wrapped it up.","images" :[],"categories" :[{"description" :"NBA","type" :"league","sportId" :46,"leagueId" :46,"league" :{"id" :46,"description" :"NBA","links" :{"api" :{"leagues" :{"href" :"http://api.espn.com/v1/sports/basketball/nba"}},"web" :{"leagues" :{"href" :"http://espn.go.com/nba/?ex_cid=espnapi_public"}},"mobile" :{"leagues" :{"href" :"http://m.espn.go.com/nba/?ex_cid=espnapi_public"}}}}},{"description" :"Arron Afflalo","type" :"athlete","sportId" :46,"athleteId" :3187,"athlete" :{"id" :3187,"description" :"Arron Afflalo","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/basketball/nba/athletes/3187"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nba/player/_/id/3187/arron-afflalo?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nba/playercard?playerId=3187&ex_cid=espnapi_public"}}}}},{"description" :"Denver Nuggets","type" :"team","sportId" :46,"teamId" :7,"team" :{"id" :7,"description" :"Denver Nuggets","links" :{"api" :{"teams" :{"href" :"http://api.espn.com/v1/sports/basketball/nba/teams/7"}},"web" :{"teams" :{"href" :"http://espn.go.com/nba/team/_/name/den/denver-nuggets?ex_cid=espnapi_public"}},"mobile" :{"teams" :{"href" :"http://m.espn.go.com/nba/clubhouse?teamId=7&ex_cid=espnapi_public"}}}}},{"description" :"Ty Lawson","type" :"athlete","sportId" :46,"athleteId" :4000,"athlete" :{"id" :4000,"description" :"Ty Lawson","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/basketball/nba/athletes/4000"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nba/player/_/id/4000/ty-lawson?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nba/playercard?playerId=4000&ex_cid=espnapi_public"}}}}},{"description" :"Sacramento Kings","type" :"team","sportId" :46,"teamId" :23,"team" :{"id" :23,"description" :"Sacramento Kings","links" :{"api" :{"teams" :{"href" :"http://api.espn.com/v1/sports/basketball/nba/teams/23"}},"web" :{"teams" :{"href" :"http://espn.go.com/nba/team/_/name/sac/sacramento-kings?ex_cid=espnapi_public"}},"mobile" :{"teams" :{"href" :"http://m.espn.go.com/nba/clubhouse?teamId=23&ex_cid=espnapi_public"}}}}},{"description" :"Marcus Thornton","type" :"athlete","sportId" :46,"athleteId" :4017,"athlete" :{"id" :4017,"description" :"Marcus Thornton","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/basketball/nba/athletes/4017"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nba/player/_/id/4017/marcus-thornton?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nba/playercard?playerId=4017&ex_cid=espnapi_public"}}}}},{"description" :"Tyreke Evans","type" :"athlete","sportId" :46,"athleteId" :3983,"athlete" :{"id" :3983,"description" :"Tyreke Evans","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/basketball/nba/athletes/3983"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nba/player/_/id/3983/tyreke-evans?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nba/playercard?playerId=3983&ex_cid=espnapi_public"}}}}},{"description" :"Danilo Gallinari","type" :"athlete","sportId" :46,"athleteId" :3428,"athlete" :{"id" :3428,"description" :"Danilo Gallinari","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/basketball/nba/athletes/3428"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nba/player/_/id/3428/danilo-gallinari?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nba/playercard?playerId=3428&ex_cid=espnapi_public"}}}}},{"description" :"Rudy Fernandez","type" :"athlete","sportId" :46,"athleteId" :3204,"athlete" :{"id" :3204,"description" :"Rudy Fernandez","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/basketball/nba/athletes/3204"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nba/player/_/id/3204/rudy-fernandez?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nba/playercard?playerId=3204&ex_cid=espnapi_public"}}}}},{"description" :"Kosta Koufos","type" :"athlete","sportId" :46,"athleteId" :3444,"athlete" :{"id" :3444,"description" :"Kosta Koufos","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/basketball/nba/athletes/3444"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nba/player/_/id/3444/kosta-koufos?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nba/playercard?playerId=3444&ex_cid=espnapi_public"}}}}},{"description" :"Timofey Mozgov","type" :"athlete","sportId" :46,"athleteId" :4298,"athlete" :{"id" :4298,"description" :"Timofey Mozgov","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/basketball/nba/athletes/4298"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nba/player/_/id/4298/timofey-mozgov?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nba/playercard?playerId=4298&ex_cid=espnapi_public"}}}}}],"published" :"2012-03-06T06:41:03Z"},{"headline" :"Ducks 4, Oilers 2","keywords" :[],"lastModified" :"2012-03-06T06:38:20Z","premium" :false,"mobileStory" :"","links" :{"api" :{"news" :{"href" :"http://api.espn.com/v1/sports/news/7650987"}},"web" :{"href" :"http://sports.espn.go.com/espn/wire?section=nhl&id=7650987&ex_cid=espnapi_public"},"mobile" :{"href" :"http://m.espn.go.com/nhl/story?storyId=7650987&ex_cid=espnapi_public"}},"type" :"Wire","related" :[],"id" :7650987,"story" :"","linkText" :"Ducks 4, Oilers 2","source" :"Associated Press","description" :"The Anaheim Ducks stumbled into their dressing room with their playoff hopes teetering. They had just given up 22 shots to Edmonton in a horrific second period, and even workhorse goalie Jonas Hiller couldn't stop the last one from denting his net for the","images" :[],"categories" :[{"description" :"NHL","type" :"league","sportId" :90,"leagueId" :90,"league" :{"id" :90,"description" :"NHL","links" :{"api" :{"leagues" :{"href" :"http://api.espn.com/v1/sports/hockey/nhl"}},"web" :{"leagues" :{"href" :"http://espn.go.com/nhl/?ex_cid=espnapi_public"}},"mobile" :{"leagues" :{"href" :"http://m.espn.go.com/nhl/?ex_cid=espnapi_public"}}}}},{"description" :"Anaheim Ducks","type" :"team","sportId" :90,"teamId" :25,"team" :{"id" :25,"description" :"Anaheim Ducks","links" :{"api" :{"teams" :{"href" :"http://api.espn.com/v1/sports/hockey/nhl/teams/25"}},"web" :{"teams" :{"href" :"http://espn.go.com/nhl/team/_/name/ana/anaheim-ducks?ex_cid=espnapi_public"}},"mobile" :{"teams" :{"href" :"http://m.espn.go.com/nhl/clubhouse?teamId=25&ex_cid=espnapi_public"}}}}},{"description" :"Jonas Hiller","type" :"athlete","sportId" :90,"athleteId" :3685,"athlete" :{"id" :3685,"description" :"Jonas Hiller","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/hockey/nhl/athletes/3685"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nhl/player/_/id/3685/jonas-hiller?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nhl/playercard?playerId=3685&ex_cid=espnapi_public"}}}}},{"description" :"Bobby Ryan","type" :"athlete","sportId" :90,"athleteId" :3264,"athlete" :{"id" :3264,"description" :"Bobby Ryan","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/hockey/nhl/athletes/3264"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nhl/player/_/id/3264/bobby-ryan?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nhl/playercard?playerId=3264&ex_cid=espnapi_public"}}}}},{"description" :"Corey Perry","type" :"athlete","sportId" :90,"athleteId" :2273,"athlete" :{"id" :2273,"description" :"Corey Perry","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/hockey/nhl/athletes/2273"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nhl/player/_/id/2273/corey-perry?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nhl/playercard?playerId=2273&ex_cid=espnapi_public"}}}}},{"description" :"Edmonton Oilers","type" :"team","sportId" :90,"teamId" :6,"team" :{"id" :6,"description" :"Edmonton Oilers","links" :{"api" :{"teams" :{"href" :"http://api.espn.com/v1/sports/hockey/nhl/teams/6"}},"web" :{"teams" :{"href" :"http://espn.go.com/nhl/team/_/name/edm/edmonton-oilers?ex_cid=espnapi_public"}},"mobile" :{"teams" :{"href" :"http://m.espn.go.com/nhl/clubhouse?teamId=6&ex_cid=espnapi_public"}}}}},{"description" :"Jordan Eberle","type" :"athlete","sportId" :90,"athleteId" :5032,"athlete" :{"id" :5032,"description" :"Jordan Eberle","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/hockey/nhl/athletes/5032"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nhl/player/_/id/5032/jordan-eberle?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nhl/playercard?playerId=5032&ex_cid=espnapi_public"}}}}},{"description" :"Jason Blake","type" :"athlete","sportId" :90,"athleteId" :74,"athlete" :{"id" :74,"description" :"Jason Blake","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/hockey/nhl/athletes/74"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nhl/player/_/id/74/jason-blake?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nhl/playercard?playerId=74&ex_cid=espnapi_public"}}}}},{"description" :"Shawn Horcoff","type" :"athlete","sportId" :90,"athleteId" :1080,"athlete" :{"id" :1080,"description" :"Shawn Horcoff","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/hockey/nhl/athletes/1080"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nhl/player/_/id/1080/shawn-horcoff?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nhl/playercard?playerId=1080&ex_cid=espnapi_public"}}}}},{"description" :"Teemu Selanne","type" :"athlete","sportId" :90,"athleteId" :839,"athlete" :{"id" :839,"description" :"Teemu Selanne","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/hockey/nhl/athletes/839"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nhl/player/_/id/839/teemu-selanne?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nhl/playercard?playerId=839&ex_cid=espnapi_public"}}}}},{"description" :"Nikolai Khabibulin","type" :"athlete","sportId" :90,"athleteId" :445,"athlete" :{"id" :445,"description" :"Nikolai Khabibulin","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/hockey/nhl/athletes/445"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nhl/player/_/id/445/nikolai-khabibulin?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nhl/playercard?playerId=445&ex_cid=espnapi_public"}}}}},{"description" :"Niklas Hagman","type" :"athlete","sportId" :90,"athleteId" :1211,"athlete" :{"id" :1211,"description" :"Niklas Hagman","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/hockey/nhl/athletes/1211"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nhl/player/_/id/1211/niklas-hagman?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nhl/playercard?playerId=1211&ex_cid=espnapi_public"}}}}},{"description" :"Ryan Whitney","type" :"athlete","sportId" :90,"athleteId" :2978,"athlete" :{"id" :2978,"description" :"Ryan Whitney","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/hockey/nhl/athletes/2978"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nhl/player/_/id/2978/ryan-whitney?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nhl/playercard?playerId=2978&ex_cid=espnapi_public"}}}}},{"description" :"Dan Ellis","type" :"athlete","sportId" :90,"athleteId" :2171,"athlete" :{"id" :2171,"description" :"Dan Ellis","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/hockey/nhl/athletes/2171"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nhl/player/_/id/2171/dan-ellis?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nhl/playercard?playerId=2171&ex_cid=espnapi_public"}}}}},{"description" :"Sam Gagner","type" :"athlete","sportId" :90,"athleteId" :3808,"athlete" :{"id" :3808,"description" :"Sam Gagner","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/hockey/nhl/athletes/3808"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nhl/player/_/id/3808/sam-gagner?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nhl/playercard?playerId=3808&ex_cid=espnapi_public"}}}}},{"description" :"Jeff Petry","type" :"athlete","sportId" :90,"athleteId" :5407,"athlete" :{"id" :5407,"description" :"Jeff Petry","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/hockey/nhl/athletes/5407"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nhl/player/_/id/5407/jeff-petry?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nhl/playercard?playerId=5407&ex_cid=espnapi_public"}}}}},{"description" :"Sheldon Brookbank","type" :"athlete","sportId" :90,"athleteId" :2156,"athlete" :{"id" :2156,"description" :"Sheldon Brookbank","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/hockey/nhl/athletes/2156"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nhl/player/_/id/2156/sheldon-brookbank?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nhl/playercard?playerId=2156&ex_cid=espnapi_public"}}}}}],"published" :"2012-03-06T06:38:20Z"},{"headline" :"Champions Schwab Cup Points","keywords" :[],"lastModified" :"2012-03-06T06:37:19Z","premium" :false,"mobileStory" :"","links" :{"api" :{"news" :{"href" :"http://api.espn.com/v1/sports/news/7650986"}},"web" :{"href" :"http://sports.espn.go.com/espn/wire?section=golfonline&id=7650986&ex_cid=espnapi_public"},"mobile" :{"href" :"http://m.espn.go.com/wireless/story?storyId=7650986&ex_cid=espnapi_public"}},"type" :"Wire","related" :[],"id" :7650986,"story" :"","linkText" :"Champions Schwab Cup Points","source" :"Associated Press","description" :"Champions Schwab Cup Points through the ACE Group Classic, which ended Feb. 19:","images" :[],"categories" :[{"description" :"Tom Lehman","type" :"athlete","sportId" :1106,"athleteId" :268,"athlete" :{"id" :268,"description" :"Tom Lehman","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/golf/athletes/268"}},"web" :{"athletes" :{"href" :"http://espn.go.com/golf/player/_/id/268/tom-lehman?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/golf/playercard?playerId=268&ex_cid=espnapi_public"}}}}},{"description" :"Golf","type" :"league","sportId" :1106,"leagueId" :1106,"league" :{"id" :1106,"description" :"Golf","links" :{"api" :{"leagues" :{"href" :"http://api.espn.com/v1/sports/golf"}},"web" :{"leagues" :{"href" :"http://espn.go.com/golf/?ex_cid=espnapi_public"}},"mobile" :{"leagues" :{"href" :"http://m.espn.go.com/golf/?ex_cid=espnapi_public"}}}}},{"description" :"Nick Price","type" :"athlete","sportId" :1106,"athleteId" :358,"athlete" :{"id" :358,"description" :"Nick Price","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/golf/athletes/358"}},"web" :{"athletes" :{"href" :"http://espn.go.com/golf/player/_/id/358/nick-price?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/golf/playercard?playerId=358&ex_cid=espnapi_public"}}}}},{"description" :"Michael Allen","type" :"athlete","sportId" :1106,"athleteId" :4,"athlete" :{"id" :4,"description" :"Michael Allen","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/golf/athletes/4"}},"web" :{"athletes" :{"href" :"http://espn.go.com/golf/player/_/id/4/michael-allen?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/golf/playercard?playerId=4&ex_cid=espnapi_public"}}}}},{"description" :"John Cook","type" :"athlete","sportId" :1106,"athleteId" :89,"athlete" :{"id" :89,"description" :"John Cook","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/golf/athletes/89"}},"web" :{"athletes" :{"href" :"http://espn.go.com/golf/player/_/id/89/john-cook?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/golf/playercard?playerId=89&ex_cid=espnapi_public"}}}}},{"description" :"Mark Calcavecchia","type" :"athlete","sportId" :1106,"athleteId" :66,"athlete" :{"id" :66,"description" :"Mark Calcavecchia","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/golf/athletes/66"}},"web" :{"athletes" :{"href" :"http://espn.go.com/golf/player/_/id/66/mark-calcavecchia?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/golf/playercard?playerId=66&ex_cid=espnapi_public"}}}}},{"description" :"Kenny Perry","type" :"athlete","sportId" :1106,"athleteId" :349,"athlete" :{"id" :349,"description" :"Kenny Perry","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/golf/athletes/349"}},"web" :{"athletes" :{"href" :"http://espn.go.com/golf/player/_/id/349/kenny-perry?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/golf/playercard?playerId=349&ex_cid=espnapi_public"}}}}},{"description" :"Fred Funk","type" :"athlete","sportId" :1106,"athleteId" :152,"athlete" :{"id" :152,"description" :"Fred Funk","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/golf/athletes/152"}},"web" :{"athletes" :{"href" :"http://espn.go.com/golf/player/_/id/152/fred-funk?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/golf/playercard?playerId=152&ex_cid=espnapi_public"}}}}},{"description" :"Corey Pavin","type" :"athlete","sportId" :1106,"athleteId" :344,"athlete" :{"id" :344,"description" :"Corey Pavin","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/golf/athletes/344"}},"web" :{"athletes" :{"href" :"http://espn.go.com/golf/player/_/id/344/corey-pavin?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/golf/playercard?playerId=344&ex_cid=espnapi_public"}}}}},{"description" :"Fred Couples","type" :"athlete","sportId" :1106,"athleteId" :91,"athlete" :{"id" :91,"description" :"Fred Couples","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/golf/athletes/91"}},"web" :{"athletes" :{"href" :"http://espn.go.com/golf/player/_/id/91/fred-couples?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/golf/playercard?playerId=91&ex_cid=espnapi_public"}}}}}],"published" :"2012-03-06T06:37:19Z"},{"headline" :"Hawks-Pacers Preview","keywords" :[],"lastModified" :"2012-03-06T06:22:23Z","premium" :false,"mobileStory" :"","links" :{"api" :{"news" :{"href" :"http://api.espn.com/v1/sports/news/7650952"}},"web" :{"href" :"http://sports.espn.go.com/espn/wire?section=nba&id=7650952&ex_cid=espnapi_public"},"mobile" :{"href" :"http://m.espn.go.com/nba/story?storyId=7650952&ex_cid=espnapi_public"}},"type" :"Wire","related" :[],"id" :7650952,"story" :"","linkText" :"Hawks-Pacers Preview","source" :"Associated Press","description" :"The banged-up Atlanta Hawks hope the success they had on their recent homestand will carry over to the road, where things have not gone well of late.","images" :[],"categories" :[{"description" :"NBA","type" :"league","sportId" :46,"leagueId" :46,"league" :{"id" :46,"description" :"NBA","links" :{"api" :{"leagues" :{"href" :"http://api.espn.com/v1/sports/basketball/nba"}},"web" :{"leagues" :{"href" :"http://espn.go.com/nba/?ex_cid=espnapi_public"}},"mobile" :{"leagues" :{"href" :"http://m.espn.go.com/nba/?ex_cid=espnapi_public"}}}}},{"description" :"Atlanta Hawks","type" :"team","sportId" :46,"teamId" :1,"team" :{"id" :1,"description" :"Atlanta Hawks","links" :{"api" :{"teams" :{"href" :"http://api.espn.com/v1/sports/basketball/nba/teams/1"}},"web" :{"teams" :{"href" :"http://espn.go.com/nba/team/_/name/atl/atlanta-hawks?ex_cid=espnapi_public"}},"mobile" :{"teams" :{"href" :"http://m.espn.go.com/nba/clubhouse?teamId=1&ex_cid=espnapi_public"}}}}},{"description" :"Indiana Pacers","type" :"team","sportId" :46,"teamId" :11,"team" :{"id" :11,"description" :"Indiana Pacers","links" :{"api" :{"teams" :{"href" :"http://api.espn.com/v1/sports/basketball/nba/teams/11"}},"web" :{"teams" :{"href" :"http://espn.go.com/nba/team/_/name/ind/indiana-pacers?ex_cid=espnapi_public"}},"mobile" :{"teams" :{"href" :"http://m.espn.go.com/nba/clubhouse?teamId=11&ex_cid=espnapi_public"}}}}},{"description" :"Joe Johnson","type" :"athlete","sportId" :46,"athleteId" :1007,"athlete" :{"id" :1007,"description" :"Joe Johnson","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/basketball/nba/athletes/1007"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nba/player/_/id/1007/joe-johnson?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nba/playercard?playerId=1007&ex_cid=espnapi_public"}}}}},{"description" :"Willie Green","type" :"athlete","sportId" :46,"athleteId" :2004,"athlete" :{"id" :2004,"description" :"Willie Green","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/basketball/nba/athletes/2004"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nba/player/_/id/2004/willie-green?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nba/playercard?playerId=2004&ex_cid=espnapi_public"}}}}},{"description" :"Josh Smith","type" :"athlete","sportId" :46,"athleteId" :2411,"athlete" :{"id" :2411,"description" :"Josh Smith","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/basketball/nba/athletes/2411"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nba/player/_/id/2411/josh-smith?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nba/playercard?playerId=2411&ex_cid=espnapi_public"}}}}},{"description" :"Oklahoma City Thunder","type" :"team","sportId" :46,"teamId" :25,"team" :{"id" :25,"description" :"Oklahoma City Thunder","links" :{"api" :{"teams" :{"href" :"http://api.espn.com/v1/sports/basketball/nba/teams/25"}},"web" :{"teams" :{"href" :"http://espn.go.com/nba/team/_/name/okc/oklahoma-city-thunder?ex_cid=espnapi_public"}},"mobile" :{"teams" :{"href" :"http://m.espn.go.com/nba/clubhouse?teamId=25&ex_cid=espnapi_public"}}}}},{"description" :"Paul George","type" :"athlete","sportId" :46,"athleteId" :4251,"athlete" :{"id" :4251,"description" :"Paul George","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/basketball/nba/athletes/4251"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nba/player/_/id/4251/paul-george?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nba/playercard?playerId=4251&ex_cid=espnapi_public"}}}}},{"description" :"Chicago Bulls","type" :"team","sportId" :46,"teamId" :4,"team" :{"id" :4,"description" :"Chicago Bulls","links" :{"api" :{"teams" :{"href" :"http://api.espn.com/v1/sports/basketball/nba/teams/4"}},"web" :{"teams" :{"href" :"http://espn.go.com/nba/team/_/name/chi/chicago-bulls?ex_cid=espnapi_public"}},"mobile" :{"teams" :{"href" :"http://m.espn.go.com/nba/clubhouse?teamId=4&ex_cid=espnapi_public"}}}}},{"description" :"Danny Granger","type" :"athlete","sportId" :46,"athleteId" :2760,"athlete" :{"id" :2760,"description" :"Danny Granger","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/basketball/nba/athletes/2760"}},"web" :{"athletes" :{"href" :"http://espn.go.com/nba/player/_/id/2760/danny-granger?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/nba/playercard?playerId=2760&ex_cid=espnapi_public"}}}}}],"published" :"2012-03-06T06:22:23Z"},{"headline" :"W Carolina lost 93-91 in 2OT to Davidson","keywords" :[],"lastModified" :"2012-03-06T06:18:27Z","premium" :false,"mobileStory" :"","links" :{"api" :{"news" :{"href" :"http://api.espn.com/v1/sports/news/7650936"}},"web" :{"href" :"http://sports.espn.go.com/espn/wire?section=ncb&id=7650936&ex_cid=espnapi_public"},"mobile" :{"href" :"http://m.espn.go.com/ncb/story?storyId=7650936&ex_cid=espnapi_public"}},"type" :"Wire","related" :[],"id" :7650936,"story" :"","linkText" :"W Carolina lost 93-91 in 2OT to Davidson","source" :"Associated Press","description" :"Sensing his team was exhausted and at its breaking point, Western Carolina coach Larry Hunter went for the knockout punch in double overtime.","images" :[],"categories" :[{"description" :"NCB","type" :"league","sportId" :41,"leagueId" :41,"league" :{"id" :41,"description" :"NCB","links" :{"api" :{"leagues" :{"href" :"http://api.espn.com/v1/sports/basketball/mens-college-basketball"}},"web" :{"leagues" :{"href" :"http://espn.go.com/mens-college-basketball/?ex_cid=espnapi_public"}},"mobile" :{"leagues" :{"href" :"http://m.espn.go.com/ncb/?ex_cid=espnapi_public"}}}}},{"description" :"Western Carolina Catamounts","type" :"team","sportId" :41,"teamId" :2717,"team" :{"id" :2717,"description" :"Western Carolina Catamounts","links" :{"api" :{"teams" :{"href" :"http://api.espn.com/v1/sports/basketball/mens-college-basketball/teams/2717"}},"web" :{"teams" :{"href" :"http://espn.go.com/mens-college-basketball/team/_/id/2717/western-carolina-catamounts?ex_cid=espnapi_public"}},"mobile" :{"teams" :{"href" :"http://m.espn.go.com/ncb/clubhouse?teamId=2717&ex_cid=espnapi_public"}}}}},{"description" :"Davidson Wildcats","type" :"team","sportId" :41,"teamId" :2166,"team" :{"id" :2166,"description" :"Davidson Wildcats","links" :{"api" :{"teams" :{"href" :"http://api.espn.com/v1/sports/basketball/mens-college-basketball/teams/2166"}},"web" :{"teams" :{"href" :"http://espn.go.com/mens-college-basketball/team/_/id/2166/davidson-wildcats?ex_cid=espnapi_public"}},"mobile" :{"teams" :{"href" :"http://m.espn.go.com/ncb/clubhouse?teamId=2166&ex_cid=espnapi_public"}}}}}],"published" :"2012-03-06T06:18:27Z"},{"headline" :"Brewers 7, Giants 3","keywords" :[],"lastModified" :"2012-03-06T06:46:02Z","premium" :false,"mobileStory" :"","links" :{"api" :{"news" :{"href" :"http://api.espn.com/v1/sports/news/7650921"}},"web" :{"href" :"http://sports.espn.go.com/espn/wire?section=mlb&id=7650921&ex_cid=espnapi_public"},"mobile" :{"href" :"http://m.espn.go.com/mlb/story?storyId=7650921&ex_cid=espnapi_public"}},"type" :"Wire","related" :[],"id" :7650921,"story" :"","linkText" :"Brewers 7, Giants 3","source" :"Associated Press","description" :"San Francisco Giants manager Bruce Bochy just wanted Matt Cain to get his work in and get command of his fastball in his spring debut.","images" :[],"categories" :[{"description" :"MLB","type" :"league","sportId" :10,"leagueId" :10,"league" :{"id" :10,"description" :"MLB","links" :{"api" :{"leagues" :{"href" :"http://api.espn.com/v1/sports/baseball/mlb"}},"web" :{"leagues" :{"href" :"http://espn.go.com/mlb/?ex_cid=espnapi_public"}},"mobile" :{"leagues" :{"href" :"http://m.espn.go.com/mlb/?ex_cid=espnapi_public"}}}}},{"description" :"San Francisco Giants","type" :"team","sportId" :10,"teamId" :26,"team" :{"id" :26,"description" :"San Francisco Giants","links" :{"api" :{"teams" :{"href" :"http://api.espn.com/v1/sports/baseball/mlb/teams/26"}},"web" :{"teams" :{"href" :"http://espn.go.com/mlb/team/_/name/sf/san-francisco-giants?ex_cid=espnapi_public"}},"mobile" :{"teams" :{"href" :"http://m.espn.go.com/mlb/clubhouse?teamId=26&ex_cid=espnapi_public"}}}}},{"description" :"Matt Cain","type" :"athlete","sportId" :10,"athleteId" :6202,"athlete" :{"id" :6202,"description" :"Matt Cain","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/baseball/mlb/athletes/6202"}},"web" :{"athletes" :{"href" :"http://espn.go.com/mlb/player/_/id/6202/matt-cain?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/mlb/playercard?playerId=6202&ex_cid=espnapi_public"}}}}},{"description" :"Milwaukee Brewers","type" :"team","sportId" :10,"teamId" :8,"team" :{"id" :8,"description" :"Milwaukee Brewers","links" :{"api" :{"teams" :{"href" :"http://api.espn.com/v1/sports/baseball/mlb/teams/8"}},"web" :{"teams" :{"href" :"http://espn.go.com/mlb/team/_/name/mil/milwaukee-brewers?ex_cid=espnapi_public"}},"mobile" :{"teams" :{"href" :"http://m.espn.go.com/mlb/clubhouse?teamId=8&ex_cid=espnapi_public"}}}}},{"description" :"Zelous Wheeler","type" :"athlete","sportId" :10,"athleteId" :30249,"athlete" :{"id" :30249,"description" :"Zelous Wheeler","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/baseball/mlb/athletes/30249"}},"web" :{"athletes" :{"href" :"http://espn.go.com/mlb/player/_/id/30249/zelous-wheeler?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/mlb/playercard?playerId=30249&ex_cid=espnapi_public"}}}}},{"description" :"Jeremy Affeldt","type" :"athlete","sportId" :10,"athleteId" :5061,"athlete" :{"id" :5061,"description" :"Jeremy Affeldt","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/baseball/mlb/athletes/5061"}},"web" :{"athletes" :{"href" :"http://espn.go.com/mlb/player/_/id/5061/jeremy-affeldt?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/mlb/playercard?playerId=5061&ex_cid=espnapi_public"}}}}},{"description" :"Jeff Bianchi","type" :"athlete","sportId" :10,"athleteId" :31760,"athlete" :{"id" :31760,"description" :"Jeff Bianchi","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/baseball/mlb/athletes/31760"}},"web" :{"athletes" :{"href" :"http://espn.go.com/mlb/player/_/id/31760/jeff-bianchi?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/mlb/playercard?playerId=31760&ex_cid=espnapi_public"}}}}},{"description" :"Sergio Romo","type" :"athlete","sportId" :10,"athleteId" :29168,"athlete" :{"id" :29168,"description" :"Sergio Romo","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/baseball/mlb/athletes/29168"}},"web" :{"athletes" :{"href" :"http://espn.go.com/mlb/player/_/id/29168/sergio-romo?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/mlb/playercard?playerId=29168&ex_cid=espnapi_public"}}}}},{"description" :"Aubrey Huff","type" :"athlete","sportId" :10,"athleteId" :4479,"athlete" :{"id" :4479,"description" :"Aubrey Huff","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/baseball/mlb/athletes/4479"}},"web" :{"athletes" :{"href" :"http://espn.go.com/mlb/player/_/id/4479/aubrey-huff?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/mlb/playercard?playerId=4479&ex_cid=espnapi_public"}}}}},{"description" :"Chris Narveson","type" :"athlete","sportId" :10,"athleteId" :6215,"athlete" :{"id" :6215,"description" :"Chris Narveson","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/baseball/mlb/athletes/6215"}},"web" :{"athletes" :{"href" :"http://espn.go.com/mlb/player/_/id/6215/chris-narveson?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/mlb/playercard?playerId=6215&ex_cid=espnapi_public"}}}}},{"description" :"Brandon Belt","type" :"athlete","sportId" :10,"athleteId" :30901,"athlete" :{"id" :30901,"description" :"Brandon Belt","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/baseball/mlb/athletes/30901"}},"web" :{"athletes" :{"href" :"http://espn.go.com/mlb/player/_/id/30901/brandon-belt?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/mlb/playercard?playerId=30901&ex_cid=espnapi_public"}}}}},{"description" :"Logan Schafer","type" :"athlete","sportId" :10,"athleteId" :30247,"athlete" :{"id" :30247,"description" :"Logan Schafer","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/baseball/mlb/athletes/30247"}},"web" :{"athletes" :{"href" :"http://espn.go.com/mlb/player/_/id/30247/logan-schafer?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/mlb/playercard?playerId=30247&ex_cid=espnapi_public"}}}}},{"description" :"Buster Posey","type" :"athlete","sportId" :10,"athleteId" :30112,"athlete" :{"id" :30112,"description" :"Buster Posey","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/baseball/mlb/athletes/30112"}},"web" :{"athletes" :{"href" :"http://espn.go.com/mlb/player/_/id/30112/buster-posey?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/mlb/playercard?playerId=30112&ex_cid=espnapi_public"}}}}},{"description" :"Corey Hart","type" :"athlete","sportId" :10,"athleteId" :5973,"athlete" :{"id" :5973,"description" :"Corey Hart","links" :{"api" :{"athletes" :{"href" :"http://api.espn.com/v1/sports/baseball/mlb/athletes/5973"}},"web" :{"athletes" :{"href" :"http://espn.go.com/mlb/player/_/id/5973/corey-hart?ex_cid=espnapi_public"}},"mobile" :{"athletes" :{"href" :"http://m.espn.go.com/mlb/playercard?playerId=5973&ex_cid=espnapi_public"}}}}}],"published" :"2012-03-06T06:07:43Z"},{"headline" :"Saint Mary's (Cal) 78, No. 24 Gonzaga 74","keywords" :[],"lastModified" :"2012-03-06T06:07:34Z","premium" :false,"mobileStory" :"","links" :{"api" :{"news" :{"href" :"http://api.espn.com/v1/sports/news/7650918"}},"web" :{"href" :"http://sports.espn.go.com/espn/wire?section=ncb&id=7650918&ex_cid=espnapi_public"},"mobile" :{"href" :"http://m.espn.go.com/ncb/story?storyId=7650918&ex_cid=espnapi_public"}},"type" :"Wire","related" :[],"id" :7650918,"story" :"","linkText" :"Saint Mary's (Cal) 78, No. 24 Gonzaga 74","source" :"Associated Press","description" :"With the score deadlocked in overtime and the ball bouncing free, opposing guards Matthew Dellavedova and Kevin Pangos collided near the scorer's table.","images" :[],"categories" :[{"description" :"NCB","type" :"league","sportId" :41,"leagueId" :41,"league" :{"id" :41,"description" :"NCB","links" :{"api" :{"leagues" :{"href" :"http://api.espn.com/v1/sports/basketball/mens-college-basketball"}},"web" :{"leagues" :{"href" :"http://espn.go.com/mens-college-basketball/?ex_cid=espnapi_public"}},"mobile" :{"leagues" :{"href" :"http://m.espn.go.com/ncb/?ex_cid=espnapi_public"}}}}},{"description" :"Saint Mary's Gaels","type" :"team","sportId" :41,"teamId" :2608,"team" :{"id" :2608,"description" :"Saint Mary's Gaels","links" :{"api" :{"teams" :{"href" :"http://api.espn.com/v1/sports/basketball/mens-college-basketball/teams/2608"}},"web" :{"teams" :{"href" :"http://espn.go.com/mens-college-basketball/team/_/id/2608/saint-mary's-gaels?ex_cid=espnapi_public"}},"mobile" :{"teams" :{"href" :"http://m.espn.go.com/ncb/clubhouse?teamId=2608&ex_cid=espnapi_public"}}}}},{"description" :"Gonzaga Bulldogs","type" :"team","sportId" :41,"teamId" :2250,"team" :{"id" :2250,"description" :"Gonzaga Bulldogs","links" :{"api" :{"teams" :{"href" :"http://api.espn.com/v1/sports/basketball/mens-college-basketball/teams/2250"}},"web" :{"teams" :{"href" :"http://espn.go.com/mens-college-basketball/team/_/id/2250/gonzaga-bulldogs?ex_cid=espnapi_public"}},"mobile" :{"teams" :{"href" :"http://m.espn.go.com/ncb/clubhouse?teamId=2250&ex_cid=espnapi_public"}}}}},{"description" :"Hofstra Flying Dutchmen","type" :"team","sportId" :41,"teamId" :2275,"team" :{"id" :2275,"description" :"Hofstra Flying Dutchmen","links" :{"api" :{"teams" :{"href" :"http://api.espn.com/v1/sports/basketball/mens-college-basketball/teams/2275"}},"web" :{"teams" :{"href" :"http://espn.go.com/mens-college-basketball/team/_/id/2275/hofstra-pride?ex_cid=espnapi_public"}},"mobile" :{"teams" :{"href" :"http://m.espn.go.com/ncb/clubhouse?teamId=2275&ex_cid=espnapi_public"}}}}}],"published" :"2012-03-06T06:07:34Z"}]}
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: espn_rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-03-
|
12
|
+
date: 2012-03-09 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: A Ruby wrapper for ESPN's api.
|
15
15
|
email:
|
@@ -26,11 +26,14 @@ files:
|
|
26
26
|
- Rakefile
|
27
27
|
- espn_rb.gemspec
|
28
28
|
- lib/espn_rb.rb
|
29
|
+
- lib/espn_rb/api_definitions/headline_methods.yaml
|
30
|
+
- lib/espn_rb/api_definitions/headline_resources.yaml
|
29
31
|
- lib/espn_rb/headline.rb
|
30
|
-
- lib/espn_rb/
|
31
|
-
- lib/espn_rb/
|
32
|
+
- lib/espn_rb/headline_response.rb
|
33
|
+
- lib/espn_rb/utilities.rb
|
32
34
|
- lib/espn_rb/version.rb
|
33
35
|
- spec/espn_rb_spec.rb
|
36
|
+
- spec/mock_requests/all_headlines_request.txt
|
34
37
|
- spec/spec_helper.rb
|
35
38
|
homepage: ''
|
36
39
|
licenses: []
|
@@ -58,4 +61,5 @@ specification_version: 3
|
|
58
61
|
summary: A Ruby wrapper for ESPN's api.
|
59
62
|
test_files:
|
60
63
|
- spec/espn_rb_spec.rb
|
64
|
+
- spec/mock_requests/all_headlines_request.txt
|
61
65
|
- spec/spec_helper.rb
|
@@ -1,56 +0,0 @@
|
|
1
|
-
---
|
2
|
-
:professional:
|
3
|
-
:coed:
|
4
|
-
:all:
|
5
|
-
:relative_url: /sports
|
6
|
-
:description: News across all sports/sections
|
7
|
-
:golf:
|
8
|
-
:relative_url: /sports/golf
|
9
|
-
:description: Golf
|
10
|
-
:boxing:
|
11
|
-
:relative_url: /sports/boxing
|
12
|
-
:description: Boxing
|
13
|
-
:mma:
|
14
|
-
:relative_url: /sports/mma
|
15
|
-
:description: Mixed Martial Arts
|
16
|
-
:racing:
|
17
|
-
:relative_url: /sports/racing
|
18
|
-
:description: Auto Racing
|
19
|
-
:soccer:
|
20
|
-
:relative_url: /sports/soccer
|
21
|
-
:description: Professional soccer (US focus)
|
22
|
-
:tennis:
|
23
|
-
:relative_url: /sports/tennis
|
24
|
-
:description: Tennis
|
25
|
-
:mens:
|
26
|
-
:baseball:
|
27
|
-
:relative_url: /sports/baseball/mlb
|
28
|
-
:description: Major League Baseball (MLB)
|
29
|
-
:basketball:
|
30
|
-
:relative_url: /sports/basketball/nba
|
31
|
-
:description: National Basketball Association (NBA)
|
32
|
-
:football:
|
33
|
-
:relative_url: /sports/football/nfl
|
34
|
-
:description: National Football League (NFL)
|
35
|
-
:hockey:
|
36
|
-
:relative_url: /sports/hockey/nhl
|
37
|
-
:description: National Hockey League (NHL)
|
38
|
-
:nascar:
|
39
|
-
:relative_url: /sports/racing/nascar
|
40
|
-
:description: NASCAR racing
|
41
|
-
:womens:
|
42
|
-
:basketball:
|
43
|
-
:realtive_url: /sports/basketball/wnba
|
44
|
-
:description: Women's National Basketball Association (WNBA)
|
45
|
-
:collegiate:
|
46
|
-
:mens:
|
47
|
-
:basketball:
|
48
|
-
:relative_url: /sports/basketball/mens-college-basketball
|
49
|
-
:description: NCAA Men's College Basketball
|
50
|
-
:football:
|
51
|
-
:relative_url: /sports/football/college-football
|
52
|
-
:description: NCAA College Football
|
53
|
-
:womens:
|
54
|
-
:basketball:
|
55
|
-
:relative_url: /sports/basketball/womens-college-basketball
|
56
|
-
:description: NCAA Women's College Basketball
|