From 7e404b9f9803a04bd61db2d5de5512f5bc7ca513 Mon Sep 17 00:00:00 2001 From: Goffi Date: Thu, 13 Aug 2020 23:45:59 +0200 Subject: [PATCH] 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. --- sat/plugins/plugin_comp_file_sharing.py | 2 +- sat/plugins/plugin_comp_file_sharing_management.py | 2 +- sat/plugins/plugin_xep_0264.py | 11 ++++++++--- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/sat/plugins/plugin_comp_file_sharing.py b/sat/plugins/plugin_comp_file_sharing.py index e9b7abf0..fa62c8dc 100644 --- a/sat/plugins/plugin_comp_file_sharing.py +++ b/sat/plugins/plugin_comp_file_sharing.py @@ -434,7 +434,7 @@ class FileSharing: if mime_type is not None and mime_type.startswith("image"): thumbnails = extra.setdefault(C.KEY_THUMBNAILS, []) - for max_thumb_size in (self._t.SIZE_SMALL, self._t.SIZE_MEDIUM): + for max_thumb_size in self._t.SIZES: try: thumb_size, thumb_id = await self._t.generateThumbnail( final_path, diff --git a/sat/plugins/plugin_comp_file_sharing_management.py b/sat/plugins/plugin_comp_file_sharing_management.py index 5c0e3562..2c11a751 100644 --- a/sat/plugins/plugin_comp_file_sharing_management.py +++ b/sat/plugins/plugin_comp_file_sharing_management.py @@ -404,7 +404,7 @@ class FileSharingManagement(object): if media_type == 'image': thumbnails = [] - for max_thumb_size in (self._t.SIZE_SMALL, self._t.SIZE_MEDIUM): + for max_thumb_size in self._t.SIZES: try: thumb_size, thumb_id = yield self._t.generateThumbnail( file_path, diff --git a/sat/plugins/plugin_xep_0264.py b/sat/plugins/plugin_xep_0264.py index 512ed6a7..2f4ad8e0 100644 --- a/sat/plugins/plugin_xep_0264.py +++ b/sat/plugins/plugin_xep_0264.py @@ -70,8 +70,11 @@ PLUGIN_INFO = { 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 @@ class XEP_0264(object): 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 @@ class XEP_0264(object): 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