diff options
Diffstat (limited to 'abs/core/mythtv/stable-0.27/mythtv/tmdb_error25.patch')
-rw-r--r-- | abs/core/mythtv/stable-0.27/mythtv/tmdb_error25.patch | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/abs/core/mythtv/stable-0.27/mythtv/tmdb_error25.patch b/abs/core/mythtv/stable-0.27/mythtv/tmdb_error25.patch new file mode 100644 index 0000000..fc1a2fe --- /dev/null +++ b/abs/core/mythtv/stable-0.27/mythtv/tmdb_error25.patch @@ -0,0 +1,55 @@ +--- src/mythtv/bindings/python/tmdb3/tmdb3/request.py.orig 2015-09-29 16:11:52.436024705 +0000 ++++ src/mythtv/bindings/python/tmdb3/tmdb3/request.py 2015-09-29 16:13:24.297824407 +0000 +@@ -16,6 +16,7 @@ + import urllib2 + import json + import os ++import time + + DEBUG = False + cache = Cache(filename='pytmdb3.cache') +@@ -113,21 +114,29 @@ + def readJSON(self): + """Parse result from specified URL as JSON data.""" + url = self.get_full_url() +- try: +- # catch HTTP error from open() +- data = json.load(self.open()) +- except TMDBHTTPError, e: +- try: +- # try to load whatever was returned +- data = json.loads(e.response) +- except: +- # cannot parse json, just raise existing error +- raise e +- else: +- # response parsed, try to raise error from TMDB +- handle_status(data, url) +- # no error from TMDB, just raise existing error +- raise e ++ while True: ++ try: ++ # catch HTTP error from open() ++ data = json.load(self.open()) ++ break ++ except TMDBHTTPError, e: ++ try: ++ # try to load whatever was returned ++ data = json.loads(e.response) ++ except: ++ # cannot parse json, just raise existing error ++ raise e ++ else: ++ # Check for error code of 25 which means we are doing more than 40 requests per minute. ++ if data.get('status_code', 1) == 25: ++ # Sleep and retry query. ++ time.sleep(10) ++ continue ++ else: ++ # response parsed, try to raise error from TMDB ++ handle_status(data, url) ++ # no error from TMDB, just raise existing error ++ raise e + handle_status(data, url) + if DEBUG: + import pprint |