gh-29 Refactor Media module by moving methods to Photo module
This commit is contained in:
		
							parent
							
								
									300c9c794d
								
							
						
					
					
						commit
						19f40c0b56
					
				| @ -10,20 +10,19 @@ from elodie import constants | |||||||
| from fractions import Fraction | from fractions import Fraction | ||||||
| from sys import argv | from sys import argv | ||||||
| 
 | 
 | ||||||
| import LatLon |  | ||||||
| import mimetypes | import mimetypes | ||||||
| import os | import os | ||||||
| import pyexiv2 | import pyexiv2 | ||||||
| import re | import re | ||||||
| import subprocess | import subprocess | ||||||
| import time | import time | ||||||
| import imghdr |  | ||||||
| 
 | 
 | ||||||
| """ | """ | ||||||
| Media class for general video operations | Media class for general video operations | ||||||
| """ | """ | ||||||
| class Media(object): | class Media(object): | ||||||
|     # class / static variable accessible through get_valid_extensions() |     # class / static variable accessible through get_valid_extensions() | ||||||
|  |     __name__ = 'Media' | ||||||
|     video_extensions = ('avi','m4v','mov','mp4','3gp') |     video_extensions = ('avi','m4v','mov','mp4','3gp') | ||||||
|     photo_extensions = ('jpg', 'jpeg', 'nef', 'dng', 'gif') |     photo_extensions = ('jpg', 'jpeg', 'nef', 'dng', 'gif') | ||||||
| 
 | 
 | ||||||
| @ -83,52 +82,12 @@ class Media(object): | |||||||
|         return self.source |         return self.source | ||||||
| 
 | 
 | ||||||
|     """ |     """ | ||||||
|     Check the file extension against valid file extensions as returned by get_valid_extensions() |     Define is_valid to always return false. | ||||||
|      |     This should be overridden in a child class. | ||||||
|     @returns, boolean |  | ||||||
|     """ |     """ | ||||||
|     def is_valid(self): |     def is_valid(self): | ||||||
|         source = self.source |         return False | ||||||
| 
 | 
 | ||||||
|         # gh-4 This checks if the source file is an image. |  | ||||||
|         # It doesn't validate against the list of supported types. |  | ||||||
|         if(self.__name__ == 'Photo' and imghdr.what(source) is None): |  | ||||||
|             return False; |  | ||||||
| 
 |  | ||||||
|         # we can't use self.__get_extension else we'll endlessly recurse |  | ||||||
|         return os.path.splitext(source)[1][1:].lower() in self.get_valid_extensions() |  | ||||||
| 
 |  | ||||||
|     """ |  | ||||||
|     Get latitude or longitude of photo from EXIF |  | ||||||
| 
 |  | ||||||
|     @returns, float or None if not present in EXIF or a non-photo file |  | ||||||
|     """ |  | ||||||
|     def get_coordinate(self, type='latitude'): |  | ||||||
|         if(not self.is_valid()): |  | ||||||
|             return None |  | ||||||
| 
 |  | ||||||
|         key = self.exif_map['longitude'] if type == 'longitude' else self.exif_map['latitude'] |  | ||||||
|         exif = self.get_exif() |  | ||||||
| 
 |  | ||||||
|         if(key not in exif): |  | ||||||
|             return None |  | ||||||
| 
 |  | ||||||
|         try: |  | ||||||
|             # this is a hack to get the proper direction by negating the values for S and W |  | ||||||
|             latdir = 1 |  | ||||||
|             if(key == self.exif_map['latitude'] and str(exif[self.exif_map['latitude_ref']].value) == 'S'): |  | ||||||
|                 latdir = -1 |  | ||||||
|             londir = 1 |  | ||||||
|             if(key == self.exif_map['longitude'] and str(exif[self.exif_map['longitude_ref']].value) == 'W'): |  | ||||||
|                 londir = -1 |  | ||||||
| 
 |  | ||||||
|             coords = exif[key].value |  | ||||||
|             if(key == 'latitude'): |  | ||||||
|                 return float(str(LatLon.Latitude(degree=coords[0], minute=coords[1], second=coords[2]))) * latdir |  | ||||||
|             else: |  | ||||||
|                 return float(str(LatLon.Longitude(degree=coords[0], minute=coords[1], second=coords[2]))) * londir |  | ||||||
|         except KeyError: |  | ||||||
|             return None |  | ||||||
| 
 | 
 | ||||||
|     """ |     """ | ||||||
|     Get the date which the photo was taken. |     Get the date which the photo was taken. | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Jaisen Mathai
						Jaisen Mathai