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 CHANGED
@@ -4,6 +4,16 @@ source 'https://rubygems.org'
4
4
  gemspec
5
5
 
6
6
  gem 'rspec', '~> 2.8.0'
7
+ gem 'rake'
8
+ gem 'webmock'
9
+
10
+ platform :jruby do
11
+ gem "json-jruby"
12
+ end
13
+
14
+ platform :ruby do
15
+ gem "json", "~> 1.6.5"
16
+ end
7
17
 
8
18
  group :development do
9
19
  gem 'pry'
data/README.md CHANGED
@@ -1,24 +1,99 @@
1
1
  # EspnRb
2
2
 
3
- TODO: Write a gem description
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
- And then execute:
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
- $ bundle
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
- ## Usage
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
- :relative_url: /news
3
+ :url: /news
4
4
  :description: Retrieves a stream of all news for current date.
5
5
  :news_headlines:
6
- :relative_path: /news/headlines
6
+ :url: /news/headlines
7
7
  :description: Retrieves top stories as selected by ESPN editorial staff.
8
8
  :top:
9
- :relative_path: news/headlines/top
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
@@ -1,23 +1,51 @@
1
1
  module EspnRb
2
- module Headline
3
- def resources
4
- YAML::load(File.read('lib/espn_rb/headline_resources.yaml'))
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 methods
8
- YAML::load(File.read('lib/espn_rb/headline_methods.yaml'))
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=#{EspnRb.api_key}")
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 all_headlines
18
- get_results(resources[:professional][:coed][:all][:relative_url], methods[:news][:relative_url])
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
@@ -1,3 +1,4 @@
1
1
  module EspnRb
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
+ API_VERSION = "v1"
3
4
  end
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
- attr_writer :api_key
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 headline
14
- EspnRb::Headline if api_key
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
- it "#all_headlines should return 200 response." do
5
- described_class.all_headlines.code.should eq("200")
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
- end
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
@@ -1,7 +1,8 @@
1
1
  require 'rubygems'
2
2
  require 'bundler/setup'
3
-
3
+ require 'webmock/rspec'
4
4
  require 'espn_rb'
5
5
 
6
+
6
7
  RSpec.configure do |config|
7
8
  end
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.1
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-07 00:00:00.000000000 Z
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/headline_methods.yaml
31
- - lib/espn_rb/headline_resources.yaml
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