From 5d1479972db7fac42b587bc28271d6f0143e81a7 Mon Sep 17 00:00:00 2001 From: faush01 Date: Tue, 7 Oct 2014 20:46:15 +1100 Subject: [PATCH] user auth headers from downloadutils --- default.py | 33 +++++++++++--------------------- resources/lib/WebSocketClient.py | 18 +++++++++++++---- 2 files changed, 25 insertions(+), 26 deletions(-) diff --git a/default.py b/default.py index a02fa3b..094f5e1 100644 --- a/default.py +++ b/default.py @@ -116,18 +116,7 @@ def printDebug( msg, level = 1): xbmc.log("MBCon " + str(level) + " -> (" + stackline + ") : " + str(msg)) else: xbmc.log("MBCon " + str(level) + " -> " + str(msg)) - -def getAuthHeader(): - txt_mac = downloadUtils.getMachineId() - version = ClientInformation().getVersion() - userid = xbmcgui.Window( 10000 ).getProperty("userid") - deviceName = __settings__.getSetting('deviceName') - deviceName = deviceName.replace("\"", "_") - authString = "MediaBrowser UserId=\"" + userid + "\",Client=\"XBMC\",Device=\"" + deviceName + "\",DeviceId=\"" + txt_mac + "\",Version=\"" + version + "\"" - headers = {'Accept-encoding': 'gzip', 'Authorization' : authString} - xbmc.log("MBCon Authentication Header : " + str(headers)) - return headers - + def getPlatform( ): if xbmc.getCondVisibility('system.platform.osx'): @@ -290,26 +279,29 @@ def getCollections(detailsString): return collections def markWatched (url): - resp = requests.delete(url, data='', headers=getAuthHeader()) # mark unwatched first to reset any play position - resp = requests.post(url, data='', headers=getAuthHeader()) + authHeaders = downloadUtils.getAuthHeader() + resp = requests.post(url, data='', headers=authHeaders) WINDOW = xbmcgui.Window( 10000 ) WINDOW.setProperty("force_data_reload", "true") xbmc.executebuiltin("Container.Refresh") def markUnwatched (url): - resp = requests.delete(url, data='', headers=getAuthHeader()) + authHeaders = downloadUtils.getAuthHeader() + resp = requests.delete(url, data='', headers=authHeaders) WINDOW = xbmcgui.Window( 10000 ) WINDOW.setProperty("force_data_reload", "true") xbmc.executebuiltin("Container.Refresh") def markFavorite (url): - resp = requests.post(url, data='', headers=getAuthHeader()) + authHeaders = downloadUtils.getAuthHeader() + resp = requests.post(url, data='', headers=authHeaders) WINDOW = xbmcgui.Window( 10000 ) WINDOW.setProperty("force_data_reload", "true") xbmc.executebuiltin("Container.Refresh") def unmarkFavorite (url): - resp = requests.delete(url, data='', headers=getAuthHeader()) + authHeaders = downloadUtils.getAuthHeader() + resp = requests.delete(url, data='', headers=authHeaders) WINDOW = xbmcgui.Window( 10000 ) WINDOW.setProperty("force_data_reload", "true") xbmc.executebuiltin("Container.Refresh") @@ -353,12 +345,9 @@ def delete (url): printDebug('Deleting via URL: ' + url) progress = xbmcgui.DialogProgress() progress.create(__language__(30052), __language__(30053)) - resp = requests.delete(url, data='', headers=getAuthHeader()) + authHeaders = downloadUtils.getAuthHeader() + resp = requests.delete(url, data='', headers=authHeaders) deleteSleep=0 - while deleteSleep<10: - xbmc.sleep(1000) - deleteSleep=deleteSleep+1 - progress.update(deleteSleep*10,__language__(30053)) progress.close() xbmc.executebuiltin("Container.Refresh") diff --git a/resources/lib/WebSocketClient.py b/resources/lib/WebSocketClient.py index 4bd0688..2536395 100644 --- a/resources/lib/WebSocketClient.py +++ b/resources/lib/WebSocketClient.py @@ -12,6 +12,7 @@ import urllib import socket import websocket from ClientInformation import ClientInformation +from DownloadUtils import DownloadUtils _MODE_BASICPLAY=12 @@ -214,16 +215,25 @@ class WebSocketThread(threading.Thread): if(self.logLevel >= 1): websocket.enableTrace(True) - wsPort = self.getWebSocketPort(mb3Host, mb3Port); + #wsPort = self.getWebSocketPort(mb3Host, mb3Port); + wsPort = mb3Port self.logMsg("WebSocketPortNumber = " + str(wsPort)) - if(wsPort == -1): - self.logMsg("Could not retrieve WebSocket port, can not run WebScoket Client") - return + #if(wsPort == -1): + # self.logMsg("Could not retrieve WebSocket port, can not run WebScoket Client") + # return + + #downloadUtils = DownloadUtils() + #authHeaders = downloadUtils.getAuthHeader() + #flatHeaders = [] + #for header in authHeaders: + # flatHeaders.append(header + ": " + authHeaders[header]) + #self.logMsg("Flat Header : " + str(flatHeaders)) # Make a call to /System/Info. WebSocketPortNumber is the port hosting the web socket. webSocketUrl = "ws://" + mb3Host + ":" + str(wsPort) + "/mediabrowser" self.logMsg("WebSocket URL : " + webSocketUrl) self.client = websocket.WebSocketApp(webSocketUrl, + #header = flatHeaders, on_message = self.on_message, on_error = self.on_error, on_close = self.on_close)