summaryrefslogtreecommitdiffstats
path: root/abs/core/mythtv/stable-0.27/mythtv/tmdb_error25.patch
diff options
context:
space:
mode:
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.patch55
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