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):