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
Exemplo n.º 2
0
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 ""            
Exemplo n.º 4
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"] = "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()
Exemplo n.º 7
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 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 ""
Exemplo n.º 11
0
    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 ""