Skip to content

Commit 7007eca

Browse files
author
g.zinovev
committed
Fix: Add thumbnail support for edit_message_media
1 parent b4829e6 commit 7007eca

1 file changed

Lines changed: 15 additions & 19 deletions

File tree

telebot/types.py

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6695,12 +6695,20 @@ class InputMedia(Dictionaryable, JsonSerializable):
66956695
* :class:`InputMediaPhoto`
66966696
* :class:`InputMediaVideo`
66976697
"""
6698-
def __init__(self, type, media, caption=None, parse_mode=None, caption_entities=None):
6698+
def __init__(self, type, media, caption=None, parse_mode=None, caption_entities=None, thumbnail=None):
66996699
self.type: str = type
67006700
self.media: str = media
67016701
self.caption: Optional[str] = caption
67026702
self.parse_mode: Optional[str] = parse_mode
67036703
self.caption_entities: Optional[List[MessageEntity]] = caption_entities
6704+
self.thumbnail: Optional[Union[str, InputFile]] = thumbnail
6705+
6706+
if isinstance(self.thumbnail, InputFile):
6707+
self._thumbnail_name = service_utils.generate_random_token()
6708+
self._thumbnail_dic = 'attach://{0}'.format(self._thumbnail_name)
6709+
else:
6710+
self._thumbnail_name = ''
6711+
self._thumbnail_dic = self.thumbnail
67046712

67056713
if service_utils.is_string(self.media):
67066714
self._media_name = ''
@@ -6713,7 +6721,7 @@ def to_json(self):
67136721
return json.dumps(self.to_dict())
67146722

67156723
def to_dict(self):
6716-
json_dict = {'type': self.type, 'media': self._media_dic}
6724+
json_dict = {'type': self.type, 'media': self._media_dic, 'thumbnail': self._thumbnail_dic}
67176725
if self.caption:
67186726
json_dict['caption'] = self.caption
67196727
if self.parse_mode:
@@ -6729,7 +6737,7 @@ def convert_input_media(self):
67296737
if service_utils.is_string(self.media):
67306738
return self.to_json(), None
67316739

6732-
return self.to_json(), {self._media_name: self.media}
6740+
return self.to_json(), {self._media_name: self.media, self._thumbnail_name: self.thumbnail}
67336741

67346742

67356743
class InputMediaPhoto(InputMedia):
@@ -6850,8 +6858,7 @@ def __init__(self, media: Union[str, InputFile], thumbnail: Optional[Union[str,
68506858
show_caption_above_media: Optional[bool] = None, cover: Optional[Union[str, InputFile]] = None,
68516859
start_timestamp: Optional[int] = None):
68526860
super(InputMediaVideo, self).__init__(
6853-
type="video", media=media, caption=caption, parse_mode=parse_mode, caption_entities=caption_entities)
6854-
self.thumbnail: Optional[Union[str, InputFile]] = thumbnail
6861+
type="video", media=media, caption=caption, parse_mode=parse_mode, caption_entities=caption_entities, thumbnail=thumbnail)
68556862
self.width: Optional[int] = width
68566863
self.height: Optional[int] = height
68576864
self.duration: Optional[int] = duration
@@ -6868,8 +6875,6 @@ def thumb(self) -> Optional[Union[str, Any]]:
68686875

68696876
def to_dict(self):
68706877
ret = super(InputMediaVideo, self).to_dict()
6871-
if self.thumbnail:
6872-
ret['thumbnail'] = self.thumbnail
68736878
if self.width:
68746879
ret['width'] = self.width
68756880
if self.height:
@@ -6943,8 +6948,7 @@ def __init__(self, media: Union[str, InputFile], thumbnail: Optional[Union[str,
69436948
height: Optional[int] = None, duration: Optional[int] = None,
69446949
has_spoiler: Optional[bool] = None, show_caption_above_media: Optional[bool] = None):
69456950
super(InputMediaAnimation, self).__init__(
6946-
type="animation", media=media, caption=caption, parse_mode=parse_mode, caption_entities=caption_entities)
6947-
self.thumbnail: Optional[Union[str, InputFile]] = thumbnail
6951+
type="animation", media=media, caption=caption, parse_mode=parse_mode, caption_entities=caption_entities, thumbnail=thumbnail)
69486952
self.width: Optional[int] = width
69496953
self.height: Optional[int] = height
69506954
self.duration: Optional[int] = duration
@@ -6959,8 +6963,6 @@ def thumb(self) -> Optional[Union[str, Any]]:
69596963

69606964
def to_dict(self):
69616965
ret = super(InputMediaAnimation, self).to_dict()
6962-
if self.thumbnail:
6963-
ret['thumbnail'] = self.thumbnail
69646966
if self.width:
69656967
ret['width'] = self.width
69666968
if self.height:
@@ -7020,8 +7022,7 @@ def __init__(self, media: Union[str, InputFile], thumbnail: Optional[Union[str,
70207022
caption_entities: Optional[List[MessageEntity]] = None, duration: Optional[int] = None,
70217023
performer: Optional[str] = None, title: Optional[str] = None):
70227024
super(InputMediaAudio, self).__init__(
7023-
type="audio", media=media, caption=caption, parse_mode=parse_mode, caption_entities=caption_entities)
7024-
self.thumbnail: Optional[Union[str, InputFile]] = thumbnail
7025+
type="audio", media=media, caption=caption, parse_mode=parse_mode, caption_entities=caption_entities, thumbnail=thumbnail)
70257026
self.duration: Optional[int] = duration
70267027
self.performer: Optional[str] = performer
70277028
self.title: Optional[str] = title
@@ -7033,8 +7034,6 @@ def thumb(self) -> Optional[Union[str, Any]]:
70337034

70347035
def to_dict(self):
70357036
ret = super(InputMediaAudio, self).to_dict()
7036-
if self.thumbnail:
7037-
ret['thumbnail'] = self.thumbnail
70387037
if self.duration:
70397038
ret['duration'] = self.duration
70407039
if self.performer:
@@ -7085,8 +7084,7 @@ def __init__(self, media: Union[str, InputFile], thumbnail: Optional[Union[str,
70857084
caption_entities: Optional[List[MessageEntity]] = None,
70867085
disable_content_type_detection: Optional[bool] = None):
70877086
super(InputMediaDocument, self).__init__(
7088-
type="document", media=media, caption=caption, parse_mode=parse_mode, caption_entities=caption_entities)
7089-
self.thumbnail: Optional[Union[str, InputFile]] = thumbnail
7087+
type="document", media=media, caption=caption, parse_mode=parse_mode, caption_entities=caption_entities, thumbnail=thumbnail)
70907088
self.disable_content_type_detection: Optional[bool] = disable_content_type_detection
70917089

70927090
@property
@@ -7096,8 +7094,6 @@ def thumb(self) -> Optional[Union[str, Any]]:
70967094

70977095
def to_dict(self):
70987096
ret = super(InputMediaDocument, self).to_dict()
7099-
if self.thumbnail:
7100-
ret['thumbnail'] = self.thumbnail
71017097
if self.disable_content_type_detection is not None:
71027098
ret['disable_content_type_detection'] = self.disable_content_type_detection
71037099
return ret

0 commit comments

Comments
 (0)