Migliorie
This commit is contained in:
43
core/app.py
43
core/app.py
@@ -1,11 +1,13 @@
|
||||
import base64
|
||||
import socket
|
||||
from http.server import BaseHTTPRequestHandler, HTTPServer
|
||||
import xbmc
|
||||
import xbmc, random
|
||||
from core import jsontools, httptools
|
||||
from platformcode import logger
|
||||
|
||||
hostName = xbmc.getIPAddress()
|
||||
serverPort = 8080
|
||||
ret = None
|
||||
serverPort = random.randint(49152, 65535)
|
||||
ret = []
|
||||
call = 'kodapp://app.kod/open?s={}&ua={}&cb=http://{}:{}/'
|
||||
|
||||
|
||||
@@ -17,18 +19,31 @@ class MyServer(BaseHTTPRequestHandler):
|
||||
ret = jsontools.load(postvars)
|
||||
logger.info(ret)
|
||||
self.send_response(200)
|
||||
self.send_header("Content-type", "text/plain")
|
||||
self.end_headers()
|
||||
self.wfile.write(b"OK")
|
||||
|
||||
|
||||
def call_url(url):
|
||||
global cookie_ricevuto
|
||||
webServer = HTTPServer((hostName, serverPort), MyServer)
|
||||
logger.info("Server started http://%s:%s" % (hostName, serverPort))
|
||||
s = base64.b64encode(jsontools.dump({'url': url}).encode()).decode()
|
||||
ua = base64.b64encode(httptools.get_user_agent().encode()).decode()
|
||||
activity = 'StartAndroidActivity("com.kodapp","android.intent.action.VIEW","",{})'.format(call.format(s, ua, hostName, serverPort))
|
||||
logger.info(activity)
|
||||
xbmc.executebuiltin(activity)
|
||||
while not ret:
|
||||
webServer.handle_request()
|
||||
logger.info("Server stopped.")
|
||||
global serverPort
|
||||
webServer = None
|
||||
for t in range(10): # try up to 10 port if already in use
|
||||
try:
|
||||
webServer = HTTPServer((hostName, serverPort), MyServer)
|
||||
break
|
||||
except socket.error:
|
||||
serverPort += 1
|
||||
if webServer:
|
||||
logger.info("Server started http://%s:%s" % (hostName, serverPort))
|
||||
s = base64.b64encode(jsontools.dump({'url': url}).encode()).decode()
|
||||
ua = base64.b64encode(httptools.get_user_agent().encode()).decode()
|
||||
uri = call.format(s, ua, hostName, serverPort)
|
||||
if logger.DEBUG_ENABLED:
|
||||
uri += '&l=1'
|
||||
activity = 'StartAndroidActivity("com.kodapp","android.intent.action.VIEW","",{})'.format(uri)
|
||||
logger.info(activity)
|
||||
xbmc.executebuiltin(activity)
|
||||
while not ret:
|
||||
webServer.handle_request()
|
||||
logger.info("Server stopped.")
|
||||
return ret
|
||||
|
||||
Reference in New Issue
Block a user