Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 23 additions & 18 deletions telebot/types.py
Original file line number Diff line number Diff line change
Expand Up @@ -6695,12 +6695,23 @@ class InputMedia(Dictionaryable, JsonSerializable):
* :class:`InputMediaPhoto`
* :class:`InputMediaVideo`
"""
def __init__(self, type, media, caption=None, parse_mode=None, caption_entities=None):
def __init__(self, type, media, caption=None, parse_mode=None, caption_entities=None, thumbnail=None):
self.type: str = type
self.media: str = media
self.caption: Optional[str] = caption
self.parse_mode: Optional[str] = parse_mode
self.caption_entities: Optional[List[MessageEntity]] = caption_entities
self.thumbnail: Optional[Union[str, InputFile]] = thumbnail

if thumbnail is None:
self._thumbnail_name = ''
self._thumbnail_dic = None
elif service_utils.is_string(self.thumbnail):
self._thumbnail_name = ''
self._thumbnail_dic = self.thumbnail
else:
self._thumbnail_name = service_utils.generate_random_token()
self._thumbnail_dic = 'attach://{0}'.format(self._thumbnail_name)

if service_utils.is_string(self.media):
self._media_name = ''
Expand All @@ -6714,6 +6725,8 @@ def to_json(self):

def to_dict(self):
json_dict = {'type': self.type, 'media': self._media_dic}
if self._thumbnail_dic:
json_dict['thumbnail'] = self._thumbnail_dic
if self.caption:
json_dict['caption'] = self.caption
if self.parse_mode:
Expand All @@ -6728,8 +6741,12 @@ def convert_input_media(self):
"""
if service_utils.is_string(self.media):
return self.to_json(), None

media_dict = {self._media_name: self.media}
if self._thumbnail_name:
media_dict[self._thumbnail_name] = self.thumbnail

return self.to_json(), {self._media_name: self.media}
return self.to_json(), media_dict


class InputMediaPhoto(InputMedia):
Expand Down Expand Up @@ -6850,8 +6867,7 @@ def __init__(self, media: Union[str, InputFile], thumbnail: Optional[Union[str,
show_caption_above_media: Optional[bool] = None, cover: Optional[Union[str, InputFile]] = None,
start_timestamp: Optional[int] = None):
super(InputMediaVideo, self).__init__(
type="video", media=media, caption=caption, parse_mode=parse_mode, caption_entities=caption_entities)
self.thumbnail: Optional[Union[str, InputFile]] = thumbnail
type="video", media=media, caption=caption, parse_mode=parse_mode, caption_entities=caption_entities, thumbnail=thumbnail)
self.width: Optional[int] = width
self.height: Optional[int] = height
self.duration: Optional[int] = duration
Expand All @@ -6868,8 +6884,6 @@ def thumb(self) -> Optional[Union[str, Any]]:

def to_dict(self):
ret = super(InputMediaVideo, self).to_dict()
if self.thumbnail:
ret['thumbnail'] = self.thumbnail
if self.width:
ret['width'] = self.width
if self.height:
Expand Down Expand Up @@ -6943,8 +6957,7 @@ def __init__(self, media: Union[str, InputFile], thumbnail: Optional[Union[str,
height: Optional[int] = None, duration: Optional[int] = None,
has_spoiler: Optional[bool] = None, show_caption_above_media: Optional[bool] = None):
super(InputMediaAnimation, self).__init__(
type="animation", media=media, caption=caption, parse_mode=parse_mode, caption_entities=caption_entities)
self.thumbnail: Optional[Union[str, InputFile]] = thumbnail
type="animation", media=media, caption=caption, parse_mode=parse_mode, caption_entities=caption_entities, thumbnail=thumbnail)
self.width: Optional[int] = width
self.height: Optional[int] = height
self.duration: Optional[int] = duration
Expand All @@ -6959,8 +6972,6 @@ def thumb(self) -> Optional[Union[str, Any]]:

def to_dict(self):
ret = super(InputMediaAnimation, self).to_dict()
if self.thumbnail:
ret['thumbnail'] = self.thumbnail
if self.width:
ret['width'] = self.width
if self.height:
Expand Down Expand Up @@ -7020,8 +7031,7 @@ def __init__(self, media: Union[str, InputFile], thumbnail: Optional[Union[str,
caption_entities: Optional[List[MessageEntity]] = None, duration: Optional[int] = None,
performer: Optional[str] = None, title: Optional[str] = None):
super(InputMediaAudio, self).__init__(
type="audio", media=media, caption=caption, parse_mode=parse_mode, caption_entities=caption_entities)
self.thumbnail: Optional[Union[str, InputFile]] = thumbnail
type="audio", media=media, caption=caption, parse_mode=parse_mode, caption_entities=caption_entities, thumbnail=thumbnail)
self.duration: Optional[int] = duration
self.performer: Optional[str] = performer
self.title: Optional[str] = title
Expand All @@ -7033,8 +7043,6 @@ def thumb(self) -> Optional[Union[str, Any]]:

def to_dict(self):
ret = super(InputMediaAudio, self).to_dict()
if self.thumbnail:
ret['thumbnail'] = self.thumbnail
if self.duration:
ret['duration'] = self.duration
if self.performer:
Expand Down Expand Up @@ -7085,8 +7093,7 @@ def __init__(self, media: Union[str, InputFile], thumbnail: Optional[Union[str,
caption_entities: Optional[List[MessageEntity]] = None,
disable_content_type_detection: Optional[bool] = None):
super(InputMediaDocument, self).__init__(
type="document", media=media, caption=caption, parse_mode=parse_mode, caption_entities=caption_entities)
self.thumbnail: Optional[Union[str, InputFile]] = thumbnail
type="document", media=media, caption=caption, parse_mode=parse_mode, caption_entities=caption_entities, thumbnail=thumbnail)
self.disable_content_type_detection: Optional[bool] = disable_content_type_detection

@property
Expand All @@ -7096,8 +7103,6 @@ def thumb(self) -> Optional[Union[str, Any]]:

def to_dict(self):
ret = super(InputMediaDocument, self).to_dict()
if self.thumbnail:
ret['thumbnail'] = self.thumbnail
if self.disable_content_type_detection is not None:
ret['disable_content_type_detection'] = self.disable_content_type_detection
return ret
Expand Down