From fbcf59abf06a80d20d722428fcff0cee77834dab Mon Sep 17 00:00:00 2001 From: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com> Date: Sun, 24 May 2020 01:10:52 -0700 Subject: [PATCH] Add database import in progress message --- data/interfaces/default/history.html | 7 +++++++ data/interfaces/default/library.html | 4 ++-- plexpy/database.py | 13 +++++++++++-- plexpy/plexivity_import.py | 6 +++++- plexpy/plexwatch_import.py | 6 +++++- plexpy/webserve.py | 6 +++++- 6 files changed, 35 insertions(+), 7 deletions(-) diff --git a/data/interfaces/default/history.html b/data/interfaces/default/history.html index 8b651ed5..1b363117 100644 --- a/data/interfaces/default/history.html +++ b/data/interfaces/default/history.html @@ -8,6 +8,13 @@ <%def name="body()">
+ % if config['database_is_importing']: +
+   Tautulli is importing history from another database. This could take a few minutes depending on the size of your database. +
+ You may leave this page and check back later. +
+ % endif
History diff --git a/data/interfaces/default/library.html b/data/interfaces/default/library.html index f05d3aa4..99a2deaf 100644 --- a/data/interfaces/default/library.html +++ b/data/interfaces/default/library.html @@ -251,9 +251,9 @@ DOCUMENTATION :: END % else:
diff --git a/plexpy/database.py b/plexpy/database.py index f0db1581..2723f54e 100644 --- a/plexpy/database.py +++ b/plexpy/database.py @@ -27,15 +27,22 @@ import time import plexpy if plexpy.PYTHON2: import logger - from helpers import cast_to_int + from helpers import cast_to_int, bool_true else: from plexpy import logger - from plexpy.helpers import cast_to_int + from plexpy.helpers import cast_to_int, bool_true FILENAME = "tautulli.db" db_lock = threading.Lock() +IS_IMPORTING = False + + +def set_is_importing(value): + global IS_IMPORTING + IS_IMPORTING = bool_true(value) + def validate_database(database=None): try: @@ -78,6 +85,7 @@ def import_tautulli_db(database=None, method=None, backup=False): return False logger.info("Tautulli Database :: Importing Tautulli database '%s' with import method '%s'...", database, method) + set_is_importing(True) db = MonitorDatabase() db.connection.execute('BEGIN IMMEDIATE') @@ -171,6 +179,7 @@ def import_tautulli_db(database=None, method=None, backup=False): db.action('VACUUM') logger.info("Tautulli Database :: Tautulli database import complete.") + set_is_importing(False) def integrity_check(): diff --git a/plexpy/plexivity_import.py b/plexpy/plexivity_import.py index b79f834f..49e1d214 100644 --- a/plexpy/plexivity_import.py +++ b/plexpy/plexivity_import.py @@ -292,6 +292,7 @@ def import_from_plexivity(database_file=None, table_name=None, import_ignore_int return None logger.debug("Tautulli Importer :: Plexivity data import in progress...") + database.set_is_importing(True) ap = activity_processor.ActivityProcessor() user_data = users.Users() @@ -445,9 +446,12 @@ def import_from_plexivity(database_file=None, table_name=None, import_ignore_int else: logger.debug("Tautulli Importer :: Item has bad rating_key: %s" % session_history_metadata['rating_key']) - logger.debug("Tautulli Importer :: Plexivity data import complete.") import_users() + logger.debug("Tautulli Importer :: Plexivity data import complete.") + database.set_is_importing(False) + + def import_users(): logger.debug("Tautulli Importer :: Importing Plexivity Users...") monitor_db = database.MonitorDatabase() diff --git a/plexpy/plexwatch_import.py b/plexpy/plexwatch_import.py index 7b6bc908..a942deb7 100644 --- a/plexpy/plexwatch_import.py +++ b/plexpy/plexwatch_import.py @@ -283,6 +283,7 @@ def import_from_plexwatch(database_file=None, table_name=None, import_ignore_int return None logger.debug("Tautulli Importer :: PlexWatch data import in progress...") + database.set_is_importing(True) ap = activity_processor.ActivityProcessor() user_data = users.Users() @@ -438,9 +439,12 @@ def import_from_plexwatch(database_file=None, table_name=None, import_ignore_int else: logger.debug("Tautulli Importer :: Item has bad rating_key: %s" % session_history_metadata['rating_key']) - logger.debug("Tautulli Importer :: PlexWatch data import complete.") import_users() + logger.debug("Tautulli Importer :: PlexWatch data import complete.") + database.set_is_importing(False) + + def import_users(): logger.debug("Tautulli Importer :: Importing PlexWatch Users...") monitor_db = database.MonitorDatabase() diff --git a/plexpy/webserve.py b/plexpy/webserve.py index c36bcc97..d01af716 100644 --- a/plexpy/webserve.py +++ b/plexpy/webserve.py @@ -1720,7 +1720,11 @@ class WebInterface(object): @cherrypy.expose @requireAuth() def history(self, **kwargs): - return serve_template(templatename="history.html", title="History") + config = { + "database_is_importing": database.IS_IMPORTING, + } + + return serve_template(templatename="history.html", title="History", config=config) @cherrypy.expose @cherrypy.tools.json_out()