From 70481ff5f43678e06b12f2c611042e5c8f35d637 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Tue, 29 Sep 2015 19:09:06 +0000
Subject: mythtv & plugins: update to latest -fixes

add patch for tmdb3.py error 25
---
 abs/core/mythtv/stable-0.27/git_src/git_hash       |  2 +-
 abs/core/mythtv/stable-0.27/mythplugins/PKGBUILD   |  2 +-
 abs/core/mythtv/stable-0.27/mythtv/PKGBUILD        |  7 ++-
 .../mythtv/stable-0.27/mythtv/tmdb_error25.patch   | 55 ++++++++++++++++++++++
 4 files changed, 62 insertions(+), 4 deletions(-)
 create mode 100644 abs/core/mythtv/stable-0.27/mythtv/tmdb_error25.patch

diff --git a/abs/core/mythtv/stable-0.27/git_src/git_hash b/abs/core/mythtv/stable-0.27/git_src/git_hash
index dce590c..7f1827c 100644
--- a/abs/core/mythtv/stable-0.27/git_src/git_hash
+++ b/abs/core/mythtv/stable-0.27/git_src/git_hash
@@ -1 +1 @@
-32fd3968acea905d71d9769996487eff280233ea
+2ad315894af9a7770b29dbec5d0ca56a84534f49
diff --git a/abs/core/mythtv/stable-0.27/mythplugins/PKGBUILD b/abs/core/mythtv/stable-0.27/mythplugins/PKGBUILD
index 7d5f15f..9f3145d 100644
--- a/abs/core/mythtv/stable-0.27/mythplugins/PKGBUILD
+++ b/abs/core/mythtv/stable-0.27/mythplugins/PKGBUILD
@@ -9,7 +9,7 @@ pkgname=('mytharchive'
          'mythweather'
          'mythzoneminder')
 pkgver=0.27.5
-pkgrel=6
+pkgrel=8
 arch=('i686' 'x86_64')
 url="http://www.mythtv.org"
 license=('GPL')
diff --git a/abs/core/mythtv/stable-0.27/mythtv/PKGBUILD b/abs/core/mythtv/stable-0.27/mythtv/PKGBUILD
index 5ea8707..4d9cee6 100644
--- a/abs/core/mythtv/stable-0.27/mythtv/PKGBUILD
+++ b/abs/core/mythtv/stable-0.27/mythtv/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=mythtv
 pkgver=0.27.5
-pkgrel=6
+pkgrel=8
 commit_hash=`cat ../git_src/git_hash`
 pkgdesc="A Homebrew PVR project $commit_hash"
 arch=('i686' 'x86_64')
@@ -22,9 +22,11 @@ install='mythtv.install'
 patches=('myth_settings.patch' 
          'videoAlwaysUseBookmark.patch'
          'fixQTvirtualkeyboard.patch'
-         'suggestedstarttime.patch.v1')
+         'suggestedstarttime.patch.v1'
+         'tmdb_error25.patch')
          #fixQTvirtualkeyboard.patch: https://code.mythtv.org/trac/ticket/12347
          #suggestedstarttime.patch.v1: http://code.mythtv.org/trac/ticket/11562   next mythfilldatabase run in mythweb
+         #tmdb_error25.patch: https://code.mythtv.org/trac/ticket/12455
 
 optdepends=()
 replaces=('mythvideo' 'myththemes')
@@ -107,4 +109,5 @@ md5sums=('5f3e43567e62afe17bad39f5a9b604cf'
          '41098e898361a5a3cde3eaae358482a8'
          'a853dff0f5c92ca58fcc1e389cd16266'
          '35a7fd3e3057691e3b1bf355bb9e8b16'
+         '5e645c3d0df38143c45f3e8fe24f1b6f'
          '928de4b070d9f3b784d55c0db415eaf3')
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
-- 
cgit v0.12

