Skip to content

Commit 57f9e80

Browse files
authored
Merge pull request #2471 from skyblade-x/thumbnail-support-fix
Fix: Add thumbnail support for edit_message_media
2 parents b2da52a + ded461f commit 57f9e80

File tree

1 file changed

+23
-18
lines changed

1 file changed

+23
-18
lines changed

telebot/types.py

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6740,12 +6740,23 @@ class InputMedia(Dictionaryable, JsonSerializable):
67406740
* :class:`InputMediaPhoto`
67416741
* :class:`InputMediaVideo`
67426742
"""
6743-
def __init__(self, type, media, caption=None, parse_mode=None, caption_entities=None):
6743+
def __init__(self, type, media, caption=None, parse_mode=None, caption_entities=None, thumbnail=None):
67446744
self.type: str = type
67456745
self.media: str = media
67466746
self.caption: Optional[str] = caption
67476747
self.parse_mode: Optional[str] = parse_mode
67486748
self.caption_entities: Optional[List[MessageEntity]] = caption_entities
6749+
self.thumbnail: Optional[Union[str, InputFile]] = thumbnail
6750+
6751+
if thumbnail is None:
6752+
self._thumbnail_name = ''
6753+
self._thumbnail_dic = None
6754+
elif service_utils.is_string(self.thumbnail):
6755+
self._thumbnail_name = ''
6756+
self._thumbnail_dic = self.thumbnail
6757+
else:
6758+
self._thumbnail_name = service_utils.generate_random_token()
6759+
self._thumbnail_dic = 'attach://{0}'.format(self._thumbnail_name)
67496760

67506761
if service_utils.is_string(self.media):
67516762
self._media_name = ''
@@ -6759,6 +6770,8 @@ def to_json(self):
67596770

67606771
def to_dict(self):
67616772
json_dict = {'type': self.type, 'media': self._media_dic}
6773+
if self._thumbnail_dic:
6774+
json_dict['thumbnail'] = self._thumbnail_dic
67626775
if self.caption:
67636776
json_dict['caption'] = self.caption
67646777
if self.parse_mode:
@@ -6773,8 +6786,12 @@ def convert_input_media(self):
67736786
"""
67746787
if service_utils.is_string(self.media):
67756788
return self.to_json(), None
6789+
6790+
media_dict = {self._media_name: self.media}
6791+
if self._thumbnail_name:
6792+
media_dict[self._thumbnail_name] = self.thumbnail
67766793

6777-
return self.to_json(), {self._media_name: self.media}
6794+
return self.to_json(), media_dict
67786795

67796796

67806797
class InputMediaPhoto(InputMedia):
@@ -6895,8 +6912,7 @@ def __init__(self, media: Union[str, InputFile], thumbnail: Optional[Union[str,
68956912
show_caption_above_media: Optional[bool] = None, cover: Optional[Union[str, InputFile]] = None,
68966913
start_timestamp: Optional[int] = None):
68976914
super(InputMediaVideo, self).__init__(
6898-
type="video", media=media, caption=caption, parse_mode=parse_mode, caption_entities=caption_entities)
6899-
self.thumbnail: Optional[Union[str, InputFile]] = thumbnail
6915+
type="video", media=media, caption=caption, parse_mode=parse_mode, caption_entities=caption_entities, thumbnail=thumbnail)
69006916
self.width: Optional[int] = width
69016917
self.height: Optional[int] = height
69026918
self.duration: Optional[int] = duration
@@ -6913,8 +6929,6 @@ def thumb(self) -> Optional[Union[str, Any]]:
69136929

69146930
def to_dict(self):
69156931
ret = super(InputMediaVideo, self).to_dict()
6916-
if self.thumbnail:
6917-
ret['thumbnail'] = self.thumbnail
69186932
if self.width:
69196933
ret['width'] = self.width
69206934
if self.height:
@@ -6988,8 +7002,7 @@ def __init__(self, media: Union[str, InputFile], thumbnail: Optional[Union[str,
69887002
height: Optional[int] = None, duration: Optional[int] = None,
69897003
has_spoiler: Optional[bool] = None, show_caption_above_media: Optional[bool] = None):
69907004
super(InputMediaAnimation, self).__init__(
6991-
type="animation", media=media, caption=caption, parse_mode=parse_mode, caption_entities=caption_entities)
6992-
self.thumbnail: Optional[Union[str, InputFile]] = thumbnail
7005+
type="animation", media=media, caption=caption, parse_mode=parse_mode, caption_entities=caption_entities, thumbnail=thumbnail)
69937006
self.width: Optional[int] = width
69947007
self.height: Optional[int] = height
69957008
self.duration: Optional[int] = duration
@@ -7004,8 +7017,6 @@ def thumb(self) -> Optional[Union[str, Any]]:
70047017

70057018
def to_dict(self):
70067019
ret = super(InputMediaAnimation, self).to_dict()
7007-
if self.thumbnail:
7008-
ret['thumbnail'] = self.thumbnail
70097020
if self.width:
70107021
ret['width'] = self.width
70117022
if self.height:
@@ -7065,8 +7076,7 @@ def __init__(self, media: Union[str, InputFile], thumbnail: Optional[Union[str,
70657076
caption_entities: Optional[List[MessageEntity]] = None, duration: Optional[int] = None,
70667077
performer: Optional[str] = None, title: Optional[str] = None):
70677078
super(InputMediaAudio, self).__init__(
7068-
type="audio", media=media, caption=caption, parse_mode=parse_mode, caption_entities=caption_entities)
7069-
self.thumbnail: Optional[Union[str, InputFile]] = thumbnail
7079+
type="audio", media=media, caption=caption, parse_mode=parse_mode, caption_entities=caption_entities, thumbnail=thumbnail)
70707080
self.duration: Optional[int] = duration
70717081
self.performer: Optional[str] = performer
70727082
self.title: Optional[str] = title
@@ -7078,8 +7088,6 @@ def thumb(self) -> Optional[Union[str, Any]]:
70787088

70797089
def to_dict(self):
70807090
ret = super(InputMediaAudio, self).to_dict()
7081-
if self.thumbnail:
7082-
ret['thumbnail'] = self.thumbnail
70837091
if self.duration:
70847092
ret['duration'] = self.duration
70857093
if self.performer:
@@ -7130,8 +7138,7 @@ def __init__(self, media: Union[str, InputFile], thumbnail: Optional[Union[str,
71307138
caption_entities: Optional[List[MessageEntity]] = None,
71317139
disable_content_type_detection: Optional[bool] = None):
71327140
super(InputMediaDocument, self).__init__(
7133-
type="document", media=media, caption=caption, parse_mode=parse_mode, caption_entities=caption_entities)
7134-
self.thumbnail: Optional[Union[str, InputFile]] = thumbnail
7141+
type="document", media=media, caption=caption, parse_mode=parse_mode, caption_entities=caption_entities, thumbnail=thumbnail)
71357142
self.disable_content_type_detection: Optional[bool] = disable_content_type_detection
71367143

71377144
@property
@@ -7141,8 +7148,6 @@ def thumb(self) -> Optional[Union[str, Any]]:
71417148

71427149
def to_dict(self):
71437150
ret = super(InputMediaDocument, self).to_dict()
7144-
if self.thumbnail:
7145-
ret['thumbnail'] = self.thumbnail
71467151
if self.disable_content_type_detection is not None:
71477152
ret['disable_content_type_detection'] = self.disable_content_type_detection
71487153
return ret

0 commit comments

Comments
 (0)