Add get_all_media() in MediaEntryMixin
authorvijeth-aradhya <vijthaaa@gmail.com>
Sun, 16 Jul 2017 15:13:08 +0000 (20:43 +0530)
committervijeth-aradhya <vijthaaa@gmail.com>
Sun, 16 Jul 2017 15:13:08 +0000 (20:43 +0530)
Returns all available qualties of a media with it's dimensions and
resolution label.

mediagoblin/db/mixin.py

index e8b121d071a124fe0d7ec0a8c40224bd0a6c54b6..b47dc0e75fdd8e46830e82ef3557073e7e05b52b 100644 (file)
@@ -249,6 +249,33 @@ class MediaEntryMixin(GenerateSlugMixin, GeneratePublicIDMixin):
             if media_size in media_sizes:
                 return media_size, self.media_files[media_size]
 
+    def get_all_media(self):
+        """
+        Returns all available qualties of a media
+        """
+        fetch_order = self.media_manager.media_fetch_order
+
+        # No fetching order found?  well, give up!
+        if not fetch_order:
+            return None
+
+        media_sizes = self.media_files.keys()
+
+        all_media_path = []
+
+        for media_size in fetch_order:
+            if media_size in media_sizes:
+                file_metadata = self.get_file_metadata(media_size)
+                size = file_metadata['medium_size']
+                if media_size != 'webm':
+                    all_media_path.append((media_size[5:], size,
+                                           self.media_files[media_size]))
+                else:
+                    sall_media_path.append(('default', size,
+                                           self.media_files[media_size]))
+        return all_media_path
+
     def main_mediafile(self):
         pass