diff --git a/core/app.py b/core/app.py index 860d8bc9..833a9f4a 100644 --- a/core/app.py +++ b/core/app.py @@ -3,20 +3,20 @@ from http.server import BaseHTTPRequestHandler, HTTPServer import xbmc from core import jsontools from platformcode import logger -hostName = "localhost" +hostName = xbmc.getIPAddress() serverPort = 8080 -cookie_ricevuto = False +ret = None call = 'kodapp://app.kod/open?s={}&cb=http://{}:{}/' class MyServer(BaseHTTPRequestHandler): def do_POST(self): + global ret length = int(self.headers['content-length']) - postvars = self.rfile.read(length) - logger.info(postvars) + postvars = self.rfile.read(length).decode() + ret = jsontools.load(postvars) + logger.info(ret) self.send_response(200) - global cookie_ricevuto - cookie_ricevuto = True def call_url(url): @@ -27,6 +27,7 @@ def call_url(url): activity = 'StartAndroidActivity("com.kodapp","android.intent.action.VIEW","",{})'.format(call.format(s, hostName, serverPort)) logger.info(activity) xbmc.executebuiltin(activity) - while not cookie_ricevuto: + while not ret: webServer.handle_request() logger.info("Server stopped.") + return ret diff --git a/core/httptools.py b/core/httptools.py index 8fa2fc76..5c17d53f 100755 --- a/core/httptools.py +++ b/core/httptools.py @@ -432,7 +432,16 @@ def downloadpage(url, **opt): and not opt.get('CF', False) and 'Ray ID' in response['data'] and not opt.get('post', None): logger.debug("CF retry... for domain: %s" % domain) from core import app - app.call_url(url) + ret = app.call_url(url) + for elem in ret: + if elem['key'] == 'html': + response['data'] = elem['html'] + elif elem['key'] == 'cookie': + for cookie in elem: + if cookie == 'key': # not a cookie + continue + set_cookies(elem[cookie]) + response_code = 200 # from lib import proxytranslate # gResp = proxytranslate.process_request_proxy(url) # if gResp: