2020-06-14 18:18:29 +03:00
from __future__ import annotations
from typing import TYPE_CHECKING , Any , Dict , Optional , Union
2019-11-03 22:14:41 +02:00
from . . types import (
ForceReply ,
InlineKeyboardMarkup ,
InputFile ,
Message ,
ReplyKeyboardMarkup ,
ReplyKeyboardRemove ,
)
2019-12-26 01:35:21 +02:00
from . base import Request , TelegramMethod , prepare_file
2019-11-03 22:14:41 +02:00
2021-09-22 00:52:38 +03:00
if TYPE_CHECKING :
2020-06-14 18:18:29 +03:00
from . . client . bot import Bot
2019-11-03 22:14:41 +02:00
class SendSticker ( TelegramMethod [ Message ] ) :
"""
2021-01-26 21:20:52 +02:00
Use this method to send static . WEBP or ` animated < https : / / telegram . org / blog / animated - stickers > ` _ . TGS stickers . 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 #sendsticker
"""
__returning__ = Message
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
sticker : Union [ InputFile , str ]
2021-01-26 21:20:52 +02:00
""" Sticker 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 .WEBP file from the Internet, or upload a new one using multipart/form-data. :ref:`More info on Sending Files » <sending-files>` """
2019-11-03 22:14:41 +02:00
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. """
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
""" 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
2021-01-26 21:20:52 +02:00
""" Additional interface options. A JSON-serialized object for an `inline keyboard <https://core.telegram.org/bots#inline-keyboards-and-on-the-fly-updating>`_, `custom reply keyboard <https://core.telegram.org/bots#keyboards>`_, instructions to remove reply keyboard or to force a reply from the user. """
2019-11-03 22:14:41 +02:00
2020-06-14 18:18:29 +03:00
def build_request ( self , bot : Bot ) - > Request :
2019-11-15 12:17:57 +02:00
data : Dict [ str , Any ] = self . dict ( exclude = { " sticker " } )
2019-11-14 00:44:09 +02:00
2019-11-14 14:44:17 +02:00
files : Dict [ str , InputFile ] = { }
2019-12-26 01:35:21 +02:00
prepare_file ( data = data , files = files , name = " sticker " , value = self . sticker )
2019-11-14 00:44:09 +02:00
2019-11-03 22:14:41 +02:00
return Request ( method = " sendSticker " , data = data , files = files )