diff sat/plugins/plugin_xep_0264.py @ 3329:15612c0fb421

plugin XEP-0264: updated size to get values closest to standard one: - sizes used for thumbnails are now matching common resolutions. - added BIG and FULL_SCREEN sizes - sort thumbnails by sizes when parsing them.
author Goffi <goffi@goffi.org>
date Thu, 13 Aug 2020 23:45:59 +0200
parents 5887fb414758
children 7b47f48d31f3
line wrap: on
line diff
--- a/sat/plugins/plugin_xep_0264.py	Mon Aug 03 08:45:49 2020 +0200
+++ b/sat/plugins/plugin_xep_0264.py	Thu Aug 13 23:45:59 2020 +0200
@@ -70,8 +70,11 @@
 
 
 class XEP_0264(object):
-    SIZE_SMALL = (250, 250)
-    SIZE_MEDIUM = (1024, 1024)
+    SIZE_SMALL = (320, 320)
+    SIZE_MEDIUM = (640, 640)
+    SIZE_BIG = (1280, 1280)
+    SIZE_FULL_SCREEN = (2560, 2560)
+    SIZES = (SIZE_SMALL, SIZE_MEDIUM, SIZE_FULL_SCREEN)
 
     def __init__(self, host):
         log.info(_("Plugin XEP_0264 initialization"))
@@ -108,7 +111,7 @@
             height = thumbnail_elt.getAttribute("height")
             if width and height:
                 try:
-                    thumbnail["size"] = int(width), int(height)
+                    thumbnail["size"] = (int(width), int(height))
                 except ValueError:
                     pass
             try:
@@ -118,6 +121,8 @@
             thumbnails.append(thumbnail)
 
         if thumbnails:
+            # we want thumbnails ordered from smallest to biggest
+            thumbnails.sort(key=lambda t: t.get('size', (0, 0)))
             file_data.setdefault("extra", {})[C.KEY_THUMBNAILS] = thumbnails
         return True