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 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