fix: optimized rescan procedure.

This commit is contained in:
Terry Geng 2020-06-01 09:36:13 +08:00
parent 8f533cdc2d
commit 67b72af2de
No known key found for this signature in database
GPG Key ID: F982F8EA1DF720E7

View File

@ -112,9 +112,11 @@ class MusicCache(dict):
# 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'])):
if result['path'] not in files:
self.log.debug("library: music file missed: %s, delete from library." % result['path'])
self.db.delete_music(Condition().and_equal('id', result['id']))
else:
files.remove(result['path'])
for file in files:
results = self.db.query_music(Condition().and_equal('path', file))
@ -137,7 +139,10 @@ class CachedItemWrapper:
self.version = 0
def item(self):
return self.lib[self.id]
if self.id in self.lib:
return self.lib[self.id]
else:
raise ValueError(f"Uncached item of id {self.id}.")
def to_dict(self):
dict = self.item().to_dict()