1
0
mirror of https://github.com/spaam/svtplay-dl.git synced 2024-11-27 21:54:17 +01:00

subtitle: workaround a bug in requests in ubuntu 14.04 LTS

2.2.1 cant convert string from bytes to text right.

fixes #259
This commit is contained in:
Johan Andersson 2015-09-20 15:15:50 +02:00
parent dc2cc0294c
commit 3afb8aa490

View File

@ -2,10 +2,11 @@ import xml.etree.ElementTree as ET
import json import json
import re import re
from svtplay_dl.log import log from svtplay_dl.log import log
from svtplay_dl.utils import is_py2, decode_html_entities from svtplay_dl.utils import is_py2, is_py3, decode_html_entities
from svtplay_dl.utils.io import StringIO from svtplay_dl.utils.io import StringIO
from svtplay_dl.output import output from svtplay_dl.output import output
from requests import Session from requests import Session
from requests import __build__ as requests_version
class subtitle(object): class subtitle(object):
@ -17,7 +18,7 @@ class subtitle(object):
self.http = Session() self.http = Session()
def download(self): def download(self):
subdata = self.http.request("get", self.url, cookies=self.options.cookies).text subdata = self.http.request("get", self.url, cookies=self.options.cookies)
data = None data = None
if self.subtype == "tt": if self.subtype == "tt":
@ -40,7 +41,7 @@ class subtitle(object):
def tt(self, subdata): def tt(self, subdata):
i = 1 i = 1
data = "" data = ""
tree = ET.XML(subdata.encode("utf8")) tree = ET.XML(subdata.text.encode("utf8"))
xml = tree.find("{http://www.w3.org/2006/10/ttaf1}body").find("{http://www.w3.org/2006/10/ttaf1}div") xml = tree.find("{http://www.w3.org/2006/10/ttaf1}body").find("{http://www.w3.org/2006/10/ttaf1}div")
plist = list(xml.findall("{http://www.w3.org/2006/10/ttaf1}p")) plist = list(xml.findall("{http://www.w3.org/2006/10/ttaf1}p"))
for node in plist: for node in plist:
@ -67,7 +68,7 @@ class subtitle(object):
return data return data
def json(self, subdata): def json(self, subdata):
data = json.loads(subdata) data = json.loads(subdata.text)
number = 1 number = 1
subs = "" subs = ""
for i in data: for i in data:
@ -81,7 +82,7 @@ class subtitle(object):
return subs return subs
def sami(self, subdata): def sami(self, subdata):
tree = ET.XML(subdata.encode("utf8")) tree = ET.XML(subdata.text.encode("utf8"))
subt = tree.find("Font") subt = tree.find("Font")
subs = "" subs = ""
n = 0 n = 0
@ -102,6 +103,12 @@ class subtitle(object):
return subs return subs
def smi(self, subdata): def smi(self, subdata):
if requests_version < 0x20300:
subdata = subdata.content
if is_py3:
subdata = subdata.decode("latin")
else:
subdata = subdata.text
ssubdata = StringIO(subdata) ssubdata = StringIO(subdata)
timea = 0 timea = 0
number = 1 number = 1
@ -127,12 +134,10 @@ class subtitle(object):
data = text.group(1) data = text.group(1)
recomp = re.compile(r'\r') recomp = re.compile(r'\r')
text = bad_char.sub('-', recomp.sub('', subs)).replace('&quot;', '"') text = bad_char.sub('-', recomp.sub('', subs)).replace('&quot;', '"')
if is_py2:
return text.encode("utf-8")
return text return text
def wrst(self, subdata): def wrst(self, subdata):
ssubdata = StringIO(subdata) ssubdata = StringIO(subdata.text)
srt = "" srt = ""
subtract = False subtract = False
number_b = 1 number_b = 1