Add breplace.
This commit is contained in:
		
							parent
							
								
									a41c843cb9
								
							
						
					
					
						commit
						0ec072c797
					
				
					 1 changed files with 46 additions and 0 deletions
				
			
		|  | @ -30,6 +30,44 @@ def find_photodb(): | |||
| 
 | ||||
| #################################################################################################### | ||||
| 
 | ||||
| def tag_breplace_argparse(args): | ||||
|     photodb = find_photodb() | ||||
|     renames = [] | ||||
|     tag_names = photodb.get_all_tag_names() | ||||
|     all_names = tag_names.union(photodb.get_all_synonyms()) | ||||
|     for tag_name in tag_names: | ||||
|         if args.regex: | ||||
|             new_name = re.sub(args.replace_from, args.replace_to, tag_name) | ||||
|         else: | ||||
|             new_name = tag_name.replace(args.replace_from, args.replace_to) | ||||
|         new_name = photodb.normalize_tagname(new_name) | ||||
|         if new_name == tag_name: | ||||
|             continue | ||||
| 
 | ||||
|         if new_name in all_names: | ||||
|             raise etiquette.exceptions.TagExists(new_name) | ||||
| 
 | ||||
|         if args.set_synonym: | ||||
|             printline = f'{tag_name} -> {new_name}+{tag_name}' | ||||
|         else: | ||||
|             printline = f'{tag_name} -> {new_name}' | ||||
| 
 | ||||
|         renames.append((tag_name, new_name, printline)) | ||||
| 
 | ||||
|     if not args.autoyes: | ||||
|         for (tag_name, new_name, printline) in renames: | ||||
|             print(printline) | ||||
|         if not getpermission.getpermission('Ok?', must_pick=True): | ||||
|             return | ||||
| 
 | ||||
|     for (tag_name, new_name, printline) in renames: | ||||
|         print(printline) | ||||
|         tag = photodb.get_tag(tag_name) | ||||
|         tag.rename(new_name) | ||||
|         if args.set_synonym: | ||||
|             tag.add_synonym(tag_name) | ||||
|     photodb.commit() | ||||
| 
 | ||||
| def digest_directory_argparse(args): | ||||
|     directory = pathclass.Path(args.directory) | ||||
|     photodb = find_photodb() | ||||
|  | @ -102,6 +140,14 @@ def main(argv): | |||
|             continue | ||||
|         mode.append(arg) | ||||
| 
 | ||||
|     p_tag_breplace = subparsers.add_parser('tag_breplace') | ||||
|     p_tag_breplace.add_argument('replace_from') | ||||
|     p_tag_breplace.add_argument('replace_to') | ||||
|     p_tag_breplace.add_argument('--set_synonym', '--set-synonym', dest='set_synonym', action='store_true') | ||||
|     p_tag_breplace.add_argument('--regex', dest='regex', action='store_true') | ||||
|     p_tag_breplace.add_argument('--yes', dest='autoyes', action='store_true') | ||||
|     p_tag_breplace.set_defaults(func=tag_breplace_argparse) | ||||
| 
 | ||||
|     p_digest = subparsers.add_parser('digest', aliases=['digest_directory', 'digest-directory']) | ||||
|     p_digest.add_argument('directory') | ||||
|     p_digest.add_argument('--no_albums', '--no-albums', dest='make_albums', action='store_false', default=True) | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue