Improve the args.any postprocessor results and the way we glob.
This commit is contained in:
parent
a0ed8fcaa0
commit
fcc6073d52
1 changed files with 46 additions and 25 deletions
|
@ -65,16 +65,7 @@ def get_photos_by_glob(pattern):
|
|||
if pattern == '**':
|
||||
return search_in_cwd(yield_photos=True, yield_albums=False)
|
||||
|
||||
cwd = pathclass.cwd()
|
||||
|
||||
(folder, pattern) = os.path.split(pattern)
|
||||
if folder:
|
||||
folder = cwd.join(folder)
|
||||
else:
|
||||
folder = cwd
|
||||
|
||||
files = [f for f in folder.glob(pattern) if f.is_file]
|
||||
for file in files:
|
||||
for file in pathclass.glob_files(pattern):
|
||||
try:
|
||||
photo = photodb.get_photo_by_path(file)
|
||||
yield photo
|
||||
|
@ -89,6 +80,12 @@ def get_photos_from_args(args):
|
|||
load_photodb()
|
||||
photos = []
|
||||
|
||||
if args.globs:
|
||||
photos.extend(get_photos_by_globs(args.globs))
|
||||
|
||||
if args.glob:
|
||||
photos.extend(get_photos_by_glob(args.glob))
|
||||
|
||||
if args.photo_id_args:
|
||||
photos.extend(photodb.get_photos_by_id(args.photo_id_args))
|
||||
|
||||
|
@ -151,19 +148,29 @@ def search_by_argparse(args, yield_albums=False, yield_photos=False):
|
|||
def add_remove_tag_argparse(args, action):
|
||||
load_photodb()
|
||||
|
||||
tag = photodb.get_tag(name=args.tag_name)
|
||||
if args.any_id_args:
|
||||
tag = photodb.get_tag_by_name(args.tag_name)
|
||||
|
||||
if args.any_photo_args:
|
||||
photos = get_photos_from_args(args)
|
||||
elif args.globs:
|
||||
photos = get_photos_by_globs(args.globs)
|
||||
else:
|
||||
photos = search_in_cwd(yield_photos=True, yield_albums=False)
|
||||
|
||||
need_commit = False
|
||||
|
||||
for photo in photos:
|
||||
if action == 'add':
|
||||
photo.add_tag(tag)
|
||||
elif action == 'remove':
|
||||
photo.remove_tag(tag)
|
||||
need_commit = True
|
||||
|
||||
if not need_commit:
|
||||
return 0
|
||||
|
||||
if args.autoyes or interactive.getpermission('Commit?'):
|
||||
photodb.commit()
|
||||
|
||||
return 0
|
||||
|
||||
if args.autoyes or interactive.getpermission('Commit?'):
|
||||
photodb.commit()
|
||||
|
@ -247,7 +254,7 @@ def export_symlinks_argparse(args):
|
|||
|
||||
total_paths = set()
|
||||
|
||||
if args.album_id_args or args.album_search_args:
|
||||
if args.any_album_args:
|
||||
albums = get_albums_from_args(args)
|
||||
export = export_symlinks_albums(
|
||||
albums,
|
||||
|
@ -256,7 +263,7 @@ def export_symlinks_argparse(args):
|
|||
)
|
||||
total_paths.update(export)
|
||||
|
||||
if args.photo_id_args or args.photo_search_args:
|
||||
if args.any_photo_args:
|
||||
photos = get_photos_from_args(args)
|
||||
export = export_symlinks_photos(
|
||||
photos,
|
||||
|
@ -291,7 +298,7 @@ def export_symlinks_argparse(args):
|
|||
def generate_thumbnail_argparse(args):
|
||||
load_photodb()
|
||||
|
||||
if args.photo_id_args or args.photo_search_args:
|
||||
if args.any_photo_args:
|
||||
photos = get_photos_from_args(args)
|
||||
else:
|
||||
photos = search_in_cwd(yield_photos=True, yield_albums=False)
|
||||
|
@ -320,7 +327,7 @@ def init_argparse(args):
|
|||
def purge_deleted_files_argparse(args):
|
||||
load_photodb()
|
||||
|
||||
if args.photo_id_args or args.photo_search_args:
|
||||
if args.any_photo_args:
|
||||
photos = get_photos_from_args(args)
|
||||
else:
|
||||
photos = search_in_cwd(yield_photos=True, yield_albums=False)
|
||||
|
@ -367,7 +374,7 @@ def purge_empty_albums_argparse(args):
|
|||
def reload_metadata_argparse(args):
|
||||
load_photodb()
|
||||
|
||||
if args.photo_id_args or args.photo_search_args:
|
||||
if args.any_photo_args:
|
||||
photos = get_photos_from_args(args)
|
||||
else:
|
||||
photos = search_in_cwd(yield_photos=True, yield_albums=False)
|
||||
|
@ -423,7 +430,7 @@ def search_argparse(args):
|
|||
return 0
|
||||
|
||||
def show_associated_directories_argparse(args):
|
||||
if args.album_id_args or args.album_search_args:
|
||||
if args.any_album_args:
|
||||
albums = get_albums_from_args(args)
|
||||
else:
|
||||
albums = search_in_cwd(yield_photos=False, yield_albums=True)
|
||||
|
@ -447,8 +454,10 @@ def set_unset_searchhidden_argparse(args, searchhidden):
|
|||
if args.album_search_args:
|
||||
args.album_search_args.is_searchhidden = not searchhidden
|
||||
|
||||
if args.any_id_args:
|
||||
photos = get_photos_from_args(args)
|
||||
photos = []
|
||||
if args.any_photo_args:
|
||||
photos.extend(get_photos_from_args(args))
|
||||
if args.any_album_args:
|
||||
albums = get_albums_from_args(args)
|
||||
photos.extend(photo for album in albums for photo in album.walk_photos())
|
||||
else:
|
||||
|
@ -987,6 +996,7 @@ def main(argv):
|
|||
p_purge_empty_albums.set_defaults(func=purge_empty_albums_argparse)
|
||||
|
||||
p_reload_metadata = subparsers.add_parser('reload_metadata', aliases=['reload-metadata'])
|
||||
p_reload_metadata.add_argument('globs', nargs='*')
|
||||
p_reload_metadata.add_argument('--hash_bytes_per_second', '--hash-bytes-per-second', default=None)
|
||||
p_reload_metadata.add_argument('--force', action='store_true')
|
||||
p_reload_metadata.add_argument('--yes', dest='autoyes', action='store_true')
|
||||
|
@ -1054,11 +1064,22 @@ def main(argv):
|
|||
args.album_search_args = p_search.parse_args(album_search_args) if album_search_args else None
|
||||
args.photo_id_args = [id for arg in photo_id_args for id in stringtools.comma_space_split(arg)]
|
||||
args.album_id_args = [id for arg in album_id_args for id in stringtools.comma_space_split(arg)]
|
||||
args.any_id_args = bool(
|
||||
|
||||
if not hasattr(args, 'globs'):
|
||||
args.globs = None
|
||||
|
||||
if not hasattr(args, 'glob'):
|
||||
args.glob = None
|
||||
|
||||
args.any_photo_args = bool(
|
||||
args.photo_search_args or
|
||||
args.album_search_args or
|
||||
args.photo_id_args or
|
||||
args.album_id_args
|
||||
args.globs or
|
||||
args.glob
|
||||
)
|
||||
args.any_album_args = bool(
|
||||
args.album_id_args or
|
||||
args.album_search_args
|
||||
)
|
||||
return args
|
||||
|
||||
|
|
Loading…
Reference in a new issue