2020-06-14 18:18:29 +03:00
from __future__ import annotations
2023-03-11 20:46:36 +02:00
from typing import TYPE_CHECKING , List , Optional , Union
2019-11-03 22:14:41 +02:00
from . . types import (
2023-03-11 20:46:36 +02:00
UNSET_PARSE_MODE ,
2019-11-03 22:14:41 +02:00
ForceReply ,
InlineKeyboardMarkup ,
Message ,
2021-01-26 21:20:52 +02:00
MessageEntity ,
2019-11-03 22:14:41 +02:00
ReplyKeyboardMarkup ,
ReplyKeyboardRemove ,
)
2023-03-11 20:46:36 +02:00
from . . types . base import UNSET_DISABLE_WEB_PAGE_PREVIEW , UNSET_PROTECT_CONTENT
from . base import TelegramMethod
2020-06-14 18:18:29 +03:00
2019-11-03 22:14:41 +02:00
class SendMessage ( TelegramMethod [ Message ] ) :
"""
2021-01-26 21:20:52 +02:00
Use this method to send text messages . On success , the sent : class : ` aiogram . types . message . Message ` is returned .
2019-11-03 22:14:41 +02:00
Source : https : / / core . telegram . org / bots / api #sendmessage
"""
__returning__ = Message
2023-03-11 20:46:36 +02:00
__api_method__ = " sendMessage "
2019-11-03 22:14:41 +02:00
chat_id : Union [ int , str ]
2021-01-26 21:20:52 +02:00
""" Unique identifier for the target chat or username of the target channel (in the format :code:`@channelusername`) """
2019-11-03 22:14:41 +02:00
text : str
2020-04-11 20:15:03 +03:00
""" Text of the message to be sent, 1-4096 characters after entities parsing """
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 """
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 message text. See `formatting options <https://core.telegram.org/bots/api#formatting-options>`_ for more details. """
entities : Optional [ List [ MessageEntity ] ] = None
2021-11-08 02:37:37 +02:00
""" A JSON-serialized list of special entities that appear in message text, which can be specified instead of *parse_mode* """
2023-03-11 20:46:36 +02:00
disable_web_page_preview : Optional [ bool ] = UNSET_DISABLE_WEB_PAGE_PREVIEW
2019-11-03 22:14:41 +02:00
""" Disables link previews for links in this message """
disable_notification : Optional [ bool ] = None
2021-01-26 21:20:52 +02:00
""" 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 """
2019-11-03 22:14:41 +02:00
reply_to_message_id : Optional [ int ] = None
""" If the message is a reply, ID of the original message """
2021-01-26 21:20:52 +02:00
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 """
2019-11-03 22:14:41 +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. """