diff options
Diffstat (limited to 'mediagoblin/db/mixin.py')
-rw-r--r-- | mediagoblin/db/mixin.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/mediagoblin/db/mixin.py b/mediagoblin/db/mixin.py index a0eeff61..8fb9940c 100644 --- a/mediagoblin/db/mixin.py +++ b/mediagoblin/db/mixin.py @@ -237,6 +237,33 @@ class MediaEntryMixin(GenerateSlugMixin): label = re.sub('(.)([A-Z][a-z]+)', r'\1 \2', key) yield label.replace('EXIF', '').replace('Image', ''), exif_all[key] + def exif_display_data_short(self): + """Display a very short practical version of exif info""" + import time, datetime + if not self.media_data: + return + exif_all = self.media_data.get("exif_all") + # format date taken + takendate = datetime.datetime.strptime( + exif_all['Image DateTimeOriginal']['printable'], + '%Y:%m:%d %H:%M:%S').date() + taken = takendate.strftime('%B %d %Y') + fnum = str(exif_all['EXIF FNumber']['printable']).split('/') + # calculate aperture + if len(fnum) == 2: + aperture = "f/%.1f" % (float(fnum[0])/float(fnum[1])) + elif fnum[0] != 'None': + aperture = "f/%s" % (fnum[0]) + else: + aperture = None + return { + "Camera" : exif_all['Image Model']['printable'], + "Exposure" : '%s sec' % exif_all['EXIF ExposureTime']['printable'], + "Aperture" : aperture, + "ISO" : exif_all['EXIF ISOSpeedRatings']['printable'], + "Focal Length" : '%s mm' % exif_all['EXIF FocalLength']['printable'], + "Date Taken" : taken, + } class MediaCommentMixin(object): @property |