Add method purge_deleted_associated_directories.
This commit is contained in:
parent
37bff5c427
commit
750d93673d
1 changed files with 16 additions and 0 deletions
|
@ -120,6 +120,22 @@ class PDBAlbumMixin:
|
||||||
|
|
||||||
return album
|
return album
|
||||||
|
|
||||||
|
@decorators.transaction
|
||||||
|
def purge_deleted_associated_directories(self, albums=None):
|
||||||
|
directories = self.sql_select('SELECT DISTINCT directory FROM album_associated_directories')
|
||||||
|
directories = (pathclass.Path(d[0]) for d in directories)
|
||||||
|
directories = [d.absolute_path for d in directories if not d.exists]
|
||||||
|
if not directories:
|
||||||
|
return
|
||||||
|
self.log.debug('Purging associated directories %s', directories)
|
||||||
|
directories = sqlhelpers.listify(directories)
|
||||||
|
|
||||||
|
query = f'DELETE FROM album_associated_directories WHERE directory in {directories}'
|
||||||
|
if albums is not None:
|
||||||
|
album_ids = sqlhelpers.listify(a.id for a in albums)
|
||||||
|
query += f' AND albumid IN {album_ids}'
|
||||||
|
self.sql_execute(query)
|
||||||
|
|
||||||
@decorators.transaction
|
@decorators.transaction
|
||||||
def purge_empty_albums(self, albums=None):
|
def purge_empty_albums(self, albums=None):
|
||||||
if albums is None:
|
if albums is None:
|
||||||
|
|
Loading…
Reference in a new issue