# HG changeset patch # User Goffi # Date 1596382807 -7200 # Node ID 9e1ba1e1179fbdc96b81b01d22a604189e9d324f # Parent 7ebda4b54170c4db0533a85374ec148f1d9c40dc plugin identity: added "filename" metadata for avatar diff -r 7ebda4b54170 -r 9e1ba1e1179f sat/plugins/plugin_misc_identity.py --- a/sat/plugins/plugin_misc_identity.py Sat Aug 01 16:25:50 2020 +0200 +++ b/sat/plugins/plugin_misc_identity.py Sun Aug 02 17:40:07 2020 +0200 @@ -145,6 +145,9 @@ cache_uid = value['cache_uid'] if not cache_uid: raise ValueError + filename = value['filename'] + if not filename: + raise ValueError except (ValueError, KeyError): log.warning( f"invalid data for {entity} avatar, it will be deleted: " @@ -464,6 +467,7 @@ raise ValueError(f"There is no file at {file_path} to use as avatar") avatar_data = { 'path': file_path, + 'filename': file_path.name, 'media_type': image.guess_type(file_path), } media_type = avatar_data['media_type'] @@ -499,6 +503,7 @@ return { "path": path, + "filename": path.name, "media_type": media_type, "cache_uid": cache_uid, } @@ -509,7 +514,7 @@ async def avatarUpdateDataFilter(self, client, entity, data): if not isinstance(data, dict): raise ValueError(f"Invalid data type ({type(data)}), a dict is expected") - mandatory_keys = {'path', 'cache_uid'} + mandatory_keys = {'path', 'filename', 'cache_uid'} if not data.keys() >= mandatory_keys: raise ValueError(f"missing avatar data keys: {mandatory_keys - data.keys()}") return data diff -r 7ebda4b54170 -r 9e1ba1e1179f sat/plugins/plugin_xep_0054.py --- a/sat/plugins/plugin_xep_0054.py Sat Aug 01 16:25:50 2020 +0200 +++ b/sat/plugins/plugin_xep_0054.py Sun Aug 02 17:40:07 2020 +0200 @@ -211,6 +211,7 @@ "avatar", { 'path': avatar_cache['path'], + 'filename': avatar_cache['filename'], 'media_type': avatar_cache['mime_type'], 'cache_uid': avatar_hash }, @@ -364,6 +365,7 @@ ) as f: f.write(img_buf.read()) avatar_data['path'] = Path(f.name) + avatar_data['filename'] = avatar_data['path'].name avatar_data['cache_uid'] = image_hash return image_hash @@ -512,6 +514,7 @@ IMPORT_NAME, "avatar", { 'path': avatar_cache['path'], + 'filename': avatar_cache['filename'], 'media_type': avatar_cache['mime_type'], 'cache_uid': new_hash, },