Use a global photodb so we can call two functions more safely.
Opening two separate connections by accident is no good.
This commit is contained in:
		
							parent
							
								
									e982858c28
								
							
						
					
					
						commit
						a0ed8fcaa0
					
				
					 1 changed files with 23 additions and 16 deletions
				
			
		|  | @ -13,6 +13,13 @@ from voussoirkit import vlogging | |||
| 
 | ||||
| import etiquette | ||||
| 
 | ||||
| photodb = None | ||||
| def load_photodb(): | ||||
|     global photodb | ||||
|     if photodb is not None: | ||||
|         return | ||||
|     photodb = etiquette.photodb.PhotoDB.closest_photodb() | ||||
| 
 | ||||
| # HELPERS ########################################################################################## | ||||
| 
 | ||||
| def export_symlinks_albums(albums, destination, dry_run): | ||||
|  | @ -52,7 +59,7 @@ def export_symlinks_photos(photos, destination, dry_run): | |||
|         yield symlink_path | ||||
| 
 | ||||
| def get_photos_by_glob(pattern): | ||||
|     photodb = etiquette.photodb.PhotoDB.closest_photodb() | ||||
|     load_photodb() | ||||
|     pattern = pathclass.normalize_sep(pattern) | ||||
| 
 | ||||
|     if pattern == '**': | ||||
|  | @ -79,7 +86,7 @@ def get_photos_by_globs(patterns): | |||
|         yield from get_photos_by_glob(pattern) | ||||
| 
 | ||||
| def get_photos_from_args(args): | ||||
|     photodb = etiquette.photodb.PhotoDB.closest_photodb() | ||||
|     load_photodb() | ||||
|     photos = [] | ||||
| 
 | ||||
|     if args.photo_id_args: | ||||
|  | @ -91,7 +98,7 @@ def get_photos_from_args(args): | |||
|     return photos | ||||
| 
 | ||||
| def get_albums_from_args(args): | ||||
|     photodb = etiquette.photodb.PhotoDB.closest_photodb() | ||||
|     load_photodb() | ||||
|     albums = [] | ||||
| 
 | ||||
|     if args.album_id_args: | ||||
|  | @ -103,7 +110,7 @@ def get_albums_from_args(args): | |||
|     return albums | ||||
| 
 | ||||
| def search_in_cwd(**kwargs): | ||||
|     photodb = etiquette.photodb.PhotoDB.closest_photodb() | ||||
|     load_photodb() | ||||
|     cwd = pathclass.cwd() | ||||
|     return photodb.search( | ||||
|         within_directory=cwd, | ||||
|  | @ -142,7 +149,7 @@ def search_by_argparse(args, yield_albums=False, yield_photos=False): | |||
| # ARGPARSE ######################################################################################### | ||||
| 
 | ||||
| def add_remove_tag_argparse(args, action): | ||||
|     photodb = etiquette.photodb.PhotoDB.closest_photodb() | ||||
|     load_photodb() | ||||
| 
 | ||||
|     tag = photodb.get_tag(name=args.tag_name) | ||||
|     if args.any_id_args: | ||||
|  | @ -164,7 +171,7 @@ def add_remove_tag_argparse(args, action): | |||
|     return 0 | ||||
| 
 | ||||
| def delete_argparse(args): | ||||
|     photodb = etiquette.photodb.PhotoDB.closest_photodb() | ||||
|     load_photodb() | ||||
| 
 | ||||
|     need_commit = False | ||||
|     if args.photo_id_args or args.photo_search_args: | ||||
|  | @ -193,7 +200,7 @@ def digest_directory_argparse(args): | |||
|     for directory in directories: | ||||
|         directory.assert_is_directory() | ||||
| 
 | ||||
|     photodb = etiquette.photodb.PhotoDB.closest_photodb() | ||||
|     load_photodb() | ||||
|     need_commit = False | ||||
| 
 | ||||
|     for directory in directories: | ||||
|  | @ -223,7 +230,7 @@ def digest_directory_argparse(args): | |||
|     return 0 | ||||
| 
 | ||||
| def easybake_argparse(args): | ||||
|     photodb = etiquette.photodb.PhotoDB.closest_photodb() | ||||
|     load_photodb() | ||||
|     for eb_string in args.eb_strings: | ||||
|         notes = photodb.easybake(eb_string) | ||||
|         for (action, tagname) in notes: | ||||
|  | @ -282,7 +289,7 @@ def export_symlinks_argparse(args): | |||
|     return 0 | ||||
| 
 | ||||
| def generate_thumbnail_argparse(args): | ||||
|     photodb = etiquette.photodb.PhotoDB.closest_photodb() | ||||
|     load_photodb() | ||||
| 
 | ||||
|     if args.photo_id_args or args.photo_search_args: | ||||
|         photos = get_photos_from_args(args) | ||||
|  | @ -311,7 +318,7 @@ def init_argparse(args): | |||
|     return 0 | ||||
| 
 | ||||
| def purge_deleted_files_argparse(args): | ||||
|     photodb = etiquette.photodb.PhotoDB.closest_photodb() | ||||
|     load_photodb() | ||||
| 
 | ||||
|     if args.photo_id_args or args.photo_search_args: | ||||
|         photos = get_photos_from_args(args) | ||||
|  | @ -333,7 +340,7 @@ def purge_deleted_files_argparse(args): | |||
|     return 0 | ||||
| 
 | ||||
| def purge_empty_albums_argparse(args): | ||||
|     photodb = etiquette.photodb.PhotoDB.closest_photodb() | ||||
|     load_photodb() | ||||
| 
 | ||||
|     # We do not check args.album_search_args because currently it is not | ||||
|     # possible for search results to find empty albums on account of the fact | ||||
|  | @ -358,7 +365,7 @@ def purge_empty_albums_argparse(args): | |||
|     return 0 | ||||
| 
 | ||||
| def reload_metadata_argparse(args): | ||||
|     photodb = etiquette.photodb.PhotoDB.closest_photodb() | ||||
|     load_photodb() | ||||
| 
 | ||||
|     if args.photo_id_args or args.photo_search_args: | ||||
|         photos = get_photos_from_args(args) | ||||
|  | @ -398,7 +405,7 @@ def reload_metadata_argparse(args): | |||
|     return 0 | ||||
| 
 | ||||
| def relocate_argparse(args): | ||||
|     photodb = etiquette.photodb.PhotoDB.closest_photodb() | ||||
|     load_photodb() | ||||
| 
 | ||||
|     photo = photodb.get_photo(args.photo_id) | ||||
|     photo.relocate(args.filepath) | ||||
|  | @ -432,7 +439,7 @@ def show_associated_directories_argparse(args): | |||
|     return 0 | ||||
| 
 | ||||
| def set_unset_searchhidden_argparse(args, searchhidden): | ||||
|     photodb = etiquette.photodb.PhotoDB.closest_photodb() | ||||
|     load_photodb() | ||||
| 
 | ||||
|     if args.photo_search_args: | ||||
|         args.photo_search_args.is_searchhidden = not searchhidden | ||||
|  | @ -457,7 +464,7 @@ def set_unset_searchhidden_argparse(args, searchhidden): | |||
|     return 0 | ||||
| 
 | ||||
| def tag_breplace_argparse(args): | ||||
|     photodb = etiquette.photodb.PhotoDB.closest_photodb() | ||||
|     load_photodb() | ||||
|     renames = [] | ||||
|     tag_names = photodb.get_all_tag_names() | ||||
|     all_names = tag_names.union(photodb.get_all_synonyms()) | ||||
|  | @ -499,7 +506,7 @@ def tag_breplace_argparse(args): | |||
|     return 0 | ||||
| 
 | ||||
| def tag_list_argparse(args): | ||||
|     photodb = etiquette.photodb.PhotoDB.closest_photodb() | ||||
|     load_photodb() | ||||
|     tags = photodb.get_all_tag_names() | ||||
|     synonyms = photodb.get_all_synonyms() | ||||
|     keys = sorted(tags.union(synonyms.keys())) | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue