def remote_access_enabled(self): pms_connect = pmsconnect.PmsConnect() pref = pms_connect.get_server_pref(pref='PublishServerOnPlexOnlineKey') return helpers.bool_true(pref)
def _api_validate(self, *args, **kwargs): """ Sets class vars and remove unneeded parameters. """ if not plexpy.CONFIG.API_ENABLED: self._api_msg = 'API not enabled' self._api_response_code = 404 elif not plexpy.CONFIG.API_KEY: self._api_msg = 'API key not generated' self._api_response_code = 401 elif len(plexpy.CONFIG.API_KEY) != 32: self._api_msg = 'API key not generated correctly' self._api_response_code = 401 elif 'apikey' not in kwargs: self._api_msg = 'Parameter apikey is required' self._api_response_code = 401 elif 'cmd' not in kwargs: self._api_msg = 'Parameter cmd is required. Possible commands are: %s' % ', '.join( self._api_valid_methods) self._api_response_code = 400 elif 'cmd' in kwargs and kwargs.get( 'cmd') not in self._api_valid_methods: self._api_msg = 'Unknown command: %s. Possible commands are: %s' % ( kwargs.get('cmd', ''), ', '.join( sorted(self._api_valid_methods))) self._api_response_code = 400 self._api_callback = kwargs.pop('callback', None) self._api_apikey = kwargs.pop('apikey', None) self._api_cmd = kwargs.pop('cmd', None) self._api_debug = kwargs.pop('debug', False) self._api_profileme = kwargs.pop('profileme', None) # Allow override for the api. self._api_out_type = kwargs.pop('out_type', 'json') if 'app' in kwargs and helpers.bool_true(kwargs.pop('app')): self._api_app = True if plexpy.CONFIG.API_ENABLED and not self._api_msg or self._api_cmd in ( 'get_apikey', 'docs', 'docs_md'): if not self._api_app and self._api_apikey == plexpy.CONFIG.API_KEY: self._api_authenticated = True elif self._api_app and self._api_apikey == mobile_app.get_temp_device_token() and \ self._api_cmd == 'register_device': self._api_authenticated = True elif self._api_app and mobile_app.get_mobile_device_by_token( self._api_apikey): mobile_app.set_last_seen(self._api_apikey) self._api_authenticated = True else: self._api_msg = 'Invalid apikey' self._api_response_code = 401 if self._api_authenticated and self._api_cmd in self._api_valid_methods: self._api_msg = None self._api_kwargs = kwargs elif not self._api_authenticated and self._api_cmd in ( 'get_apikey', 'docs', 'docs_md'): self._api_authenticated = True # Remove the old error msg self._api_msg = None self._api_kwargs = kwargs if self._api_msg: logger.api_debug('Tautulli APIv2 :: %s.' % self._api_msg) logger.api_debug('Tautulli APIv2 :: Cleaned kwargs: %s' % self._api_kwargs) return self._api_kwargs