From e01d3330ce4b67bd82c3f53cb78df0498b404788 Mon Sep 17 00:00:00 2001
From: Luca <l.dimarino@gmail.com>
Date: Thu, 9 May 2013 13:52:07 +0200
Subject: [PATCH] HTTP status code warnings for KAT IPT TL

---
 sickbeard/providers/iptorrents.py   |  5 +++++
 sickbeard/providers/kat.py          | 24 ++++--------------------
 sickbeard/providers/torrentleech.py |  5 +++++
 3 files changed, 14 insertions(+), 20 deletions(-)

diff --git a/sickbeard/providers/iptorrents.py b/sickbeard/providers/iptorrents.py
index 1a7298bff..60ad85403 100644
--- a/sickbeard/providers/iptorrents.py
+++ b/sickbeard/providers/iptorrents.py
@@ -26,6 +26,7 @@ from sickbeard import tvcache
 from sickbeard import show_name_helpers
 from sickbeard.common import Overview 
 from sickbeard.exceptions import ex
+from sickbeard import clients
 from lib import requests
 from bs4 import BeautifulSoup
 from lib.unidecode import unidecode
@@ -225,6 +226,10 @@ class IPTorrentsProvider(generic.TorrentProvider):
             logger.log(u"Error loading " + self.name + " URL: " + ex(e), logger.ERROR)
             return None
 
+        if r.status_code != 200:
+            logger.log(self.name + u" page requested with url " + url +" returned status code is" + str(r.status_code) + ': ' + clients.http_error_code[r.status_code], logger.WARNING)
+            return None
+
         return response.content
        
 class IPTorrentsCache(tvcache.TVCache):
diff --git a/sickbeard/providers/kat.py b/sickbeard/providers/kat.py
index 59e441879..0c521cb96 100644
--- a/sickbeard/providers/kat.py
+++ b/sickbeard/providers/kat.py
@@ -32,6 +32,7 @@ from sickbeard import helpers
 from sickbeard.show_name_helpers import allPossibleShowNames, sanitizeSceneName
 from sickbeard.exceptions import ex
 from sickbeard import encodingKludge as ek
+from sickbeard import clients
 
 from lib import requests
 from bs4 import BeautifulSoup
@@ -104,7 +105,7 @@ class KATProvider(generic.TorrentProvider):
             return None
         
         try: 
-            soup = BeautifulSoup(data)
+            soup = BeautifulSoup(data, features=["html5lib", "permissive"])
             file_table = soup.find('table', attrs = {'class': 'torrentFileList'})
 
             if not file_table:
@@ -283,12 +284,12 @@ class KATProvider(generic.TorrentProvider):
 
         try:
             r = requests.get(url)
-        except Exception, e:
+        except (requests.exceptions.ConnectionError, requests.exceptions.HTTPError), e:
             logger.log(u"Error loading "+self.name+" URL: " + str(sys.exc_info()) + " - " + ex(e), logger.ERROR)
             return None
         
         if r.status_code != 200:
-            logger.log(u"KAT page requested " + url +" returned status code " + str(r.status_code), logger.DEBUG)
+            logger.log(self.name + u" page requested with url " + url +" returned status code is" + str(r.status_code) + ': ' + clients.http_error_code[r.status_code], logger.WARNING)
             return None
             
         return r.content
@@ -327,23 +328,6 @@ class KATProvider(generic.TorrentProvider):
         logger.log(u"Saved magnet link to " + magnetFileName + " ", logger.MESSAGE)
         return True
 
-    def dumpHTML(self, data):
-        
-        import datetime
-        
-        fileName = 'KAT_' + datetime.datetime.now().strftime("%y%m%d_%H%M%S") + '.html'
-        dumpName = ek.ek(os.path.join, sickbeard.CACHE_DIR, fileName)
-
-        try:    
-            fileOut = open(dumpName, 'wb')
-            fileOut.write(data)
-            fileOut.close()
-            helpers.chmodAsParent(dumpName)
-        except IOError, e:
-            logger.log("Unable to save the file: " + ex(e), logger.ERROR)
-            return False
-        logger.log(u"Saved kat html dump " + dumpName, logger.MESSAGE)
-        return True
 
 class KATCache(tvcache.TVCache):
 
diff --git a/sickbeard/providers/torrentleech.py b/sickbeard/providers/torrentleech.py
index 759d37596..4637d3b60 100644
--- a/sickbeard/providers/torrentleech.py
+++ b/sickbeard/providers/torrentleech.py
@@ -26,6 +26,7 @@ from sickbeard import tvcache
 from sickbeard import show_name_helpers
 from sickbeard.common import Overview 
 from sickbeard.exceptions import ex
+from sickbeard import clients
 from lib import requests
 from bs4 import BeautifulSoup
 from lib.unidecode import unidecode
@@ -219,6 +220,10 @@ class TorrentLeechProvider(generic.TorrentProvider):
             logger.log(u"Error loading "+self.name+" URL: " + ex(e), logger.ERROR)
             return None
 
+        if r.status_code != 200:
+            logger.log(self.name + u" page requested with url " + url +" returned status code is" + str(r.status_code) + ': ' + clients.http_error_code[r.status_code], logger.WARNING)
+            return None
+
         return response.content
        
 class TorrentLeechCache(tvcache.TVCache):
-- 
GitLab