Fix handling messages with PhotoEmpty. Fixes #494
This commit is contained in:
@@ -208,9 +208,8 @@ class BasePortal(ABC):
|
|||||||
def _get_largest_photo_size(photo: Union[Photo, Document]
|
def _get_largest_photo_size(photo: Union[Photo, Document]
|
||||||
) -> Tuple[Optional[InputPhotoFileLocation],
|
) -> Tuple[Optional[InputPhotoFileLocation],
|
||||||
Optional[TypePhotoSize]]:
|
Optional[TypePhotoSize]]:
|
||||||
if not photo:
|
if not photo or isinstance(photo, PhotoEmpty) or (isinstance(photo, Document)
|
||||||
return None, None
|
and not photo.thumbs):
|
||||||
if isinstance(photo, Document) and not photo.thumbs:
|
|
||||||
return None, None
|
return None, None
|
||||||
|
|
||||||
largest = max(photo.thumbs if isinstance(photo, Document) else photo.sizes,
|
largest = max(photo.thumbs if isinstance(photo, Document) else photo.sizes,
|
||||||
|
|||||||
@@ -74,6 +74,11 @@ class PortalTelegram(BasePortal, ABC):
|
|||||||
async def handle_telegram_photo(self, source: 'AbstractUser', intent: IntentAPI, evt: Message,
|
async def handle_telegram_photo(self, source: 'AbstractUser', intent: IntentAPI, evt: Message,
|
||||||
relates_to: RelatesTo = None) -> Optional[EventID]:
|
relates_to: RelatesTo = None) -> Optional[EventID]:
|
||||||
loc, largest_size = self._get_largest_photo_size(evt.media.photo)
|
loc, largest_size = self._get_largest_photo_size(evt.media.photo)
|
||||||
|
if loc is None:
|
||||||
|
content = TextMessageEventContent(msgtype=MessageType.TEXT,
|
||||||
|
body="Failed to bridge image",
|
||||||
|
external_url=self._get_external_url(evt))
|
||||||
|
return await self._send_message(intent, content, timestamp=evt.date)
|
||||||
file = await util.transfer_file_to_matrix(source.client, intent, loc,
|
file = await util.transfer_file_to_matrix(source.client, intent, loc,
|
||||||
encrypt=self.encrypted)
|
encrypt=self.encrypted)
|
||||||
if not file:
|
if not file:
|
||||||
|
|||||||
Reference in New Issue
Block a user