def CheckPMS(self): """ Check the PMS that was set in file settings. Will return False if we need to reconnect, because: PMS could not be reached (no matter the authorization) machineIdentifier did not match Will also set the PMS machineIdentifier in the file settings if it was not set before """ answer = True chk = self.plx.CheckConnection(self.server, verifySSL=False) if chk is False: self.logMsg('Could not reach PMS %s' % self.server, -1) answer = False if answer is True and not self.serverid: self.logMsg( 'No PMS machineIdentifier found for %s. Trying to ' 'get the PMS unique ID' % self.server, 1) self.serverid = GetMachineIdentifier(self.server) if self.serverid is None: self.logMsg('Could not retrieve machineIdentifier', -1) answer = False else: utils.settings('plex_machineIdentifier', value=self.serverid) elif answer is True: tempServerid = GetMachineIdentifier(self.server) if tempServerid != self.serverid: self.logMsg( 'The current PMS %s was expected to have a ' 'unique machineIdentifier of %s. But we got ' '%s. Pick a new server to be sure' % (self.server, self.serverid, tempServerid), 1) answer = False return answer
def getServer(self, prefix=True): # Original host self.servername = settings('plex_servername') HTTPS = settings('https') == "true" host = settings('ipaddress') port = settings('port') self.machineIdentifier = settings('plex_machineIdentifier') server = host + ":" + port if not host: log.debug("No server information saved.") return False # If https is true if prefix and HTTPS: server = "https://%s" % server # If https is false elif prefix and not HTTPS: server = "http://%s" % server # User entered IP; we need to get the machineIdentifier if self.machineIdentifier == '' and prefix is True: self.machineIdentifier = GetMachineIdentifier(server) if self.machineIdentifier is None: self.machineIdentifier = '' settings('plex_machineIdentifier', value=self.machineIdentifier) log.info('Returning active server: %s' % server) return server
def enterPMS(): """ Opens dialogs for the user the plug in the PMS details """ # "Enter your Plex Media Server's IP or URL. Examples are:" dialog('ok', lang(29999), lang(39215), '192.168.1.2', 'plex.myServer.org') ip = dialog('input', "Enter PMS IP or URL") if ip == '': return port = dialog('input', "Enter PMS port", '32400', type='{numeric}') if port == '': return url = '%s:%s' % (ip, port) # "Does your Plex Media Server support SSL connections? # (https instead of http)" https = dialog('yesno', lang(29999), lang(39217)) if https: url = 'https://%s' % url else: url = 'http://%s' % url https = 'true' if https else 'false' machineIdentifier = GetMachineIdentifier(url) if machineIdentifier is None: # "Error contacting url # Abort (Yes) or save address anyway (No)" if dialog('yesno', lang(29999), '%s %s. %s' % (lang(39218), url, lang(39219))): return else: settings('plex_machineIdentifier', '') else: settings('plex_machineIdentifier', machineIdentifier) log.info('Set new PMS to https %s, ip %s, port %s, machineIdentifier %s' % (https, ip, port, machineIdentifier)) settings('https', value=https) settings('ipaddress', value=ip) settings('port', value=port) # Chances are this is a local PMS, so disable SSL certificate check settings('sslverify', value='false') # Sign out to trigger new login if __LogOut(): # Only login again if logout was successful __LogIn()