aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/db/mixin.py
diff options
context:
space:
mode:
Diffstat (limited to 'mediagoblin/db/mixin.py')
-rw-r--r--mediagoblin/db/mixin.py27
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