espn_rb 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|