From ee10f35717adc7bbc40e76b2029bba02b821599c Mon Sep 17 00:00:00 2001 From: KurimuzonAkuma Date: Thu, 15 Aug 2024 23:22:10 +0300 Subject: [PATCH] Add send_paid_reaction method --- compiler/docs/compiler.py | 1 + pyrogram/methods/messages/__init__.py | 2 + .../methods/messages/send_paid_reaction.py | 69 +++++++++++++++++++ 3 files changed, 72 insertions(+) create mode 100644 pyrogram/methods/messages/send_paid_reaction.py diff --git a/compiler/docs/compiler.py b/compiler/docs/compiler.py index fcfcafdd..4ed7e3c0 100644 --- a/compiler/docs/compiler.py +++ b/compiler/docs/compiler.py @@ -206,6 +206,7 @@ def pyrogram_api(): update_color delete_chat_history send_paid_media + send_paid_reaction """, chats=""" Chats diff --git a/pyrogram/methods/messages/__init__.py b/pyrogram/methods/messages/__init__.py index fd56a6ea..94c4c79f 100644 --- a/pyrogram/methods/messages/__init__.py +++ b/pyrogram/methods/messages/__init__.py @@ -62,6 +62,7 @@ from .send_location import SendLocation from .send_media_group import SendMediaGroup from .send_message import SendMessage from .send_paid_media import SendPaidMedia +from .send_paid_reaction import SendPaidReaction from .send_photo import SendPhoto from .send_poll import SendPoll from .send_reaction import SendReaction @@ -99,6 +100,7 @@ class Messages( SendMediaGroup, SendMessage, SendPaidMedia, + SendPaidReaction, SendPhoto, SendSticker, SendVenue, diff --git a/pyrogram/methods/messages/send_paid_reaction.py b/pyrogram/methods/messages/send_paid_reaction.py new file mode 100644 index 00000000..691ebf6e --- /dev/null +++ b/pyrogram/methods/messages/send_paid_reaction.py @@ -0,0 +1,69 @@ +# Pyrogram - Telegram MTProto API Client Library for Python +# Copyright (C) 2017-present Dan +# +# This file is part of Pyrogram. +# +# Pyrogram is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published +# by the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Pyrogram is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with Pyrogram. If not, see . + +from typing import Union + +import pyrogram +from pyrogram import raw + + +class SendPaidReaction: + async def send_paid_reaction( + self: "pyrogram.Client", + chat_id: Union[int, str], + message_id: int, + amount: int, + is_private: bool = None + ) -> bool: + """Send a paid reaction to a message. + + .. include:: /_includes/usable-by/users.rst + + Parameters: + chat_id (``int`` | ``str``): + Unique identifier (int) or username (str) of the target chat. + + message_id (``int``, *optional*): + Identifier of the message. + + amount (``int``, *optional*): + Amount of stars to send. + + is_private (``bool``, *optional*): + Pass True to hide you from top reactors. + + Returns: + ``bool``: On success, True is returned. + + Example: + .. code-block:: python + + # Send paid reaction with 1 star + await app.send_paid_reaction(chat_id, message_id, count=1) + """ + rpc = raw.functions.messages.SendPaidReaction( + peer=await self.resolve_peer(chat_id), + msg_id=message_id, + count=amount, + random_id=self.rnd_id(), + private=is_private + ) + + await self.invoke(rpc) + + return True