Update proxy

This commit is contained in:
Paco8 committed 2023-02-08 22:42:00 +01:00
1 parent 812385fdbe
commit 9bef4d5087
2 files changed
+31 -10

No files matched your search

+21
View File
@@ -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")
+10 -10
View File
@@ -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,11 +197,10 @@ 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
else: continue
break
else: else:
LOG('license response: {}'.format(base64.b64encode(license_data))) LOG('license response: {}'.format(encode_base64(license_data)))
break break
self.send_response(response.status_code) self.send_response(response.status_code)
self.end_headers() self.end_headers()