diff --git a/compiler/docs/compiler.py b/compiler/docs/compiler.py index deb1248e..2e928a32 100644 --- a/compiler/docs/compiler.py +++ b/compiler/docs/compiler.py @@ -183,6 +183,7 @@ def pyrogram_api(): send_contact send_cached_media send_reaction + send_paid_reaction edit_message_text edit_message_caption edit_message_media diff --git a/pyrogram/methods/messages/__init__.py b/pyrogram/methods/messages/__init__.py index 9a575a59..677e282d 100644 --- a/pyrogram/methods/messages/__init__.py +++ b/pyrogram/methods/messages/__init__.py @@ -59,6 +59,7 @@ from .send_document import SendDocument from .send_location import SendLocation from .send_media_group import SendMediaGroup from .send_message import SendMessage +from .send_paid_reaction import SendPaidReaction from .send_photo import SendPhoto from .send_poll import SendPoll from .send_reaction import SendReaction @@ -93,6 +94,7 @@ class Messages( SendLocation, SendMediaGroup, SendMessage, + 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..c9995dba --- /dev/null +++ b/pyrogram/methods/messages/send_paid_reaction.py @@ -0,0 +1,72 @@ +# PyroFork - Telegram MTProto API Client Library for Python +# Copyright (C) 2017-present Dan +# Copyright (C) 2022-present Mayuri-Chan +# +# This file is part of PyroFork. +# +# PyroFork 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. +# +# PyroFork 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 PyroFork. If not, see . + +from typing import Union + +import pyrogram +from pyrogram import raw, types + + +class SendPaidReaction: + async def send_paid_reaction( + self: "pyrogram.Client", + chat_id: Union[int, str], + message_id: int, + amount: int, + anonymous: bool = None + ) -> "types.MessageReactions": + """Use this method to send paid reactions on a channel message. + + .. include:: /_includes/usable-by/users.rst + + Parameters: + chat_id (``int`` | ``str``): + Unique identifier (int) or username (str) of the target chat. + You can also use chat public link in form of *t.me/* (str). + + message_id (``int``): + Identifier of the target message. If the message belongs to a media group, the reaction is set to the first non-deleted message in the group instead. + + amount (``int``): + Amount of stars to send. + + anonymous (``bool``, *optional*): + Pass True to hide yourself from top senders list. + + Returns: + :obj:`~pyrogram.types.MessageReactions`: On success, MessageReactions is returned. + + Example: + .. code-block:: python + + # Send a paid reaction + await app.send_paid_reaction(chat_id, message_id=message_id, amount=5) + """ + r = await self.invoke( + raw.functions.messages.SendPaidReaction( + peer=await self.resolve_peer(chat_id), + msg_id=message_id, + count=amount, + random_id=self.rnd_id(), + private=anonymous + ) + ) + for i in r.updates: + if isinstance(i, raw.types.UpdateMessageReactions): + return types.MessageReactions._parse(self, i.reactions)