Let digest_directory distinguish between new and existing photos.

This commit is contained in:
voussoir 2022-08-13 18:16:04 -07:00
parent ec1197d7ca
commit f420367d55
No known key found for this signature in database
GPG key ID: 5F7554F8C26DACCB

View file

@ -1177,7 +1177,8 @@ class PDBUtilMixin:
new_photo_ratelimit=None, new_photo_ratelimit=None,
recurse=True, recurse=True,
yield_albums=True, yield_albums=True,
yield_photos=True, yield_new_photos=True,
yield_old_photos=True,
): ):
''' '''
Walk the directory and create Photos for every file. Walk the directory and create Photos for every file.
@ -1320,7 +1321,7 @@ class PDBUtilMixin:
otherwise create it and then return it. otherwise create it and then return it.
''' '''
try: try:
photo = self.get_photo_by_path(filepath) photo = (self.get_photo_by_path(filepath), False)
return photo return photo
except exceptions.NoSuchPhoto: except exceptions.NoSuchPhoto:
pass pass
@ -1338,7 +1339,7 @@ class PDBUtilMixin:
if new_photo_ratelimit is not None: if new_photo_ratelimit is not None:
new_photo_ratelimit.limit() new_photo_ratelimit.limit()
return photo return (photo, True)
def create_or_fetch_current_albums(albums_by_path, current_directory): def create_or_fetch_current_albums(albums_by_path, current_directory):
current_albums = albums_by_path.get(current_directory.absolute_path, None) current_albums = albums_by_path.get(current_directory.absolute_path, None)
@ -1405,8 +1406,9 @@ class PDBUtilMixin:
if not photos: if not photos:
continue continue
if yield_photos: for (photo, is_new) in photos:
yield from photos if (is_new and yield_new_photos) or (not is_new and yield_old_photos):
yield photo
if not make_albums: if not make_albums:
continue continue
@ -1415,7 +1417,7 @@ class PDBUtilMixin:
orphan_join_parent_albums(albums_by_path, current_albums, current_directory) orphan_join_parent_albums(albums_by_path, current_albums, current_directory)
for album in current_albums: for album in current_albums:
album.add_photos(photos) album.add_photos(photo for (photo, is_new) in photos)
if yield_albums: if yield_albums:
yield from current_albums yield from current_albums