Intro

Earlier I developed a simple cricket score api known as cricscore-api which gets data from cricinfo website.
It was developed to support a simple Android App back then.
Later it was open sourced for everyone.

API

Cricscore API has 2 simple APIs.

  1. List all matches
    As shown below, it returns list of matches, along with match id.

     $ curl "http://cricscore-api.appspot.com/csa"
     # line breaks added to the output for readability.
     [
         {"id":895819,"t2":"India","t1":"Australia"},
         {"id":959389,"t2":"Pakistan A","t1":"England Lions"}
     ]
    
  2. Get detail for specific match.
    Take the id of the match of interest and use it as query parameter to same end point.

     $ curl "http://cricscore-api.appspot.com/csa?id=895819"
     # line breaks added to the output for readability.
     [
         {
             "de":"2nd T20I: Australia v India at Melbourne, Jan 29, 2016",
             "id":895819,
             "si":"Australia v India"
         }
     ]
    

Goals

  1. Show the score of a particular match in the console.
  2. Output new score detail, whenever it changes.

Code

Self explanatory for python people.
In line comments (starting with #) for everyone else.

import urllib2, json, time

# Score set to empty initially.
score = ''

# Run forever
while True:
    # Fetch the url for the specific match.
	response = urllib2.urlopen('http://cricscore-api.appspot.com/csa?id=656493')

    # Get the score details `de` from the response json.
	data = json.load(response)
	new_score = data[0]['de']

    # Whenever score changes, print to console.
	if(new_score != score):
		print new_score
		score = new_score

    # Give a break, hit API after 2 seconds.
	time.sleep(2)

Run it

  1. Store the above code in file score.py with required match id.
  2. Run python score.py
  3. Ctrl + C to exit the script.

Further

This code can be further developed, to select the match in the command line itself.
You are free to do so, I may not find time.

Later

Later, I will add output for a live match in Run it section.