diff --git a/plexpy/database.py b/plexpy/database.py index e164b62c..203142eb 100644 --- a/plexpy/database.py +++ b/plexpy/database.py @@ -21,6 +21,7 @@ import threading import time import plexpy +import helpers import logger FILENAME = "tautulli.db" @@ -57,6 +58,24 @@ def delete_recently_added(): return clear_table('recently_added') +def delete_session_history_rows(row_ids=None): + if row_ids: + for table in ('session_history', 'session_history_media_info', 'session_history_metadata'): + delete_rows_from_table(table=table, row_ids=row_ids) + return True + return False + + +def delete_rows_from_table(table, row_ids): + if row_ids and isinstance(row_ids, basestring): + row_ids = map(helpers.cast_to_int, row_ids.split(',')) + + logger.info(u"Tautulli Database :: Deleting row ids %s from %s database table", row_ids, table) + query = "DELETE FROM " + table + " WHERE id IN (%s) " % ','.join(['?'] * len(row_ids)) + monitor_db = MonitorDatabase() + monitor_db.action(query, row_ids) + + def db_filename(filename=FILENAME): """ Returns the filepath to the db """ diff --git a/plexpy/datafactory.py b/plexpy/datafactory.py index 131eedce..bbdea771 100644 --- a/plexpy/datafactory.py +++ b/plexpy/datafactory.py @@ -1561,24 +1561,6 @@ class DataFactory(object): return key_list - def delete_session_history_rows(self, row_ids=None): - if row_ids and row_ids is not None: - row_ids = map(helpers.cast_to_int, row_ids.split(',')) - - if row_ids: - monitor_db = database.MonitorDatabase() - - logger.info(u"Tautulli DataFactory :: Deleting history row ids %s from the session history database." % row_ids) - - where = 'WHERE id IN ({})'.format(', '.join(['?'] * len(row_ids))) - for table in ('session_history', 'session_history_media_info', 'session_history_metadata'): - query = 'DELETE FROM {table} {where}'.format(table=table, where=where) - monitor_db.action(query=query, args=row_ids) - - return 'Deleted history.' - else: - return 'Unable to delete rows. Input rows not valid.' - def update_metadata(self, old_key_list='', new_key_list='', media_type=''): pms_connect = pmsconnect.PmsConnect() monitor_db = database.MonitorDatabase() diff --git a/plexpy/webserve.py b/plexpy/webserve.py index 4fda8647..65ff47dd 100644 --- a/plexpy/webserve.py +++ b/plexpy/webserve.py @@ -1871,12 +1871,14 @@ class WebInterface(object): data_factory = datafactory.DataFactory() if row_ids: - delete_row = data_factory.delete_session_history_rows(row_ids=row_ids) + success = database.delete_session_history_rows(row_ids=row_ids) - if delete_row: - return {'message': delete_row} + if success: + return {'result': 'success', 'message': 'Deleted history.'} + else: + return {'result': 'error', 'message': 'Failed to delete history.'} else: - return {'message': 'No row ids received.'} + return {'result': 'error', 'message': 'No row ids received.'} ##### Graphs #####