Private GIT

Skip to content
Snippets Groups Projects
Commit 0503591b authored by Dustyn Gibson's avatar Dustyn Gibson
Browse files

Merge branch 'hotfix-3293'

parents 3baef95a e48ba635
No related branches found
No related tags found
No related merge requests found
...@@ -22,8 +22,9 @@ import logging ...@@ -22,8 +22,9 @@ import logging
import zipfile import zipfile
import datetime as dt import datetime as dt
import requests import requests
from requests import exceptions
import xmltodict import xmltodict
import HTMLParser
try: try:
import xml.etree.cElementTree as ElementTree import xml.etree.cElementTree as ElementTree
...@@ -617,12 +618,12 @@ class Tvdb: ...@@ -617,12 +618,12 @@ class Tvdb:
zipdata = StringIO.StringIO() zipdata = StringIO.StringIO()
zipdata.write(resp.content) zipdata.write(resp.content)
myzipfile = zipfile.ZipFile(zipdata) myzipfile = zipfile.ZipFile(zipdata)
return xmltodict.parse(myzipfile.read('%s.xml' % language).replace(' ',' '), postprocessor=process) return xmltodict.parse(HTMLParser.HTMLParser().unescape(myzipfile.read('%s.xml' % language)), postprocessor=process)
except zipfile.BadZipfile: except zipfile.BadZipfile:
raise tvdb_error("Bad zip file received from thetvdb.com, could not read it") raise tvdb_error("Bad zip file received from thetvdb.com, could not read it")
else: else:
try: try:
return xmltodict.parse(resp.content.decode('utf-8').replace(' ',' '), postprocessor=process) return safe_xmltodict.parse(HTMLParser.HTMLParser().unescape(resp.text), postprocessor=process)
except: except:
return dict([(u'data', None)]) return dict([(u'data', None)])
......
...@@ -19,9 +19,11 @@ ...@@ -19,9 +19,11 @@
import re import re
import traceback import traceback
import datetime import datetime
import sickbeard
import xmltodict import xmltodict
import HTMLParser
import sickbeard
from sickbeard.providers import generic from sickbeard.providers import generic
from sickbeard.common import Quality from sickbeard.common import Quality
from sickbeard import logger from sickbeard import logger
...@@ -81,7 +83,7 @@ class ExtraTorrentProvider(generic.TorrentProvider): ...@@ -81,7 +83,7 @@ class ExtraTorrentProvider(generic.TorrentProvider):
try: try:
# Must replace non-breaking space, as there is no xml DTD # Must replace non-breaking space, as there is no xml DTD
data = xmltodict.parse(data.replace(' ',' ')) data = xmltodict.parse(HTMLParser.HTMLParser().unescape(data))
except ExpatError as e: except ExpatError as e:
logger.log(u"Failed parsing provider. Traceback: %r\n%r" % (traceback.format_exc(), data), logger.ERROR) logger.log(u"Failed parsing provider. Traceback: %r\n%r" % (traceback.format_exc(), data), logger.ERROR)
continue continue
......
...@@ -20,11 +20,13 @@ ...@@ -20,11 +20,13 @@
from __future__ import with_statement from __future__ import with_statement
import traceback import traceback
import re
import datetime import datetime
import xmltodict
from urllib import urlencode from urllib import urlencode
import xmltodict
import HTMLParser
import sickbeard import sickbeard
from sickbeard import logger from sickbeard import logger
from sickbeard import tvcache from sickbeard import tvcache
...@@ -35,7 +37,6 @@ from sickbeard.common import Quality ...@@ -35,7 +37,6 @@ from sickbeard.common import Quality
from sickbeard.common import USER_AGENT from sickbeard.common import USER_AGENT
from sickbeard.providers import generic from sickbeard.providers import generic
from xml.parsers.expat import ExpatError from xml.parsers.expat import ExpatError
from sickbeard.show_name_helpers import allPossibleShowNames, sanitizeSceneName
class KATProvider(generic.TorrentProvider): class KATProvider(generic.TorrentProvider):
def __init__(self): def __init__(self):
...@@ -96,8 +97,7 @@ class KATProvider(generic.TorrentProvider): ...@@ -96,8 +97,7 @@ class KATProvider(generic.TorrentProvider):
continue continue
try: try:
# Must replace non-breaking space, as there is no xml DTD data = xmltodict.parse(HTMLParser.HTMLParser().unescape(data))
data = xmltodict.parse(data.replace(' ',' '))
except ExpatError as e: except ExpatError as e:
logger.log(u"Failed parsing provider. Traceback: %r\n%r" % (traceback.format_exc(), data), logger.ERROR) logger.log(u"Failed parsing provider. Traceback: %r\n%r" % (traceback.format_exc(), data), logger.ERROR)
continue continue
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment