Example #1
0
    def register_device(self, device_id='', device_name='', friendly_name='', onesignal_id=None, **kwargs):
        """ Registers the Tautulli Android App for notifications.

            ```
            Required parameters:
                device_id (str):          The unique device identifier for the mobile device
                device_name (str):        The device name of the mobile device

            Optional parameters:
                friendly_name (str):      A friendly name to identify the mobile device
                onesignal_id (str):       The OneSignal id for the mobile device

            Returns:
                json:
                    {"pms_name": "Winterfell-Server",
                     "server_id": "ds48g4r354a8v9byrrtr697g3g79w"
                     }
            ```
        """
        if not device_id:
            self._api_msg = 'Device registration failed: no device id provided.'
            self._api_result_type = 'error'
            return

        elif not device_name:
            self._api_msg = 'Device registration failed: no device name provided.'
            self._api_result_type = 'error'
            return

        ## TODO: Temporary for backwards compatibility, assume device_id is onesignal_id
        if device_id and onesignal_id is None:
            onesignal_id = device_id

        result = mobile_app.add_mobile_device(device_id=device_id,
                                              device_name=device_name,
                                              device_token=self._api_apikey,
                                              friendly_name=friendly_name,
                                              onesignal_id=onesignal_id)

        if result:
            self._api_msg = 'Device registration successful.'
            self._api_result_type = 'success'

            mobile_app.set_temp_device_token(None)

            data = {
                "pms_name": plexpy.CONFIG.PMS_NAME,
                "server_id": plexpy.CONFIG.PMS_UUID
            }

            return data

        else:
            self._api_msg = 'Device registration failed: database error.'
            self._api_result_type = 'error'

        return
Example #2
0
    def register_device(self,
                        device_id='',
                        device_name='',
                        friendly_name='',
                        **kwargs):
        """ Registers the Tautulli Android App for notifications.

            ```
            Required parameters:
                device_name (str):        The device name of the Tautulli Android App
                device_id (str):          The OneSignal device id of the Tautulli Android App

            Optional parameters:
                friendly_name (str):      A friendly name to identify the mobile device

            Returns:
                None
            ```
        """
        if not device_id:
            self._api_msg = 'Device registartion failed: no device id provided.'
            self._api_result_type = 'error'
            return

        elif not device_name:
            self._api_msg = 'Device registartion failed: no device name provided.'
            self._api_result_type = 'error'
            return

        result = mobile_app.add_mobile_device(device_id=device_id,
                                              device_name=device_name,
                                              device_token=self._api_apikey,
                                              friendly_name=friendly_name)

        if result:
            self._api_msg = 'Device registration successful.'
            self._api_result_type = 'success'
            mobile_app.TEMP_DEVICE_TOKEN = None
        else:
            self._api_msg = 'Device registartion failed: database error.'
            self._api_result_type = 'error'

        return
Example #3
0
    def register_device(self,
                        device_id='',
                        device_name='',
                        platform=None,
                        version=None,
                        friendly_name='',
                        onesignal_id=None,
                        min_version='',
                        **kwargs):
        """ Registers the Tautulli Remote App.

            ```
            Required parameters:
                device_id (str):          The unique device identifier for the mobile device
                device_name (str):        The device name of the mobile device

            Optional parameters:
                platform (str):           The platform of the mobile devices
                version (str):            The version of the app
                friendly_name (str):      A friendly name to identify the mobile device
                onesignal_id (str):       The OneSignal id for the mobile device
                min_version (str):        The minimum Tautulli version supported by the mobile device, e.g. v2.5.6

            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_id": "2ce060c87958445d8399a7a0c5663755",
                     "tautulli_install_type": "git",
                     "tautulli_branch": "master",
                     "tautulli_commit": "14b98a32e085d969f010f0249c3d2f660db50880",
                     "tautulli_platform": "Windows",
                     "tautulli_platform_device_name": "Winterfell-PC",
                     "tautulli_platform_linux_distro": "",
                     "tautulli_platform_release": "10",
                     "tautulli_platform_version": "10.0.18362",
                     "tautulli_python_version": "3.8.3"
                     "tautulli_version": "v2.5.6",
                     }
            ```
        """
        if not device_id:
            self._api_msg = 'Device registration failed: no device id provided.'
            self._api_result_type = 'error'
            return

        elif not device_name:
            self._api_msg = 'Device registration failed: no device name provided.'
            self._api_result_type = 'error'
            return

        elif min_version and helpers.version_to_tuple(
                min_version) > helpers.version_to_tuple(common.RELEASE):
            self._api_msg = 'Device registration failed: Tautulli version {} ' \
                            'does not meet the minimum requirement of {}.'.format(common.RELEASE, min_version)
            self._api_result_type = 'error'
            return

        ## TODO: Temporary for backwards compatibility, assume device_id is onesignal_id
        if device_id and onesignal_id is None:
            onesignal_id = device_id

        result = mobile_app.add_mobile_device(device_id=device_id,
                                              device_name=device_name,
                                              device_token=self._api_apikey,
                                              platform=platform,
                                              version=version,
                                              friendly_name=friendly_name,
                                              onesignal_id=onesignal_id)

        if result:
            self._api_msg = 'Device registration successful.'
            self._api_result_type = 'success'

            mobile_app.set_temp_device_token(self._api_apikey, success=True)

            plex_server = plextv.get_server_resources(return_info=True)
            tautulli = plexpy.get_tautulli_info()

            data = {"server_id": plexpy.CONFIG.PMS_UUID}
            data.update(plex_server)
            data.update(tautulli)

            return data

        else:
            self._api_msg = 'Device registration failed: database error.'
            self._api_result_type = 'error'

        return