Skip to content

Commit

Permalink
Update thumbnail type to InputFile only (#1374)
Browse files Browse the repository at this point in the history
* Update thumbnail type to InputFile only

The thumbnail's type restriction has been changed in several methods and types. Previously, it accepted Union[InputFile, str], allowing both InputFile instances and strings. Now it's changed to accept only InputFile instances. This change enhances meaning of the thumbnail fields in due to Bot API accepts only InputFile instances.

* Added changelog

* Fixed typehints
  • Loading branch information
JrooTJunior committed Nov 24, 2023
1 parent 09af2a1 commit c8dff11
Show file tree
Hide file tree
Showing 24 changed files with 106 additions and 51 deletions.
6 changes: 6 additions & 0 deletions .butcher/methods/sendAnimation/replace.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,9 @@ annotations:
value: UNSET_PARSE_MODE
protect_content:
value: UNSET_PROTECT_CONTENT
thumbnail:
parsed_type:
type: entity
references:
category: types
name: InputFile
6 changes: 6 additions & 0 deletions .butcher/methods/sendAudio/replace.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,9 @@ annotations:
value: UNSET_PARSE_MODE
protect_content:
value: UNSET_PROTECT_CONTENT
thumbnail:
parsed_type:
type: entity
references:
category: types
name: InputFile
6 changes: 6 additions & 0 deletions .butcher/methods/sendDocument/replace.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,9 @@ annotations:
value: UNSET_PARSE_MODE
protect_content:
value: UNSET_PROTECT_CONTENT
thumbnail:
parsed_type:
type: entity
references:
category: types
name: InputFile
6 changes: 6 additions & 0 deletions .butcher/methods/sendVideo/replace.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,9 @@ annotations:
value: UNSET_PARSE_MODE
protect_content:
value: UNSET_PROTECT_CONTENT
thumbnail:
parsed_type:
type: entity
references:
category: types
name: InputFile
6 changes: 6 additions & 0 deletions .butcher/methods/sendVideoNote/replace.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
annotations:
protect_content:
value: UNSET_PROTECT_CONTENT
thumbnail:
parsed_type:
type: entity
references:
category: types
name: InputFile
6 changes: 6 additions & 0 deletions .butcher/types/InputMediaAnimation/replace.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,11 @@ annotations:
references:
category: types
name: InputFile
thumbnail:
parsed_type:
type: entity
references:
category: types
name: InputFile
parse_mode:
value: UNSET_PARSE_MODE
6 changes: 6 additions & 0 deletions .butcher/types/InputMediaAudio/replace.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,11 @@ annotations:
references:
category: types
name: InputFile
thumbnail:
parsed_type:
type: entity
references:
category: types
name: InputFile
parse_mode:
value: UNSET_PARSE_MODE
6 changes: 6 additions & 0 deletions .butcher/types/InputMediaDocument/replace.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,11 @@ annotations:
references:
category: types
name: InputFile
thumbnail:
parsed_type:
type: entity
references:
category: types
name: InputFile
parse_mode:
value: UNSET_PARSE_MODE
6 changes: 6 additions & 0 deletions .butcher/types/InputMediaVideo/replace.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,11 @@ annotations:
references:
category: types
name: InputFile
thumbnail:
parsed_type:
type: entity
references:
category: types
name: InputFile
parse_mode:
value: UNSET_PARSE_MODE
1 change: 1 addition & 0 deletions CHANGES/1372.misc.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Updated :code:`thumbnail` fields type to :code:`InputFile` only
10 changes: 5 additions & 5 deletions aiogram/client/bot.py
Original file line number Diff line number Diff line change
Expand Up @@ -2120,7 +2120,7 @@ async def send_animation(
duration: Optional[int] = None,
width: Optional[int] = None,
height: Optional[int] = None,
thumbnail: Optional[Union[InputFile, str]] = None,
thumbnail: Optional[InputFile] = None,
caption: Optional[str] = None,
parse_mode: Optional[str] = UNSET_PARSE_MODE,
caption_entities: Optional[List[MessageEntity]] = None,
Expand Down Expand Up @@ -2190,7 +2190,7 @@ async def send_audio(
duration: Optional[int] = None,
performer: Optional[str] = None,
title: Optional[str] = None,
thumbnail: Optional[Union[InputFile, str]] = None,
thumbnail: Optional[InputFile] = None,
disable_notification: Optional[bool] = None,
protect_content: Optional[bool] = UNSET_PROTECT_CONTENT,
reply_to_message_id: Optional[int] = None,
Expand Down Expand Up @@ -2374,7 +2374,7 @@ async def send_document(
chat_id: Union[int, str],
document: Union[InputFile, str],
message_thread_id: Optional[int] = None,
thumbnail: Optional[Union[InputFile, str]] = None,
thumbnail: Optional[InputFile] = None,
caption: Optional[str] = None,
parse_mode: Optional[str] = UNSET_PARSE_MODE,
caption_entities: Optional[List[MessageEntity]] = None,
Expand Down Expand Up @@ -2966,7 +2966,7 @@ async def send_video(
duration: Optional[int] = None,
width: Optional[int] = None,
height: Optional[int] = None,
thumbnail: Optional[Union[InputFile, str]] = None,
thumbnail: Optional[InputFile] = None,
caption: Optional[str] = None,
parse_mode: Optional[str] = UNSET_PARSE_MODE,
caption_entities: Optional[List[MessageEntity]] = None,
Expand Down Expand Up @@ -3035,7 +3035,7 @@ async def send_video_note(
message_thread_id: Optional[int] = None,
duration: Optional[int] = None,
length: Optional[int] = None,
thumbnail: Optional[Union[InputFile, str]] = None,
thumbnail: Optional[InputFile] = None,
disable_notification: Optional[bool] = None,
protect_content: Optional[bool] = UNSET_PROTECT_CONTENT,
reply_to_message_id: Optional[int] = None,
Expand Down
4 changes: 2 additions & 2 deletions aiogram/methods/send_animation.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ class SendAnimation(TelegramMethod[Message]):
"""Animation width"""
height: Optional[int] = None
"""Animation height"""
thumbnail: Optional[Union[InputFile, str]] = None
thumbnail: Optional[InputFile] = None
"""Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass 'attach://<file_attach_name>' if the thumbnail was uploaded using multipart/form-data under <file_attach_name>. :ref:`More information on Sending Files » <sending-files>`"""
caption: Optional[str] = None
"""Animation caption (may also be used when resending animation by *file_id*), 0-1024 characters after entities parsing"""
Expand Down Expand Up @@ -74,7 +74,7 @@ def __init__(
duration: Optional[int] = None,
width: Optional[int] = None,
height: Optional[int] = None,
thumbnail: Optional[Union[InputFile, str]] = None,
thumbnail: Optional[InputFile] = None,
caption: Optional[str] = None,
parse_mode: Optional[str] = UNSET_PARSE_MODE,
caption_entities: Optional[List[MessageEntity]] = None,
Expand Down
4 changes: 2 additions & 2 deletions aiogram/methods/send_audio.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ class SendAudio(TelegramMethod[Message]):
"""Performer"""
title: Optional[str] = None
"""Track name"""
thumbnail: Optional[Union[InputFile, str]] = None
thumbnail: Optional[InputFile] = None
"""Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass 'attach://<file_attach_name>' if the thumbnail was uploaded using multipart/form-data under <file_attach_name>. :ref:`More information on Sending Files » <sending-files>`"""
disable_notification: Optional[bool] = None
"""Sends the message `silently <https://telegram.org/blog/channels-2-0#silent-messages>`_. Users will receive a notification with no sound."""
Expand Down Expand Up @@ -76,7 +76,7 @@ def __init__(
duration: Optional[int] = None,
performer: Optional[str] = None,
title: Optional[str] = None,
thumbnail: Optional[Union[InputFile, str]] = None,
thumbnail: Optional[InputFile] = None,
disable_notification: Optional[bool] = None,
protect_content: Optional[bool] = UNSET_PROTECT_CONTENT,
reply_to_message_id: Optional[int] = None,
Expand Down
4 changes: 2 additions & 2 deletions aiogram/methods/send_document.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ class SendDocument(TelegramMethod[Message]):
"""File to send. Pass a file_id as String to send a file that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a file from the Internet, or upload a new one using multipart/form-data. :ref:`More information on Sending Files » <sending-files>`"""
message_thread_id: Optional[int] = None
"""Unique identifier for the target message thread (topic) of the forum; for forum supergroups only"""
thumbnail: Optional[Union[InputFile, str]] = None
thumbnail: Optional[InputFile] = None
"""Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass 'attach://<file_attach_name>' if the thumbnail was uploaded using multipart/form-data under <file_attach_name>. :ref:`More information on Sending Files » <sending-files>`"""
caption: Optional[str] = None
"""Document caption (may also be used when resending documents by *file_id*), 0-1024 characters after entities parsing"""
Expand Down Expand Up @@ -65,7 +65,7 @@ def __init__(
chat_id: Union[int, str],
document: Union[InputFile, str],
message_thread_id: Optional[int] = None,
thumbnail: Optional[Union[InputFile, str]] = None,
thumbnail: Optional[InputFile] = None,
caption: Optional[str] = None,
parse_mode: Optional[str] = UNSET_PARSE_MODE,
caption_entities: Optional[List[MessageEntity]] = None,
Expand Down
4 changes: 2 additions & 2 deletions aiogram/methods/send_video.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ class SendVideo(TelegramMethod[Message]):
"""Video width"""
height: Optional[int] = None
"""Video height"""
thumbnail: Optional[Union[InputFile, str]] = None
thumbnail: Optional[InputFile] = None
"""Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass 'attach://<file_attach_name>' if the thumbnail was uploaded using multipart/form-data under <file_attach_name>. :ref:`More information on Sending Files » <sending-files>`"""
caption: Optional[str] = None
"""Video caption (may also be used when resending videos by *file_id*), 0-1024 characters after entities parsing"""
Expand Down Expand Up @@ -76,7 +76,7 @@ def __init__(
duration: Optional[int] = None,
width: Optional[int] = None,
height: Optional[int] = None,
thumbnail: Optional[Union[InputFile, str]] = None,
thumbnail: Optional[InputFile] = None,
caption: Optional[str] = None,
parse_mode: Optional[str] = UNSET_PARSE_MODE,
caption_entities: Optional[List[MessageEntity]] = None,
Expand Down
4 changes: 2 additions & 2 deletions aiogram/methods/send_video_note.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ class SendVideoNote(TelegramMethod[Message]):
"""Duration of sent video in seconds"""
length: Optional[int] = None
"""Video width and height, i.e. diameter of the video message"""
thumbnail: Optional[Union[InputFile, str]] = None
thumbnail: Optional[InputFile] = None
"""Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass 'attach://<file_attach_name>' if the thumbnail was uploaded using multipart/form-data under <file_attach_name>. :ref:`More information on Sending Files » <sending-files>`"""
disable_notification: Optional[bool] = None
"""Sends the message `silently <https://telegram.org/blog/channels-2-0#silent-messages>`_. Users will receive a notification with no sound."""
Expand All @@ -61,7 +61,7 @@ def __init__(
message_thread_id: Optional[int] = None,
duration: Optional[int] = None,
length: Optional[int] = None,
thumbnail: Optional[Union[InputFile, str]] = None,
thumbnail: Optional[InputFile] = None,
disable_notification: Optional[bool] = None,
protect_content: Optional[bool] = UNSET_PROTECT_CONTENT,
reply_to_message_id: Optional[int] = None,
Expand Down
20 changes: 10 additions & 10 deletions aiogram/types/chat_join_request.py
Original file line number Diff line number Diff line change
Expand Up @@ -279,7 +279,7 @@ def answer_animation(
duration: Optional[int] = None,
width: Optional[int] = None,
height: Optional[int] = None,
thumbnail: Optional[Union[InputFile, str]] = None,
thumbnail: Optional[InputFile] = None,
caption: Optional[str] = None,
parse_mode: Optional[str] = UNSET_PARSE_MODE,
caption_entities: Optional[List[MessageEntity]] = None,
Expand Down Expand Up @@ -352,7 +352,7 @@ def answer_animation_pm(
duration: Optional[int] = None,
width: Optional[int] = None,
height: Optional[int] = None,
thumbnail: Optional[Union[InputFile, str]] = None,
thumbnail: Optional[InputFile] = None,
caption: Optional[str] = None,
parse_mode: Optional[str] = UNSET_PARSE_MODE,
caption_entities: Optional[List[MessageEntity]] = None,
Expand Down Expand Up @@ -428,7 +428,7 @@ def answer_audio(
duration: Optional[int] = None,
performer: Optional[str] = None,
title: Optional[str] = None,
thumbnail: Optional[Union[InputFile, str]] = None,
thumbnail: Optional[InputFile] = None,
disable_notification: Optional[bool] = None,
protect_content: Optional[bool] = UNSET_PROTECT_CONTENT,
reply_to_message_id: Optional[int] = None,
Expand Down Expand Up @@ -499,7 +499,7 @@ def answer_audio_pm(
duration: Optional[int] = None,
performer: Optional[str] = None,
title: Optional[str] = None,
thumbnail: Optional[Union[InputFile, str]] = None,
thumbnail: Optional[InputFile] = None,
disable_notification: Optional[bool] = None,
protect_content: Optional[bool] = UNSET_PROTECT_CONTENT,
reply_to_message_id: Optional[int] = None,
Expand Down Expand Up @@ -680,7 +680,7 @@ def answer_document(
self,
document: Union[InputFile, str],
message_thread_id: Optional[int] = None,
thumbnail: Optional[Union[InputFile, str]] = None,
thumbnail: Optional[InputFile] = None,
caption: Optional[str] = None,
parse_mode: Optional[str] = UNSET_PARSE_MODE,
caption_entities: Optional[List[MessageEntity]] = None,
Expand Down Expand Up @@ -744,7 +744,7 @@ def answer_document_pm(
self,
document: Union[InputFile, str],
message_thread_id: Optional[int] = None,
thumbnail: Optional[Union[InputFile, str]] = None,
thumbnail: Optional[InputFile] = None,
caption: Optional[str] = None,
parse_mode: Optional[str] = UNSET_PARSE_MODE,
caption_entities: Optional[List[MessageEntity]] = None,
Expand Down Expand Up @@ -1963,7 +1963,7 @@ def answer_video(
duration: Optional[int] = None,
width: Optional[int] = None,
height: Optional[int] = None,
thumbnail: Optional[Union[InputFile, str]] = None,
thumbnail: Optional[InputFile] = None,
caption: Optional[str] = None,
parse_mode: Optional[str] = UNSET_PARSE_MODE,
caption_entities: Optional[List[MessageEntity]] = None,
Expand Down Expand Up @@ -2039,7 +2039,7 @@ def answer_video_pm(
duration: Optional[int] = None,
width: Optional[int] = None,
height: Optional[int] = None,
thumbnail: Optional[Union[InputFile, str]] = None,
thumbnail: Optional[InputFile] = None,
caption: Optional[str] = None,
parse_mode: Optional[str] = UNSET_PARSE_MODE,
caption_entities: Optional[List[MessageEntity]] = None,
Expand Down Expand Up @@ -2114,7 +2114,7 @@ def answer_video_note(
message_thread_id: Optional[int] = None,
duration: Optional[int] = None,
length: Optional[int] = None,
thumbnail: Optional[Union[InputFile, str]] = None,
thumbnail: Optional[InputFile] = None,
disable_notification: Optional[bool] = None,
protect_content: Optional[bool] = UNSET_PROTECT_CONTENT,
reply_to_message_id: Optional[int] = None,
Expand Down Expand Up @@ -2172,7 +2172,7 @@ def answer_video_note_pm(
message_thread_id: Optional[int] = None,
duration: Optional[int] = None,
length: Optional[int] = None,
thumbnail: Optional[Union[InputFile, str]] = None,
thumbnail: Optional[InputFile] = None,
disable_notification: Optional[bool] = None,
protect_content: Optional[bool] = UNSET_PROTECT_CONTENT,
reply_to_message_id: Optional[int] = None,
Expand Down
10 changes: 5 additions & 5 deletions aiogram/types/chat_member_updated.py
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ def answer_animation(
duration: Optional[int] = None,
width: Optional[int] = None,
height: Optional[int] = None,
thumbnail: Optional[Union[InputFile, str]] = None,
thumbnail: Optional[InputFile] = None,
caption: Optional[str] = None,
parse_mode: Optional[str] = UNSET_PARSE_MODE,
caption_entities: Optional[List[MessageEntity]] = None,
Expand Down Expand Up @@ -277,7 +277,7 @@ def answer_audio(
duration: Optional[int] = None,
performer: Optional[str] = None,
title: Optional[str] = None,
thumbnail: Optional[Union[InputFile, str]] = None,
thumbnail: Optional[InputFile] = None,
disable_notification: Optional[bool] = None,
protect_content: Optional[bool] = UNSET_PROTECT_CONTENT,
reply_to_message_id: Optional[int] = None,
Expand Down Expand Up @@ -400,7 +400,7 @@ def answer_document(
self,
document: Union[InputFile, str],
message_thread_id: Optional[int] = None,
thumbnail: Optional[Union[InputFile, str]] = None,
thumbnail: Optional[InputFile] = None,
caption: Optional[str] = None,
parse_mode: Optional[str] = UNSET_PARSE_MODE,
caption_entities: Optional[List[MessageEntity]] = None,
Expand Down Expand Up @@ -1043,7 +1043,7 @@ def answer_video(
duration: Optional[int] = None,
width: Optional[int] = None,
height: Optional[int] = None,
thumbnail: Optional[Union[InputFile, str]] = None,
thumbnail: Optional[InputFile] = None,
caption: Optional[str] = None,
parse_mode: Optional[str] = UNSET_PARSE_MODE,
caption_entities: Optional[List[MessageEntity]] = None,
Expand Down Expand Up @@ -1118,7 +1118,7 @@ def answer_video_note(
message_thread_id: Optional[int] = None,
duration: Optional[int] = None,
length: Optional[int] = None,
thumbnail: Optional[Union[InputFile, str]] = None,
thumbnail: Optional[InputFile] = None,
disable_notification: Optional[bool] = None,
protect_content: Optional[bool] = UNSET_PROTECT_CONTENT,
reply_to_message_id: Optional[int] = None,
Expand Down
4 changes: 2 additions & 2 deletions aiogram/types/input_media_animation.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ class InputMediaAnimation(InputMedia):
"""Type of the result, must be *animation*"""
media: Union[str, InputFile]
"""File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass 'attach://<file_attach_name>' to upload a new one using multipart/form-data under <file_attach_name> name. :ref:`More information on Sending Files » <sending-files>`"""
thumbnail: Optional[Union[InputFile, str]] = None
thumbnail: Optional[InputFile] = None
"""*Optional*. Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass 'attach://<file_attach_name>' if the thumbnail was uploaded using multipart/form-data under <file_attach_name>. :ref:`More information on Sending Files » <sending-files>`"""
caption: Optional[str] = None
"""*Optional*. Caption of the animation to be sent, 0-1024 characters after entities parsing"""
Expand All @@ -48,7 +48,7 @@ def __init__(
*,
type: Literal[InputMediaType.ANIMATION] = InputMediaType.ANIMATION,
media: Union[str, InputFile],
thumbnail: Optional[Union[InputFile, str]] = None,
thumbnail: Optional[InputFile] = None,
caption: Optional[str] = None,
parse_mode: Optional[str] = UNSET_PARSE_MODE,
caption_entities: Optional[List[MessageEntity]] = None,
Expand Down

0 comments on commit c8dff11

Please sign in to comment.