Add search parameter yield_albums.
The exact details of this feature are still experimental, but I think the concept is sound enough to make it an official parameter.
This commit is contained in:
parent
cc34c4d189
commit
54add8ad61
2 changed files with 11 additions and 5 deletions
|
@ -835,7 +835,7 @@ class Photo(ObjectBase):
|
|||
[self.id]
|
||||
)
|
||||
album_ids = [row[0] for row in album_ids]
|
||||
albums = list(self.photodb.get_albums_by_id(album_ids))
|
||||
albums = set(self.photodb.get_albums_by_id(album_ids))
|
||||
return albums
|
||||
|
||||
def get_tags(self):
|
||||
|
|
|
@ -519,6 +519,8 @@ class PDBPhotoMixin:
|
|||
orderby=None,
|
||||
warning_bag=None,
|
||||
give_back_parameters=False,
|
||||
|
||||
yield_albums=True,
|
||||
):
|
||||
'''
|
||||
PHOTO PROPERTIES
|
||||
|
@ -611,6 +613,10 @@ class PDBPhotoMixin:
|
|||
If True, the generator's first yield will be a dictionary of all the
|
||||
cleaned up, normalized parameters. The user may have given us loads
|
||||
of trash, so we should show them the formatting we want.
|
||||
|
||||
yield_albums:
|
||||
If True, albums which contain photos matching the search will also
|
||||
be returned.
|
||||
'''
|
||||
start_time = time.time()
|
||||
|
||||
|
@ -837,10 +843,10 @@ class PDBPhotoMixin:
|
|||
if limit is not None and photos_received >= limit:
|
||||
break
|
||||
|
||||
for album in photo.get_containing_albums():
|
||||
if album not in seen_albums:
|
||||
seen_albums.add(album)
|
||||
yield album
|
||||
if yield_albums:
|
||||
new_albums = photo.get_containing_albums().difference(seen_albums)
|
||||
yield from new_albums
|
||||
seen_albums.update(new_albums)
|
||||
|
||||
photos_received += 1
|
||||
yield photo
|
||||
|
|
Loading…
Reference in a new issue