Update proxy
This commit is contained in:
1 parent
812385fdbe
commit
9bef4d5087
2 files changed
+30
-9
No files matched your search
@@ -0,0 +1,21 @@
|
|||||||
|
# encoding: utf-8
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||||
|
|
||||||
|
from __future__ import unicode_literals, absolute_import, division
|
||||||
|
|
||||||
|
import base64
|
||||||
|
import sys
|
||||||
|
|
||||||
|
if sys.version_info[0] >= 3:
|
||||||
|
unicode = str
|
||||||
|
|
||||||
|
def encode_base64(data):
|
||||||
|
if isinstance(data, unicode):
|
||||||
|
data = data.encode("utf-8")
|
||||||
|
return base64.b64encode(data).decode("utf-8")
|
||||||
|
|
||||||
|
def decode_base64(data):
|
||||||
|
if isinstance(data, unicode):
|
||||||
|
data = data.encode("utf-8")
|
||||||
|
return base64.b64decode(data).decode("utf-8")
|
||||||
@@ -38,9 +38,10 @@ import json
|
|||||||
import requests
|
import requests
|
||||||
import threading
|
import threading
|
||||||
import socket
|
import socket
|
||||||
import base64
|
|
||||||
from contextlib import closing
|
from contextlib import closing
|
||||||
import xbmcaddon
|
import xbmcaddon
|
||||||
|
|
||||||
|
from .b64 import encode_base64
|
||||||
from .log import LOG
|
from .log import LOG
|
||||||
from .addon import profile_dir
|
from .addon import profile_dir
|
||||||
|
|
||||||
@@ -92,16 +93,16 @@ class RequestHandler(BaseHTTPRequestHandler):
|
|||||||
baseurl = os.path.dirname(response.url)
|
baseurl = os.path.dirname(response.url)
|
||||||
LOG('baseurl: {}'.format(baseurl))
|
LOG('baseurl: {}'.format(baseurl))
|
||||||
content = response.content.decode('utf-8')
|
content = response.content.decode('utf-8')
|
||||||
pos = content.find('<Period id')
|
|
||||||
if pos > -1:
|
|
||||||
content = content[:pos] + '<BaseURL>' + baseurl + '/</BaseURL>' + content[pos:]
|
|
||||||
content = content.replace('lang="qaa"', 'lang="eng"')
|
|
||||||
if not xbmcaddon.Addon().getSettingBool('use_ttml2ssa'):
|
if not xbmcaddon.Addon().getSettingBool('use_ttml2ssa'):
|
||||||
LOG(self.headers.get('Host'))
|
LOG(self.headers.get('Host'))
|
||||||
my_address = 'http://' + self.headers.get('Host')
|
my_address = 'http://' + self.headers.get('Host')
|
||||||
LOG('my_address: {}'.format(my_address))
|
LOG('my_address: {}'.format(my_address))
|
||||||
content = content.replace('mimeType="application/ttml+xml"', 'mimeType="text/vtt"')
|
content = content.replace('mimeType="application/ttml+xml"', 'mimeType="text/vtt"')
|
||||||
content = re.sub(r'<BaseURL>(.*?)\.ttml<\/BaseURL>', r'<BaseURL>{}/?subtitle={}/\1.ttml</BaseURL>'.format(my_address, baseurl), content)
|
content = re.sub(r'<BaseURL>(.*?)\.ttml<\/BaseURL>', r'<BaseURL>{}/?subtitle={}/\1.ttml</BaseURL>'.format(my_address, baseurl), content)
|
||||||
|
pos = content.find('<Period id')
|
||||||
|
if pos > -1:
|
||||||
|
content = content[:pos] + '<BaseURL>' + baseurl + '/</BaseURL>' + content[pos:]
|
||||||
|
content = content.replace('lang="qaa"', 'lang="eng"')
|
||||||
#LOG('content: {}'.format(content))
|
#LOG('content: {}'.format(content))
|
||||||
manifest_data = content
|
manifest_data = content
|
||||||
self.send_response(200)
|
self.send_response(200)
|
||||||
@@ -153,7 +154,7 @@ class RequestHandler(BaseHTTPRequestHandler):
|
|||||||
length = int(self.headers.get('content-length', 0))
|
length = int(self.headers.get('content-length', 0))
|
||||||
isa_data = self.rfile.read(length)
|
isa_data = self.rfile.read(length)
|
||||||
LOG('isa_data length: {}'.format(length))
|
LOG('isa_data length: {}'.format(length))
|
||||||
LOG('isa_data: {}'.format(base64.b64encode(isa_data)))
|
LOG('isa_data: {}'.format(encode_base64(isa_data)))
|
||||||
|
|
||||||
token = params['token']
|
token = params['token']
|
||||||
LOG('token: {}'.format(token))
|
LOG('token: {}'.format(token))
|
||||||
@@ -196,10 +197,9 @@ class RequestHandler(BaseHTTPRequestHandler):
|
|||||||
if d['errorCode'] == 4027:
|
if d['errorCode'] == 4027:
|
||||||
if not reregister_needed and xbmcaddon.Addon().getSettingBool('reregister'):
|
if not reregister_needed and xbmcaddon.Addon().getSettingBool('reregister'):
|
||||||
reregister_needed = True
|
reregister_needed = True
|
||||||
|
continue
|
||||||
else:
|
else:
|
||||||
break
|
LOG('license response: {}'.format(encode_base64(license_data)))
|
||||||
else:
|
|
||||||
LOG('license response: {}'.format(base64.b64encode(license_data)))
|
|
||||||
break
|
break
|
||||||
|
|
||||||
self.send_response(response.status_code)
|
self.send_response(response.status_code)
|
||||||
|
|||||||
Reference in new issue
Block a user