diff --git a/plexpy/database.py b/plexpy/database.py index 123313a4..6dca1ac2 100644 --- a/plexpy/database.py +++ b/plexpy/database.py @@ -38,9 +38,21 @@ def clear_history_tables(): monitor_db.action('DELETE FROM session_history') monitor_db.action('DELETE FROM session_history_media_info') monitor_db.action('DELETE FROM session_history_metadata') - monitor_db.action('VACUUM;') + monitor_db.action('VACUUM') +def delete_sessions(): + logger.debug(u"PlexPy Database :: Clearing temporary sessions from database.") + monitor_db = MonitorDatabase() + + try: + monitor_db.action('DELETE FROM sessions') + monitor_db.action('VACUUM') + return 'Cleared temporary sessions.' + except Exception as e: + logger.warn(u"PlexPy Database :: Unable to clear temporary sessions from database: %s." % e) + return 'Unable to clear temporary sessions.' + def db_filename(filename="plexpy.db"): """ Returns the filepath to the db """ diff --git a/plexpy/webserve.py b/plexpy/webserve.py index 9da17b9d..1dbf8fef 100644 --- a/plexpy/webserve.py +++ b/plexpy/webserve.py @@ -254,6 +254,18 @@ class WebInterface(object): logger.warn(u"Unable to retrieve data for get_recently_added.") return serve_template(templatename="recently_added.html", data=None) + @cherrypy.expose + def delete_temp_sessions(self): + + result = database.delete_sessions() + + if result: + cherrypy.response.headers['Content-type'] = 'application/json' + return json.dumps({'message': result}) + else: + cherrypy.response.headers['Content-type'] = 'application/json' + return json.dumps({'message': 'no data received'}) + ##### Libraries #####