diff options
author | Gabriel Saldana <gabriel@gabrielsaldana.org> | 2013-03-05 00:05:35 -0600 |
---|---|---|
committer | Joar Wandborg <joar@wandborg.se> | 2013-05-20 00:06:14 +0200 |
commit | 420e1374d8269be0a9108cddeebb2d8791915385 (patch) | |
tree | f4c35f99600246787c2653ba2750e9e48e6f9f86 /mediagoblin/db/mixin.py | |
parent | b3566e1dc768c883e7ac41ba00b0f93f17e55bc0 (diff) | |
download | mediagoblin-420e1374d8269be0a9108cddeebb2d8791915385.tar.lz mediagoblin-420e1374d8269be0a9108cddeebb2d8791915385.tar.xz mediagoblin-420e1374d8269be0a9108cddeebb2d8791915385.zip |
Modifies EXIF section with Camera Info, display toggle and template styling
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 |