From 8f533cdc2dd462876dd264e817833e923134d50e Mon Sep 17 00:00:00 2001 From: Terry Geng Date: Sun, 31 May 2020 21:20:52 +0800 Subject: [PATCH] fix: file scanning not working when startup, fix #163 --- media/cache.py | 8 ++++++++ mumbleBot.py | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/media/cache.py b/media/cache.py index 518dd5b..af0b383 100644 --- a/media/cache.py +++ b/media/cache.py @@ -108,6 +108,14 @@ class MusicCache(dict): self.dir_lock.acquire() self.log.info("library: rebuild directory cache") files = util.get_recursive_file_list_sorted(var.music_folder) + + # remove deleted files + results = self.db.query_music(Condition().or_equal('type', 'file')) + for result in results: + if not os.path.exists(os.path.join(var.music_folder, result['path'])): + self.log.debug("library: music file missed: %s, delete from library." % result['path']) + self.db.delete_music(Condition().and_equal('id', result['id'])) + for file in files: results = self.db.query_music(Condition().and_equal('path', file)) if not results: diff --git a/mumbleBot.py b/mumbleBot.py index b3da2df..699d1f1 100644 --- a/mumbleBot.py +++ b/mumbleBot.py @@ -50,8 +50,6 @@ class MumbleBot: self.channel = var.config.get("server", "channel", fallback=None) var.user = args.user - var.music_folder = util.solve_filepath(var.config.get('bot', 'music_folder')) - var.tmp_folder = util.solve_filepath(var.config.get('bot', 'tmp_folder')) var.is_proxified = var.config.getboolean( "webinterface", "is_web_proxified") self.exit = False @@ -768,6 +766,8 @@ if __name__ == '__main__': DatabaseMigration(var.db, var.music_db).migrate() + var.music_folder = util.solve_filepath(var.config.get('bot', 'music_folder')) + var.tmp_folder = util.solve_filepath(var.config.get('bot', 'tmp_folder')) var.cache = MusicCache(var.music_db) if var.config.get("bot", "refresh_cache_on_startup", fallback=True):