diff --git a/API.md b/API.md index 995b2b6f..4e4d7957 100644 --- a/API.md +++ b/API.md @@ -1989,6 +1989,33 @@ Returns: ``` +### get_server_info +Get the PMS server information. + +``` +Required parameters: + None + +Optional parameters: + None + +Returns: + json: + {"pms_identifier": "08u2phnlkdshf890bhdlksghnljsahgleikjfg9t", + "pms_ip": "10.10.10.1", + "pms_is_remote": 0, + "pms_name": "Winterfell-Server", + "pms_platform": "Windows", + "pms_plexpass": 1, + "pms_port": 32400, + "pms_ssl": 0, + "pms_url": "http://10.10.10.1:32400", + "pms_url_manual": 0, + "pms_version": "1.20.0.3133-fede5bdc7" + } +``` + + ### get_server_list Get all your servers that are published to Plex.tv. diff --git a/plexpy/plextv.py b/plexpy/plextv.py index 79c11c03..311a98b9 100644 --- a/plexpy/plextv.py +++ b/plexpy/plextv.py @@ -42,8 +42,8 @@ else: from plexpy import session -def get_server_resources(return_presence=False, return_server=False, **kwargs): - if not return_presence: +def get_server_resources(return_presence=False, return_server=False, return_info=False, **kwargs): + if not return_presence and not return_info: logger.info("Tautulli PlexTV :: Requesting resources for server...") server = {'pms_name': plexpy.CONFIG.PMS_NAME, @@ -56,9 +56,13 @@ def get_server_resources(return_presence=False, return_server=False, **kwargs): 'pms_is_cloud': plexpy.CONFIG.PMS_IS_CLOUD, 'pms_url': plexpy.CONFIG.PMS_URL, 'pms_url_manual': plexpy.CONFIG.PMS_URL_MANUAL, - 'pms_identifier': plexpy.CONFIG.PMS_IDENTIFIER + 'pms_identifier': plexpy.CONFIG.PMS_IDENTIFIER, + 'pms_plexpass': plexpy.CONFIG.PMS_PLEXPASS } + if return_info: + return server + if kwargs: server.update(kwargs) for k in ['pms_ssl', 'pms_is_remote', 'pms_is_cloud', 'pms_url_manual']: diff --git a/plexpy/webserve.py b/plexpy/webserve.py index d5ddc943..36033641 100644 --- a/plexpy/webserve.py +++ b/plexpy/webserve.py @@ -4047,6 +4047,40 @@ class WebInterface(object): logger.warn('Unable to retrieve the PMS identifier.') return result + @cherrypy.expose + @cherrypy.tools.json_out() + @requireAuth(member_of("admin")) + @addtoapi() + def get_server_info(self, **kwargs): + """ Get the PMS server information. + + ``` + Required parameters: + None + + Optional parameters: + None + + Returns: + json: + {"pms_identifier": "08u2phnlkdshf890bhdlksghnljsahgleikjfg9t", + "pms_ip": "10.10.10.1", + "pms_is_remote": 0, + "pms_name": "Winterfell-Server", + "pms_platform": "Windows", + "pms_plexpass": 1, + "pms_port": 32400, + "pms_ssl": 0, + "pms_url": "http://10.10.10.1:32400", + "pms_url_manual": 0, + "pms_version": "1.20.0.3133-fede5bdc7" + } + ``` + """ + server = plextv.get_server_resources(return_info=True) + server.pop('pms_is_cloud', None) + return server + @cherrypy.expose @requireAuth(member_of("admin")) @addtoapi()