Add get_server_info API command

This commit is contained in:
JonnyWong16 2020-08-02 10:18:57 -07:00
commit 91a18e1a92
No known key found for this signature in database
GPG key ID: B1F1F9807184697A
3 changed files with 68 additions and 3 deletions

27
API.md
View file

@ -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.

View file

@ -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']:

View file

@ -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()