Add delete command.

This commit is contained in:
voussoir 2021-01-28 17:03:19 -08:00
parent e717833d41
commit 60ac8116aa
No known key found for this signature in database
GPG key ID: 5F7554F8C26DACCB

View file

@ -179,6 +179,28 @@ def add_remove_tag_argparse(args, action):
if args.autoyes or interactive.getpermission('Commit?'): if args.autoyes or interactive.getpermission('Commit?'):
photodb.commit() photodb.commit()
def delete_argparse(args):
photodb = find_photodb()
need_commit = False
if args.photo_id_args or args.photo_search_args:
photos = get_photos_from_args(args)
for photo in photos:
photo.delete()
need_commit = True
if args.album_id_args or args.album_search_args:
albums = get_albums_from_args(args)
for album in albums:
album.delete()
need_commit = True
if not need_commit:
return
if args.autoyes or interactive.getpermission('Commit?'):
photodb.commit()
def digest_directory_argparse(args): def digest_directory_argparse(args):
directory = pathclass.Path(args.directory) directory = pathclass.Path(args.directory)
photodb = find_photodb() photodb = find_photodb()
@ -386,6 +408,8 @@ Etiquette CLI
{remove_tag} {remove_tag}
{delete}
{digest} {digest}
{easybake} {easybake}
@ -437,6 +461,18 @@ remove_tag:
> etiquette_cli.py remove_tag watchlist spongebob*.mp4 > etiquette_cli.py remove_tag watchlist spongebob*.mp4
'''.strip(), '''.strip(),
delete='''
delete:
Remove photos or albums from the database.
> etiquette_cli.py delete --photos id id id
> etiquette_cli.py delete --search searchargs
> etiquette_cli.py delete --albums id id id
> etiquette_cli.py delete --album-search searchargs
See search --help for more info about searchargs.
'''.strip(),
digest=''' digest='''
digest: digest:
Digest a directory, adding new files as Photos into the database. Digest a directory, adding new files as Photos into the database.
@ -686,6 +722,10 @@ def main(argv):
p_remove_tag.add_argument('--yes', dest='autoyes', action='store_true') p_remove_tag.add_argument('--yes', dest='autoyes', action='store_true')
p_remove_tag.set_defaults(func=lambda args: add_remove_tag_argparse(args, action='remove')) p_remove_tag.set_defaults(func=lambda args: add_remove_tag_argparse(args, action='remove'))
p_delete = subparsers.add_parser('delete')
p_delete.add_argument('--yes', dest='autoyes', action='store_true')
p_delete.set_defaults(func=delete_argparse)
p_digest = subparsers.add_parser('digest', aliases=['digest_directory', 'digest-directory']) p_digest = subparsers.add_parser('digest', aliases=['digest_directory', 'digest-directory'])
p_digest.add_argument('directory') p_digest.add_argument('directory')
p_digest.add_argument('--no_albums', '--no-albums', dest='make_albums', action='store_false', default=True) p_digest.add_argument('--no_albums', '--no-albums', dest='make_albums', action='store_false', default=True)