2021-01-26 21:20:52 +02:00
from __future__ import annotations
2023-08-04 00:30:27 +03:00
from typing import TYPE_CHECKING , Any , List , Optional , Union
2021-01-26 21:20:52 +02:00
from . . types import (
2023-03-11 20:46:36 +02:00
UNSET_PARSE_MODE ,
2021-01-26 21:20:52 +02:00
ForceReply ,
InlineKeyboardMarkup ,
InputFile ,
Message ,
MessageEntity ,
ReplyKeyboardMarkup ,
ReplyKeyboardRemove ,
)
2023-03-11 20:46:36 +02:00
from . . types . base import UNSET_PROTECT_CONTENT
from . base import TelegramMethod
2021-01-26 21:20:52 +02:00
class SendAnimation ( TelegramMethod [ Message ] ) :
"""
Use this method to send animation files ( GIF or H .264 / MPEG - 4 AVC video without sound ) . On success , the sent : class : ` aiogram . types . message . Message ` is returned . Bots can currently send animation files of up to 50 MB in size , this limit may be changed in the future .
Source : https : / / core . telegram . org / bots / api #sendanimation
"""
__returning__ = Message
2023-03-11 20:46:36 +02:00
__api_method__ = " sendAnimation "
2021-01-26 21:20:52 +02:00
chat_id : Union [ int , str ]
""" Unique identifier for the target chat or username of the target channel (in the format :code:`@channelusername`) """
animation : Union [ InputFile , str ]
2022-06-25 18:14:29 +03:00
""" Animation to send. Pass a file_id as String to send an animation that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get an animation from the Internet, or upload a new animation using multipart/form-data. :ref:`More information on Sending Files » <sending-files>` """
2022-11-06 14:28:21 +02:00
message_thread_id : Optional [ int ] = None
""" Unique identifier for the target message thread (topic) of the forum; for forum supergroups only """
2021-01-26 21:20:52 +02:00
duration : Optional [ int ] = None
""" Duration of sent animation in seconds """
width : Optional [ int ] = None
""" Animation width """
height : Optional [ int ] = None
""" Animation height """
2023-11-24 21:10:02 +02:00
thumbnail : Optional [ InputFile ] = None
2022-06-25 18:14:29 +03:00
""" 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>` """
2021-01-26 21:20:52 +02:00
caption : Optional [ str ] = None
""" Animation caption (may also be used when resending animation by *file_id*), 0-1024 characters after entities parsing """
2023-03-11 20:46:36 +02:00
parse_mode : Optional [ str ] = UNSET_PARSE_MODE
2021-01-26 21:20:52 +02:00
""" Mode for parsing entities in the animation caption. See `formatting options <https://core.telegram.org/bots/api#formatting-options>`_ for more details. """
caption_entities : Optional [ List [ MessageEntity ] ] = None
2021-11-08 02:37:37 +02:00
""" A JSON-serialized list of special entities that appear in the caption, which can be specified instead of *parse_mode* """
2022-12-30 22:44:25 +02:00
has_spoiler : Optional [ bool ] = None
""" Pass :code:`True` if the animation needs to be covered with a spoiler animation """
2021-01-26 21:20:52 +02:00
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. """
2023-03-11 20:46:36 +02:00
protect_content : Optional [ bool ] = UNSET_PROTECT_CONTENT
2022-02-19 01:45:59 +02:00
""" Protects the contents of the sent message from forwarding and saving """
2021-01-26 21:20:52 +02:00
reply_to_message_id : Optional [ int ] = None
""" If the message is a reply, ID of the original message """
allow_sending_without_reply : Optional [ bool ] = None
2022-08-14 16:32:29 +03:00
""" Pass :code:`True` if the message should be sent even if the specified replied-to message is not found """
2021-01-26 21:20:52 +02:00
reply_markup : Optional [
Union [ InlineKeyboardMarkup , ReplyKeyboardMarkup , ReplyKeyboardRemove , ForceReply ]
] = None
2022-11-06 14:28:21 +02:00
""" Additional interface options. A JSON-serialized object for an `inline keyboard <https://core.telegram.org/bots/features#inline-keyboards>`_, `custom reply keyboard <https://core.telegram.org/bots/features#keyboards>`_, instructions to remove reply keyboard or to force a reply from the user. """
2023-08-04 00:30:27 +03:00
if TYPE_CHECKING :
# DO NOT EDIT MANUALLY!!!
# This section was auto-generated via `butcher`
def __init__ (
__pydantic__self__ ,
* ,
chat_id : Union [ int , str ] ,
animation : Union [ InputFile , str ] ,
message_thread_id : Optional [ int ] = None ,
duration : Optional [ int ] = None ,
width : Optional [ int ] = None ,
height : Optional [ int ] = None ,
2023-11-24 21:10:02 +02:00
thumbnail : Optional [ InputFile ] = None ,
2023-08-04 00:30:27 +03:00
caption : Optional [ str ] = None ,
parse_mode : Optional [ str ] = UNSET_PARSE_MODE ,
caption_entities : Optional [ List [ MessageEntity ] ] = None ,
has_spoiler : Optional [ bool ] = None ,
disable_notification : Optional [ bool ] = None ,
protect_content : Optional [ bool ] = UNSET_PROTECT_CONTENT ,
reply_to_message_id : Optional [ int ] = None ,
allow_sending_without_reply : Optional [ bool ] = None ,
reply_markup : Optional [
Union [ InlineKeyboardMarkup , ReplyKeyboardMarkup , ReplyKeyboardRemove , ForceReply ]
] = None ,
* * __pydantic_kwargs : Any ,
) - > None :
# DO NOT EDIT MANUALLY!!!
# This method was auto-generated via `butcher`
# Is needed only for type checking and IDE support without any additional plugins
super ( ) . __init__ (
chat_id = chat_id ,
animation = animation ,
message_thread_id = message_thread_id ,
duration = duration ,
width = width ,
height = height ,
thumbnail = thumbnail ,
caption = caption ,
parse_mode = parse_mode ,
caption_entities = caption_entities ,
has_spoiler = has_spoiler ,
disable_notification = disable_notification ,
protect_content = protect_content ,
reply_to_message_id = reply_to_message_id ,
allow_sending_without_reply = allow_sending_without_reply ,
reply_markup = reply_markup ,
* * __pydantic_kwargs ,
)