Merge pull request #20 from jmathai/gh-16-preserve-folder-name
gh-16 Add --album-from-folder parameter to elodie.py and media.set_album_from_folder
This commit is contained in:
		
						commit
						5b050fe485
					
				
							
								
								
									
										12
									
								
								elodie.py
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								elodie.py
									
									
									
									
									
								
							| @ -20,9 +20,9 @@ from elodie.filesystem import FileSystem | |||||||
| from elodie.localstorage import Db | from elodie.localstorage import Db | ||||||
| 
 | 
 | ||||||
| def usage(): | def usage(): | ||||||
|     return """Usage: main.py import --source=<s> --destination=<d> |     return """Usage: elodie.py import --source=<s> --destination=<d> [--album-from-folder] | ||||||
|        main.py import --file=<f> --destination=<d> |        elodie.py import --file=<f> --destination=<d> [--album-from-folder] | ||||||
|        main.py update [--time=<t>] [--location=<l>] [--album=<a>] [--title=<t>] INPUT ... |        elodie.py update [--time=<t>] [--location=<l>] [--album=<a>] [--title=<t>] INPUT ... | ||||||
| 
 | 
 | ||||||
|        -h --help    show this |        -h --help    show this | ||||||
|        """ |        """ | ||||||
| @ -41,6 +41,9 @@ def _import(params): | |||||||
|             if(media.__name__ == 'Video'): |             if(media.__name__ == 'Video'): | ||||||
|                 filesystem.set_date_from_path_video(media) |                 filesystem.set_date_from_path_video(media) | ||||||
| 
 | 
 | ||||||
|  |             if(params['--album-from-folder'] == True): | ||||||
|  |                 media.set_album_from_folder() | ||||||
|  | 
 | ||||||
|             dest_path = filesystem.process_file(current_file, destination, media, allowDuplicate=False, move=False) |             dest_path = filesystem.process_file(current_file, destination, media, allowDuplicate=False, move=False) | ||||||
|             if(dest_path is not None): |             if(dest_path is not None): | ||||||
|                 print '%s -> %s' % (current_file, dest_path) |                 print '%s -> %s' % (current_file, dest_path) | ||||||
| @ -50,6 +53,9 @@ def _import(params): | |||||||
|         if(media.__name__ == 'Video'): |         if(media.__name__ == 'Video'): | ||||||
|             filesystem.set_date_from_path_video(media) |             filesystem.set_date_from_path_video(media) | ||||||
| 
 | 
 | ||||||
|  |         if(params['--album-from-folder'] == True): | ||||||
|  |             media.set_album_from_folder() | ||||||
|  | 
 | ||||||
|         dest_path = filesystem.process_file(current_file, destination, media, allowDuplicate=False, move=False) |         dest_path = filesystem.process_file(current_file, destination, media, allowDuplicate=False, move=False) | ||||||
|         if(dest_path is not None): |         if(dest_path is not None): | ||||||
|             print '%s -> %s' % (current_file, dest_path) |             print '%s -> %s' % (current_file, dest_path) | ||||||
|  | |||||||
| @ -237,11 +237,11 @@ class Media(object): | |||||||
| 
 | 
 | ||||||
|     @returns, dictionary or None for non-photo files |     @returns, dictionary or None for non-photo files | ||||||
|     """ |     """ | ||||||
|     def get_metadata(self): |     def get_metadata(self, update_cache=False): | ||||||
|         if(not self.is_valid()): |         if(not self.is_valid()): | ||||||
|             return None |             return None | ||||||
| 
 | 
 | ||||||
|         if(self.metadata is not None): |         if(self.metadata is not None and update_cache == False): | ||||||
|             return self.metadata |             return self.metadata | ||||||
| 
 | 
 | ||||||
|         source = self.source |         source = self.source | ||||||
| @ -254,7 +254,8 @@ class Media(object): | |||||||
|             'title': self.get_title(), |             'title': self.get_title(), | ||||||
|             'mime_type': self.get_mimetype(), |             'mime_type': self.get_mimetype(), | ||||||
|             'base_name': os.path.splitext(os.path.basename(source))[0], |             'base_name': os.path.splitext(os.path.basename(source))[0], | ||||||
|             'extension': self.get_extension() |             'extension': self.get_extension(), | ||||||
|  |             'directory_path': os.path.dirname(source) | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         return self.metadata |         return self.metadata | ||||||
| @ -322,8 +323,28 @@ class Media(object): | |||||||
|         exiftool_backup_file = '%s%s' % (source, '_original') |         exiftool_backup_file = '%s%s' % (source, '_original') | ||||||
|         if(os.path.isfile(exiftool_backup_file) is True): |         if(os.path.isfile(exiftool_backup_file) is True): | ||||||
|             os.remove(exiftool_backup_file) |             os.remove(exiftool_backup_file) | ||||||
|  | 
 | ||||||
|  |         self.set_metadata(album=name) | ||||||
|         return True |         return True | ||||||
| 
 | 
 | ||||||
|  |     def set_album_from_folder(self): | ||||||
|  |         metadata = self.get_metadata() | ||||||
|  | 
 | ||||||
|  |         print 'huh/' | ||||||
|  | 
 | ||||||
|  |         # If this file has an album already set we do not overwrite EXIF | ||||||
|  |         if(metadata['album'] is not None): | ||||||
|  |             return False | ||||||
|  | 
 | ||||||
|  |         folder = os.path.basename(metadata['directory_path']) | ||||||
|  |         # If folder is empty we skip | ||||||
|  |         if(len(folder) == 0): | ||||||
|  |             return False | ||||||
|  | 
 | ||||||
|  |         self.set_album(folder) | ||||||
|  |         return True | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|     """ |     """ | ||||||
|     Specifically update the basename attribute in the metadata dictionary for this instance. |     Specifically update the basename attribute in the metadata dictionary for this instance. | ||||||
|     This is used for when we update the EXIF title of a media file. |     This is used for when we update the EXIF title of a media file. | ||||||
| @ -336,6 +357,17 @@ class Media(object): | |||||||
|         self.get_metadata() |         self.get_metadata() | ||||||
|         self.metadata['base_name'] = new_basename |         self.metadata['base_name'] = new_basename | ||||||
| 
 | 
 | ||||||
|  |     """ | ||||||
|  |     Method to manually update attributes in metadata. | ||||||
|  | 
 | ||||||
|  |     @params, named paramaters | ||||||
|  |     """ | ||||||
|  |     def set_metadata(self, **kwargs): | ||||||
|  |         metadata = self.get_metadata() | ||||||
|  |         for key in kwargs: | ||||||
|  |             if(key in metadata): | ||||||
|  |                 self.metadata[key] = kwargs[key] | ||||||
|  | 
 | ||||||
|     @classmethod |     @classmethod | ||||||
|     def get_class_by_file(Media, _file, classes): |     def get_class_by_file(Media, _file, classes): | ||||||
|         extension = os.path.splitext(_file)[1][1:].lower() |         extension = os.path.splitext(_file)[1][1:].lower() | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Jaisen Mathai
						Jaisen Mathai