From 43e2f44ec1286b39bada67143424368a6a28f521 Mon Sep 17 00:00:00 2001 From: James Booth Date: Tue, 3 Jun 2014 18:48:36 +0100 Subject: [PATCH] Added error handling to cricket score plugin --- cricket-score.py | 104 +++++++++++++++++++++++++---------------------- 1 file changed, 55 insertions(+), 49 deletions(-) diff --git a/cricket-score.py b/cricket-score.py index 946ab88..56f32f5 100644 --- a/cricket-score.py +++ b/cricket-score.py @@ -2,8 +2,7 @@ import prof import urllib2 import json -#_score_url = "http://api.scorescard.com/?type=score&teamone=Australia&teamtwo=England" -_score_url = None +_score_url = "http://api.scorescard.com/?type=score&teamone=England&teamtwo=Sri%20Lanka" _summary = None def _cmd_cricket(): @@ -12,28 +11,28 @@ def _cmd_cricket(): new_summary = None result_json = _retrieve_scores_json() + if (result_json): + if 'ms' in result_json.keys(): + new_summary = result_json['ms'] - if 'ms' in result_json.keys(): - new_summary = result_json['ms'] + prof.cons_show("") + prof.cons_show("Cricket score:") + if 't1FI' in result_json.keys(): + prof.cons_show(" " + result_json['t1FI']) - prof.cons_show("") - prof.cons_show("Cricket score:") - if 't1FI' in result_json.keys(): - prof.cons_show(" " + result_json['t1FI']) + if 't2FI' in result_json.keys(): + prof.cons_show(" " + result_json['t2FI']) - if 't2FI' in result_json.keys(): - prof.cons_show(" " + result_json['t2FI']) + if 't1SI' in result_json.keys(): + prof.cons_show(" " + result_json['t1SI']) - if 't1SI' in result_json.keys(): - prof.cons_show(" " + result_json['t1SI']) + if 't2SI' in result_json.keys(): + prof.cons_show(" " + result_json['t2SI']) - if 't2SI' in result_json.keys(): - prof.cons_show(" " + result_json['t2SI']) - - _summary = new_summary - prof.cons_show("") - prof.cons_show(" " + _summary) - prof.cons_alert() + _summary = new_summary + prof.cons_show("") + prof.cons_show(" " + _summary) + prof.cons_alert() def _get_scores(): global _score_url @@ -43,44 +42,51 @@ def _get_scores(): change = False result_json = _retrieve_scores_json() + + if (result_json): + if 'ms' in result_json.keys(): + new_summary = result_json['ms'] + if new_summary != _summary: + change = True - if 'ms' in result_json.keys(): - new_summary = result_json['ms'] - if new_summary != _summary: - change = True + if change: + prof.cons_show("") + prof.cons_show("Cricket score:") + if 't1FI' in result_json.keys(): + notify = result_json['t1FI'] + prof.cons_show(" " + result_json['t1FI']) - if change: - prof.cons_show("") - prof.cons_show("Cricket score:") - if 't1FI' in result_json.keys(): - notify = result_json['t1FI'] - prof.cons_show(" " + result_json['t1FI']) + if 't2FI' in result_json.keys(): + notify += "\n" + result_json['t2FI'] + prof.cons_show(" " + result_json['t2FI']) - if 't2FI' in result_json.keys(): - notify += "\n" + result_json['t2FI'] - prof.cons_show(" " + result_json['t2FI']) + if 't1SI' in result_json.keys(): + notify += "\n" + result_json['t1SI'] + prof.cons_show(" " + result_json['t1SI']) - if 't1SI' in result_json.keys(): - notify += "\n" + result_json['t1SI'] - prof.cons_show(" " + result_json['t1SI']) + if 't2SI' in result_json.keys(): + notify += "\n" + result_json['t2SI'] + prof.cons_show(" " + result_json['t2SI']) - if 't2SI' in result_json.keys(): - notify += "\n" + result_json['t2SI'] - prof.cons_show(" " + result_json['t2SI']) - - _summary = new_summary - notify += "\n\n" + _summary - prof.cons_show("") - prof.cons_show(" " + _summary) - prof.cons_alert() - prof.notify(notify, 5000, "Cricket score") + _summary = new_summary + notify += "\n\n" + _summary + prof.cons_show("") + prof.cons_show(" " + _summary) + prof.cons_alert() + prof.notify(notify, 5000, "Cricket score") def _retrieve_scores_json(): req = urllib2.Request(_score_url, None, {'Content-Type': 'application/json'}) - f = urllib2.urlopen(req) - response = f.read() - f.close() - return json.loads(response) + try: + f = urllib2.urlopen(req) + except: + prof.log_info("cricket-score.py: Error getting scores.") + return None + else: + response = f.read() + f.close() + return json.loads(response) + def prof_init(version, status): if _score_url: prof.register_timed(_get_scores, 60)