def getAuthHeader(self, authenticate=True): clientInfo = ClientInformation() txt_mac = clientInfo.getMachineId() version = clientInfo.getVersion() deviceName = self.addonSettings.getSetting('deviceName') deviceName = deviceName.replace("\"", "_") if (authenticate == False): authString = "MediaBrowser Client=\"Kodi\",Device=\"" + deviceName + "\",DeviceId=\"" + txt_mac + "\",Version=\"" + version + "\"" headers = { "Accept-encoding": "gzip", "Accept-Charset": "UTF-8,*", "Authorization": authString } return headers else: userid = self.getUserId() authString = "MediaBrowser UserId=\"" + userid + "\",Client=\"Kodi\",Device=\"" + deviceName + "\",DeviceId=\"" + txt_mac + "\",Version=\"" + version + "\"" headers = { "Accept-encoding": "gzip", "Accept-Charset": "UTF-8,*", "Authorization": authString } authToken = self.authenticate() if (authToken != ""): headers["X-MediaBrowser-Token"] = authToken self.logMsg("Authentication Header : " + str(headers)) return headers
def getAuthHeader(): addonSettings = xbmcaddon.Addon(id='plugin.video.xbmb3c') deviceName = addonSettings.getSetting('deviceName') deviceName = deviceName.replace("\"", "_") # might need to url encode this as it is getting added to the header and is user entered data clientInfo = ClientInformation() txt_mac = clientInfo.getMachineId() version = clientInfo.getVersion() userid = xbmcgui.Window( 10000 ).getProperty("userid") authString = "MediaBrowser UserId=\"" + userid + "\",Client=\"XBMC\",Device=\"" + deviceName + "\",DeviceId=\"" + txt_mac + "\",Version=\"" + version + "\"" headers = {'Accept-encoding': 'gzip', 'Authorization' : authString} xbmc.log("XBMB3C Authentication Header : " + str(headers)) return headers
def authenticate(self): WINDOW = xbmcgui.Window( 10000 ) token = WINDOW.getProperty("AccessToken"+self.addonSettings.getSetting('username')) if(token != None and token != ""): self.logMsg("DownloadUtils -> Returning saved AccessToken for user : "******" token: "+ token) return token port = self.addonSettings.getSetting("port") host = self.addonSettings.getSetting("ipaddress") if(host == None or host == "" or port == None or port == ""): return "" url = "http://" + self.addonSettings.getSetting("ipaddress") + ":" + self.addonSettings.getSetting("port") + "/mediabrowser/Users/AuthenticateByName?format=json" clientInfo = ClientInformation() txt_mac = clientInfo.getMachineId() version = clientInfo.getVersion() deviceName = self.addonSettings.getSetting('deviceName') deviceName = deviceName.replace("\"", "_") authString = "Mediabrowser Client=\"XBMC\",Device=\"" + deviceName + "\",DeviceId=\"" + txt_mac + "\",Version=\"" + version + "\"" headers = {'Accept-encoding': 'gzip', 'Authorization' : authString} if self.addonSettings.getSetting('password') !=None and self.addonSettings.getSetting('password') !='': sha1 = hashlib.sha1(self.addonSettings.getSetting('password')) sha1 = sha1.hexdigest() else: sha1 = 'da39a3ee5e6b4b0d3255bfef95601890afd80709' messageData = "username="******"&password="******"POST", authenticate=False) accessToken = None try: result = json.loads(resp) accessToken = result.get("AccessToken") except: pass if(accessToken != None): self.logMsg("User Authenticated : " + accessToken) WINDOW.setProperty("AccessToken"+self.addonSettings.getSetting('username'), accessToken) WINDOW.setProperty("userid", result.get("User").get("Id")) return accessToken else: self.logMsg("User NOT Authenticated") WINDOW.setProperty("AccessToken"+self.addonSettings.getSetting('username'), "") return ""
def on_open(self, ws): try: clientInfo = ClientInformation() machineId = clientInfo.getMachineId() version = clientInfo.getVersion() messageData = {} messageData["MessageType"] = "Identity" addonSettings = xbmcaddon.Addon(id='plugin.video.xbmb3c') deviceName = addonSettings.getSetting('deviceName') deviceName = deviceName.replace("\"", "_") messageData["Data"] = "XBMC|" + machineId + "|" + version + "|" + deviceName messageString = json.dumps(messageData) self.logMsg("Opened : " + str(messageString)) ws.send(messageString) except Exception, e: self.logMsg("Exception : " + str(e), level=0)
def on_open(self, ws): try: clientInfo = ClientInformation() machineId = clientInfo.getMachineId() version = clientInfo.getVersion() messageData = {} messageData["MessageType"] = "Identity" addonSettings = xbmcaddon.Addon(id='plugin.video.xbmb3c') deviceName = addonSettings.getSetting('deviceName') deviceName = deviceName.replace("\"", "_") messageData["Data"] = "Kodi|" + machineId + "|" + version + "|" + deviceName messageString = json.dumps(messageData) self.logMsg("Opened : " + str(messageString)) ws.send(messageString) except Exception, e: self.logMsg("Exception : " + str(e), level=0)
def on_open(self, ws): clientInfo = ClientInformation() machineId = clientInfo.getMachineId() version = clientInfo.getVersion() messageData = {} messageData["MessageType"] = "Identity" addonSettings = xbmcaddon.Addon(id='plugin.video.xbmb3c') deviceName = addonSettings.getSetting('deviceName') deviceName = deviceName.replace("\"", "_") messageData["Data"] = "Kodi|" + machineId + "|" + version + "|" + deviceName messageString = json.dumps(messageData) self.logMsg("Opened : " + str(messageString)) ws.send(messageString) # Set Capabilities xbmc.log("postcapabilities_called") downloadUtils = DownloadUtils() downloadUtils.postcapabilities()
def on_open(self, ws): clientInfo = ClientInformation() machineId = clientInfo.getMachineId() version = clientInfo.getVersion() messageData = {} messageData["MessageType"] = "Identity" addonSettings = xbmcaddon.Addon(id='plugin.video.xbmb3c') deviceName = addonSettings.getSetting('deviceName') deviceName = deviceName.replace("\"", "_") messageData[ "Data"] = "Kodi|" + machineId + "|" + version + "|" + deviceName messageString = json.dumps(messageData) self.logMsg("Opened : " + str(messageString)) ws.send(messageString) # Set Capabilities xbmc.log("postcapabilities_called") downloadUtils = DownloadUtils() downloadUtils.postcapabilities()
def getAuthHeader(self, authenticate=True): clientInfo = ClientInformation() txt_mac = clientInfo.getMachineId() version = clientInfo.getVersion() deviceName = self.addonSettings.getSetting('deviceName') deviceName = deviceName.replace("\"", "_") if(authenticate == False): authString = "MediaBrowser Client=\"Kodi\",Device=\"" + deviceName + "\",DeviceId=\"" + txt_mac + "\",Version=\"" + version + "\"" headers = {"Accept-encoding": "gzip", "Accept-Charset" : "UTF-8,*", "Authorization" : authString} return headers else: userid = self.getUserId() authString = "MediaBrowser UserId=\"" + userid + "\",Client=\"Kodi\",Device=\"" + deviceName + "\",DeviceId=\"" + txt_mac + "\",Version=\"" + version + "\"" headers = {"Accept-encoding": "gzip", "Accept-Charset" : "UTF-8,*", "Authorization" : authString} authToken = self.authenticate() if(authToken != ""): headers["X-MediaBrowser-Token"] = authToken self.logMsg("Authentication Header : " + str(headers)) return headers
def authenticate(self, retreive=True): WINDOW = xbmcgui.Window(10000) self.addonSettings = xbmcaddon.Addon(id='plugin.video.xbmb3c') username = self.addonSettings.getSetting('username') token = WINDOW.getProperty("AccessToken" + username) if(token != None and token != ""): self.logMsg("DownloadUtils -> Returning saved (WINDOW) AccessToken for user:"******" token:" + token) return token token = self.addonSettings.getSetting("AccessToken" + username) if(token != None and token != ""): WINDOW.setProperty("AccessToken" + username, token) self.logMsg("DownloadUtils -> Returning saved (SETTINGS) AccessToken for user:"******" token:" + token) return token port = self.addonSettings.getSetting("port") host = self.addonSettings.getSetting("ipaddress") if(host == None or host == "" or host == "<none>" or port == None or port == ""): return "" if(retreive == False): return "" url = "http://" + host + ":" + port + "/mediabrowser/Users/AuthenticateByName?format=json" clientInfo = ClientInformation() txt_mac = clientInfo.getMachineId() version = clientInfo.getVersion() # get user info jsonData = self.downloadUrl("http://" + host + ":" + port + "/mediabrowser/Users/Public?format=json", authenticate=False) users = [] if(jsonData != ""): users = json.loads(jsonData) userHasPassword = False for user in users: name = user.get("Name") if(username == name): if(user.get("HasPassword") == True): userHasPassword = True break password = "" if(userHasPassword): password = xbmcgui.Dialog().input("Enter Password for user : "******""): sha1 = hashlib.sha1(password) sha1 = sha1.hexdigest() else: sha1 = 'da39a3ee5e6b4b0d3255bfef95601890afd80709' messageData = "username="******"&password="******"POST", authenticate=False) result = None accessToken = None try: xbmc.log("Auth_Reponce: " + str(resp)) result = json.loads(resp) accessToken = result.get("AccessToken") except: pass if(result != None and accessToken != None): userID = result.get("User").get("Id") self.logMsg("User Authenticated : " + accessToken) WINDOW.setProperty("AccessToken" + username, accessToken) WINDOW.setProperty("userid" + username, userID) self.addonSettings.setSetting("AccessToken" + username, accessToken) self.addonSettings.setSetting("userid" + username, userID) return accessToken else: self.logMsg("User NOT Authenticated") WINDOW.setProperty("AccessToken" + username, "") WINDOW.setProperty("userid" + username, "") self.addonSettings.setSetting("AccessToken" + username, "") self.addonSettings.setSetting("userid" + username, "") return ""
def authenticate(self): WINDOW = xbmcgui.Window(10000) self.addonSettings = xbmcaddon.Addon(id='plugin.video.xbmb3c') token = WINDOW.getProperty("AccessToken" + self.addonSettings.getSetting('username')) if (token != None and token != ""): self.logMsg( "DownloadUtils -> Returning saved AccessToken for user : "******" token: " + token) return token port = self.addonSettings.getSetting("port") host = self.addonSettings.getSetting("ipaddress") if (host == None or host == "" or port == None or port == ""): return "" url = "http://" + self.addonSettings.getSetting( "ipaddress") + ":" + self.addonSettings.getSetting( "port") + "/mediabrowser/Users/AuthenticateByName?format=json" clientInfo = ClientInformation() txt_mac = clientInfo.getMachineId() version = clientInfo.getVersion() deviceName = self.addonSettings.getSetting('deviceName') deviceName = deviceName.replace("\"", "_") authString = "Mediabrowser Client=\"Kodi\",Device=\"" + deviceName + "\",DeviceId=\"" + txt_mac + "\",Version=\"" + version + "\"" headers = {'Accept-encoding': 'gzip', 'Authorization': authString} if self.addonSettings.getSetting( 'password') != None and self.addonSettings.getSetting( 'password') != '': sha1 = hashlib.sha1(self.addonSettings.getSetting('password')) sha1 = sha1.hexdigest() else: sha1 = 'da39a3ee5e6b4b0d3255bfef95601890afd80709' messageData = "username="******"&password="******"POST", authenticate=False, suppress=True) accessToken = None try: result = json.loads(resp) accessToken = result.get("AccessToken") except: pass if (accessToken != None): self.logMsg("User Authenticated : " + accessToken) WINDOW.setProperty( "AccessToken" + self.addonSettings.getSetting('username'), accessToken) WINDOW.setProperty( "userid" + self.addonSettings.getSetting('username'), result.get("User").get("Id")) return accessToken else: self.logMsg("User NOT Authenticated") WINDOW.setProperty( "AccessToken" + self.addonSettings.getSetting('username'), "") return ""
def authenticate(self, retreive=True): WINDOW = xbmcgui.Window(10000) self.addonSettings = xbmcaddon.Addon(id='plugin.video.xbmb3c') username = self.addonSettings.getSetting('username') token = WINDOW.getProperty("AccessToken" + username) if (token != None and token != ""): self.logMsg( "DownloadUtils -> Returning saved (WINDOW) AccessToken for user:"******" token:" + token) return token token = self.addonSettings.getSetting("AccessToken" + username) if (token != None and token != ""): WINDOW.setProperty("AccessToken" + username, token) self.logMsg( "DownloadUtils -> Returning saved (SETTINGS) AccessToken for user:"******" token:" + token) return token port = self.addonSettings.getSetting("port") host = self.addonSettings.getSetting("ipaddress") if (host == None or host == "" or host == "<none>" or port == None or port == ""): return "" if (retreive == False): return "" url = "http://" + host + ":" + port + "/mediabrowser/Users/AuthenticateByName?format=json" clientInfo = ClientInformation() txt_mac = clientInfo.getMachineId() version = clientInfo.getVersion() # get user info jsonData = self.downloadUrl("http://" + host + ":" + port + "/mediabrowser/Users/Public?format=json", authenticate=False) users = [] if (jsonData != ""): users = json.loads(jsonData) userHasPassword = False for user in users: name = user.get("Name") if (username == name): if (user.get("HasPassword") == True): userHasPassword = True break password = "" if (userHasPassword): password = xbmcgui.Dialog().input("Enter Password for user : "******""): sha1 = hashlib.sha1(password) sha1 = sha1.hexdigest() else: sha1 = 'da39a3ee5e6b4b0d3255bfef95601890afd80709' messageData = "username="******"&password="******"POST", authenticate=False) result = None accessToken = None try: xbmc.log("Auth_Reponce: " + str(resp)) result = json.loads(resp) accessToken = result.get("AccessToken") except: pass if (result != None and accessToken != None): userID = result.get("User").get("Id") self.logMsg("User Authenticated : " + accessToken) WINDOW.setProperty("AccessToken" + username, accessToken) WINDOW.setProperty("userid" + username, userID) self.addonSettings.setSetting("AccessToken" + username, accessToken) self.addonSettings.setSetting("userid" + username, userID) return accessToken else: self.logMsg("User NOT Authenticated") WINDOW.setProperty("AccessToken" + username, "") WINDOW.setProperty("userid" + username, "") self.addonSettings.setSetting("AccessToken" + username, "") self.addonSettings.setSetting("userid" + username, "") return ""