From d0c5cf5864750f57c9b183ace9ca164922e67044 Mon Sep 17 00:00:00 2001 From: angelblue05 Date: Mon, 14 Jan 2019 04:51:14 -0600 Subject: [PATCH] Fix database discovery --- resources/lib/database/__init__.py | 6 +++++- resources/lib/library.py | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/resources/lib/database/__init__.py b/resources/lib/database/__init__.py index d4ae3189..1eedad8e 100644 --- a/resources/lib/database/__init__.py +++ b/resources/lib/database/__init__.py @@ -32,6 +32,7 @@ class Database(object): ''' timeout = 120 discovered = False + discovered_file = None def __init__(self, file=None, commit_close=True): @@ -110,6 +111,7 @@ class Database(object): modified['file'] = file.decode('utf-8') LOG.info("Discovered database: %s", modified) + self.discovered_file = modified['file'] return xbmc.translatePath("special://database/%s" % modified['file']).decode('utf-8') @@ -129,13 +131,14 @@ class Database(object): try: loaded = self._get_database(databases[file]) if file in databases else file except Exception as error: - LOG.error(error) for i in range(1, 10): alt_file = "%s-%s" % (file, i) try: loaded = self._get_database(databases[alt_file]) + + break except KeyError: # No other db options loaded = None @@ -144,6 +147,7 @@ class Database(object): pass if discovered and discovered != loaded: + databases[file] = discovered self.discovered = True else: diff --git a/resources/lib/library.py b/resources/lib/library.py index 62d19cd2..8dbb4a87 100644 --- a/resources/lib/library.py +++ b/resources/lib/library.py @@ -124,10 +124,10 @@ class Library(threading.Thread): with Database('music') as musicdb: if kodidb.discovered or musicdb.discovered: - if kodidb.path != settings('DiscoveredDatabase'): + if kodidb.discovered_file != settings('DiscoveredDatabase'): LOG.info("Newly discovered database: %s", kodidb.path) - settings('DiscoveredDatabase', kodidb.path) + settings('DiscoveredDatabase', kodidb.discovered_file) self.monitor.settings['enable_db_discovery'] = True settings('AskDiscoverDatabase.bool', True)