Create MediaEntry.exif_display_iter()
authorElrond <elrond+mediagoblin.org@samba-tng.org>
Fri, 23 Mar 2012 19:16:42 +0000 (20:16 +0100)
committerElrond <elrond+mediagoblin.org@samba-tng.org>
Fri, 23 Mar 2012 19:20:54 +0000 (20:20 +0100)
MediaEntry.media_data.exif_all will contain all the
"clean" EXIF data.

MediaEntry.exif_display_iter() is an iterator that fetches
the most interesting entries for display from that data.

mediagoblin/db/mixin.py

index 4f9e1b119bf8ce9f4b55afe03d2b0d5f42a50b13..7d0e0e9a6aa4d5897a8da9820ff071d860e4e565 100644 (file)
@@ -32,6 +32,7 @@ from mediagoblin.auth import lib as auth_lib
 from mediagoblin.tools import common, licenses
 from mediagoblin.tools.text import cleaned_markdown_conversion
 from mediagoblin.tools.url import slugify
+from mediagoblin.tools.exif import USEFUL_TAGS
 
 
 class UserMixin(object):
@@ -123,6 +124,15 @@ class MediaEntryMixin(object):
         """Return license dict for requested license"""
         return licenses.SUPPORTED_LICENSES[self.license or ""]
 
+    def exif_display_iter(self):
+        if not self.media_data:
+            return
+        exif_all = self.media_data.get("exif_all")
+
+        for key in USEFUL_TAGS:
+            if key in exif_all:
+                yield key, exif_all[key]
+
 
 class MediaCommentMixin(object):
     @property