def loginToPlex(username=None, password=None): global user if username is None: if not get_setting_value('myPlex_username') or not get_setting_value('myPlex_password'): logger.log('Plex :: Missing Plex Credentials in db', 'INFO') return False else: username = get_setting_value('myPlex_username') password = get_setting_value('myPlex_password') logger.log('Plex :: Logging into plex.tv', 'INFO') try: user = User(username, password) user, token = user.MyPlexSignIn() if user is '': logger.log('Plex :: Log in FAILED', 'ERROR') return False # failed to sign in setting = get_setting('myPlex_token') if not setting: setting = Setting('myPlex_token') setting.value = token db_session.add(setting) db_session.commit() logger.log('Plex :: Log in successful', 'INFO') return True except: logger.log('Plex :: Log in FAILED', 'ERROR') return False
def switch_server(server_id=None): """ Switches Plex servers manually. """ try: active_server = get_setting('active_server') if not active_server: active_server = Setting('active_server', 0) db_session.add(active_server) db_session.commit() server = PlexServer.query.filter(PlexServer.id == server_id).first() if server: active_server.value = server_id db_session.add(active_server) db_session.commit() logger.log('Switched active server to ID %s' % server_id , 'INFO') try: status, msg = plex_update_sections(server_id) if not status: logger.log('Plex :: %s' % msg, 'ERROR') except Exception as e: return jsonify(success=False, msg='Failed to reach server, please check log for details.') else: logger.log('Switching server prevented, server ID %s does not exist in db' % server_id, 'INFO') except Exception as e: logger.log('Error setting active server to ID %s: %s' % (server_id, e) , 'WARNING') return jsonify(success=False) return jsonify(success=True)
def json_login(): if not loginToPlex(): return jsonify(success=False, msg='Failed to login to plex.tv, plese make sure this is a valid username/password.') # Delete info for previous accounts try: PlexServer.query.delete() except: logger.log('Plex :: Failed to delete old server info', 'WARNING') # Populate servers for new user if not getServers(): return jsonify(success=False, msg='Failed to retrieve server information from https://plex.tv/pms/servers.') # Set active server to 0 (no server selected) try: active_server = get_setting('active_server') if not active_server: active_server = Setting('active_server', 0) db_session.add(active_server) db_session.commit() else: active_server.value = 0 db_session.add(active_server) db_session.commit() except: logger.log('Plex :: Failed to reset server, please make sure to select new one.', 'WARNING') # return a list of (server name, server id) return jsonify(success=True, servers=listServers())
def loginToPlex(username=None, password=None): global user if username is None: if not get_setting_value('myPlex_username') or not get_setting_value( 'myPlex_password'): logger.log('Plex :: Missing Plex Credentials in db', 'INFO') return False else: username = get_setting_value('myPlex_username') password = get_setting_value('myPlex_password') logger.log('Plex :: Logging into plex.tv', 'INFO') try: user = User(username, password) user, token = user.MyPlexSignIn() if user is '': logger.log('Plex :: Log in FAILED', 'ERROR') return False # failed to sign in setting = get_setting('myPlex_token') if not setting: setting = Setting('myPlex_token') setting.value = token db_session.add(setting) db_session.commit() logger.log('Plex :: Log in successful', 'INFO') return True except: logger.log('Plex :: Log in FAILED', 'ERROR') return False
def tutorial_save(): global user, servers # save login and password on db try: settings = json.JSONDecoder().decode(request.form['settings']) for s in settings: setting = get_setting(s['name']) if not setting: setting = Setting(s['name']) setting.value = s['value'] db_session.add(setting) db_session.commit() logger.log('Plex :: Successfully saved Plex credentials', 'INFO') except: return jsonify(success=False, msg='Failed to save plex credentials to db') # Delete info for previous accounts try: PlexServer.query.delete() except: logger.log('Plex :: Failed to delete old server info', 'WARNING') try: if loginToPlex(): # login to plex servers = getServers() if servers: # retrieve servers return jsonify(success=True, servers=listServers()) else: return jsonify(sucess=False, msg='Failed to retrieve servers') else: return jsonify(sucess=False, msg='Failed to login to plex') except: return jsonify(success=False, msg='Servers not populated Successfully')
def json_login(): if not loginToPlex(): return jsonify( success=False, msg= 'Failed to login to plex.tv, plese make sure this is a valid username/password.' ) # Delete info for previous accounts try: PlexServer.query.delete() except: logger.log('Plex :: Failed to delete old server info', 'WARNING') # Populate servers for new user if not getServers(): return jsonify( success=False, msg= 'Failed to retrieve server information from https://plex.tv/pms/servers.' ) # Set active server to 0 (no server selected) try: active_server = get_setting('active_server') if not active_server: active_server = Setting('active_server', 0) db_session.add(active_server) db_session.commit() else: active_server.value = 0 db_session.add(active_server) db_session.commit() except: logger.log( 'Plex :: Failed to reset server, please make sure to select new one.', 'WARNING') # return a list of (server name, server id) return jsonify(success=True, servers=listServers())
def init_xbmc_media_settings(): ''' If library settings are not in database, add them with default value. ''' for setting in library_settings: for s in library_settings[setting]: if get_setting(s['key']) == None: new_setting = Setting(key=s['key'], value=s['value']) db_session.add(new_setting) db_session.commit() return
def switch_server(server_id=None): """ Switches Plex servers manually. """ try: active_server = get_setting('active_server') if not active_server: active_server = Setting('active_server', 0) db_session.add(active_server) db_session.commit() server = PlexServer.query.filter(PlexServer.id == server_id).first() if server: active_server.value = server_id db_session.add(active_server) db_session.commit() logger.log('Switched active server to ID %s' % server_id, 'INFO') try: status, msg = plex_update_sections(server_id) if not status: logger.log('Plex :: %s' % msg, 'ERROR') except Exception as e: return jsonify( success=False, msg='Failed to reach server, please check log for details.' ) else: logger.log( 'Switching server prevented, server ID %s does not exist in db' % server_id, 'INFO') except Exception as e: logger.log('Error setting active server to ID %s: %s' % (server_id, e), 'WARNING') return jsonify(success=False) return jsonify(success=True)
def server_settings(): """Get settings for active XBMC server instance""" # query all configured XBMC servers from the db servers = XbmcServer.query.order_by(XbmcServer.position) if servers.count() == 0: return { 'hostname': None, 'port': None, 'username': None, 'password': None, } active_server = get_setting_value('active_server') # if active server is not defined, set it if not active_server: active_server = Setting('active_server', servers.first().id) db_session.add(active_server) db_session.commit() try: server = servers.get(active_server) except: logger.log('Could not retrieve active server, falling back on first entry' , 'WARNING') server = servers.first() return { 'hostname': server.hostname, 'port': server.port, 'username': server.username, 'password': server.password, 'mac_address': server.mac_address, }