diff --git a/pyrogram/client/methods/bots/callback_query/answer_callback_query.py b/pyrogram/client/methods/bots/callback_query/answer_callback_query.py index a4baa166..be6fbc0c 100644 --- a/pyrogram/client/methods/bots/callback_query/answer_callback_query.py +++ b/pyrogram/client/methods/bots/callback_query/answer_callback_query.py @@ -21,12 +21,12 @@ from ....ext import BaseClient class AnswerCallbackQuery(BaseClient): - def answer_callback_query(self, - callback_query_id: str, - text: str = None, - show_alert: bool = None, - url: str = None, - cache_time: int = 0): + async def answer_callback_query(self, + callback_query_id: str, + text: str = None, + show_alert: bool = None, + url: str = None, + cache_time: int = 0): """Use this method to send answers to callback queries sent from inline keyboards. The answer will be displayed to the user as a notification at the top of the chat screen or as an alert. @@ -51,7 +51,7 @@ class AnswerCallbackQuery(BaseClient): The maximum amount of time in seconds that the result of the callback query may be cached client-side. Telegram apps will support caching starting in version 3.14. Defaults to 0. """ - return self.send( + return await self.send( functions.messages.SetBotCallbackAnswer( query_id=int(callback_query_id), cache_time=cache_time, diff --git a/pyrogram/client/methods/bots/inline/get_inline_bot_results.py b/pyrogram/client/methods/bots/inline/get_inline_bot_results.py index 52c3b005..86ab18b5 100644 --- a/pyrogram/client/methods/bots/inline/get_inline_bot_results.py +++ b/pyrogram/client/methods/bots/inline/get_inline_bot_results.py @@ -22,12 +22,12 @@ from ....ext import BaseClient class GetInlineBotResults(BaseClient): - def get_inline_bot_results(self, - bot: int or str, - query: str, - offset: str = "", - latitude: float = None, - longitude: float = None): + async def get_inline_bot_results(self, + bot: int or str, + query: str, + offset: str = "", + latitude: float = None, + longitude: float = None): """Use this method to get bot results via inline queries. You can then send a result using :obj:`send_inline_bot_result ` @@ -60,9 +60,9 @@ class GetInlineBotResults(BaseClient): # TODO: Don't return the raw type try: - return self.send( + return await self.send( functions.messages.GetInlineBotResults( - bot=self.resolve_peer(bot), + bot=await self.resolve_peer(bot), peer=types.InputPeerSelf(), query=query, offset=offset, diff --git a/pyrogram/client/methods/bots/inline/send_inline_bot_result.py b/pyrogram/client/methods/bots/inline/send_inline_bot_result.py index 947433cd..3ce58cd8 100644 --- a/pyrogram/client/methods/bots/inline/send_inline_bot_result.py +++ b/pyrogram/client/methods/bots/inline/send_inline_bot_result.py @@ -21,12 +21,12 @@ from ....ext import BaseClient class SendInlineBotResult(BaseClient): - def send_inline_bot_result(self, - chat_id: int or str, - query_id: int, - result_id: str, - disable_notification: bool = None, - reply_to_message_id: int = None): + async def send_inline_bot_result(self, + chat_id: int or str, + query_id: int, + result_id: str, + disable_notification: bool = None, + reply_to_message_id: int = None): """Use this method to send an inline bot result. Bot results can be retrieved using :obj:`get_inline_bot_results ` @@ -56,9 +56,9 @@ class SendInlineBotResult(BaseClient): Raises: :class:`Error ` """ - return self.send( + return await self.send( functions.messages.SendInlineBotResult( - peer=self.resolve_peer(chat_id), + peer=await self.resolve_peer(chat_id), query_id=query_id, id=result_id, random_id=self.rnd_id(), diff --git a/pyrogram/client/methods/chats/export_chat_invite_link.py b/pyrogram/client/methods/chats/export_chat_invite_link.py index dc289af3..26febf1d 100644 --- a/pyrogram/client/methods/chats/export_chat_invite_link.py +++ b/pyrogram/client/methods/chats/export_chat_invite_link.py @@ -21,7 +21,7 @@ from ...ext import BaseClient class ExportChatInviteLink(BaseClient): - def export_chat_invite_link(self, chat_id: int or str): + async def export_chat_invite_link(self, chat_id: int or str): """Use this method to generate a new invite link for a chat; any previously generated link is revoked. You must be an administrator in the chat for this to work and have the appropriate admin rights. @@ -37,16 +37,16 @@ class ExportChatInviteLink(BaseClient): Raises: :class:`Error ` """ - peer = self.resolve_peer(chat_id) + peer = await self.resolve_peer(chat_id) if isinstance(peer, types.InputPeerChat): - return self.send( + return await self.send( functions.messages.ExportChatInvite( chat_id=peer.chat_id ) ).link elif isinstance(peer, types.InputPeerChannel): - return self.send( + return await self.send( functions.channels.ExportInvite( channel=peer ) diff --git a/pyrogram/client/methods/chats/get_chat.py b/pyrogram/client/methods/chats/get_chat.py index 194e6171..9b5a5fe8 100644 --- a/pyrogram/client/methods/chats/get_chat.py +++ b/pyrogram/client/methods/chats/get_chat.py @@ -21,7 +21,7 @@ from ...ext import BaseClient, utils class GetChat(BaseClient): - def get_chat(self, chat_id: int or str): + async def get_chat(self, chat_id: int or str): """Use this method to get up to date information about the chat (current name of the user for one-on-one conversations, current username of a user, group or channel, etc.) @@ -31,13 +31,13 @@ class GetChat(BaseClient): Raises: :class:`Error ` """ - peer = self.resolve_peer(chat_id) + peer = await self.resolve_peer(chat_id) if isinstance(peer, types.InputPeerChannel): - r = self.send(functions.channels.GetFullChannel(peer)) + r = await self.send(functions.channels.GetFullChannel(peer)) elif isinstance(peer, (types.InputPeerUser, types.InputPeerSelf)): - r = self.send(functions.users.GetFullUser(peer)) + r = await self.send(functions.users.GetFullUser(peer)) else: - r = self.send(functions.messages.GetFullChat(peer.chat_id)) + r = await self.send(functions.messages.GetFullChat(peer.chat_id)) - return utils.parse_chat_full(self, r) + return await utils.parse_chat_full(self, r) diff --git a/pyrogram/client/methods/chats/join_chat.py b/pyrogram/client/methods/chats/join_chat.py index b7b8d42c..75f8033f 100644 --- a/pyrogram/client/methods/chats/join_chat.py +++ b/pyrogram/client/methods/chats/join_chat.py @@ -21,7 +21,7 @@ from ...ext import BaseClient class JoinChat(BaseClient): - def join_chat(self, chat_id: str): + async def join_chat(self, chat_id: str): """Use this method to join a group chat or channel. Args: @@ -35,13 +35,13 @@ class JoinChat(BaseClient): match = self.INVITE_LINK_RE.match(chat_id) if match: - return self.send( + return await self.send( functions.messages.ImportChatInvite( hash=match.group(1) ) ) else: - resolved_peer = self.send( + resolved_peer = await self.send( functions.contacts.ResolveUsername( username=chat_id.lower().strip("@") ) @@ -52,7 +52,7 @@ class JoinChat(BaseClient): access_hash=resolved_peer.chats[0].access_hash ) - return self.send( + return await self.send( functions.channels.JoinChannel( channel=channel ) diff --git a/pyrogram/client/methods/chats/kick_chat_member.py b/pyrogram/client/methods/chats/kick_chat_member.py index 6275718c..5b8dda53 100644 --- a/pyrogram/client/methods/chats/kick_chat_member.py +++ b/pyrogram/client/methods/chats/kick_chat_member.py @@ -21,10 +21,10 @@ from ...ext import BaseClient class KickChatMember(BaseClient): - def kick_chat_member(self, - chat_id: int or str, - user_id: int or str, - until_date: int = 0): + async def kick_chat_member(self, + chat_id: int or str, + user_id: int or str, + until_date: int = 0): """Use this method to kick a user from a group, a supergroup or a channel. In the case of supergroups and channels, the user will not be able to return to the group on their own using invite links, etc., unless unbanned first. You must be an administrator in the chat for this to work and must @@ -55,11 +55,11 @@ class KickChatMember(BaseClient): Raises: :class:`Error ` """ - chat_peer = self.resolve_peer(chat_id) - user_peer = self.resolve_peer(user_id) + chat_peer = await self.resolve_peer(chat_id) + user_peer = await self.resolve_peer(user_id) if isinstance(chat_peer, types.InputPeerChannel): - self.send( + await self.send( functions.channels.EditBanned( channel=chat_peer, user_id=user_peer, @@ -77,7 +77,7 @@ class KickChatMember(BaseClient): ) ) else: - self.send( + await self.send( functions.messages.DeleteChatUser( chat_id=abs(chat_id), user_id=user_peer diff --git a/pyrogram/client/methods/chats/leave_chat.py b/pyrogram/client/methods/chats/leave_chat.py index 55d6ef21..9d7dfcef 100644 --- a/pyrogram/client/methods/chats/leave_chat.py +++ b/pyrogram/client/methods/chats/leave_chat.py @@ -21,7 +21,7 @@ from ...ext import BaseClient class LeaveChat(BaseClient): - def leave_chat(self, chat_id: int or str, delete: bool = False): + async def leave_chat(self, chat_id: int or str, delete: bool = False): """Use this method to leave a group chat or channel. Args: @@ -35,16 +35,16 @@ class LeaveChat(BaseClient): Raises: :class:`Error ` """ - peer = self.resolve_peer(chat_id) + peer = await self.resolve_peer(chat_id) if isinstance(peer, types.InputPeerChannel): - return self.send( + return await self.send( functions.channels.LeaveChannel( - channel=self.resolve_peer(chat_id) + channel=await self.resolve_peer(chat_id) ) ) elif isinstance(peer, types.InputPeerChat): - r = self.send( + r = await self.send( functions.messages.DeleteChatUser( chat_id=peer.chat_id, user_id=types.InputPeerSelf() @@ -52,7 +52,7 @@ class LeaveChat(BaseClient): ) if delete: - self.send( + await self.send( functions.messages.DeleteHistory( peer=peer, max_id=0 diff --git a/pyrogram/client/methods/chats/promote_chat_member.py b/pyrogram/client/methods/chats/promote_chat_member.py index eb70578a..9cfe426b 100644 --- a/pyrogram/client/methods/chats/promote_chat_member.py +++ b/pyrogram/client/methods/chats/promote_chat_member.py @@ -21,17 +21,17 @@ from ...ext import BaseClient class PromoteChatMember(BaseClient): - def promote_chat_member(self, - chat_id: int or str, - user_id: int or str, - can_change_info: bool = True, - can_post_messages: bool = True, - can_edit_messages: bool = True, - can_delete_messages: bool = True, - can_invite_users: bool = True, - can_restrict_members: bool = True, - can_pin_messages: bool = True, - can_promote_members: bool = False): + async def promote_chat_member(self, + chat_id: int or str, + user_id: int or str, + can_change_info: bool = True, + can_post_messages: bool = True, + can_edit_messages: bool = True, + can_delete_messages: bool = True, + can_invite_users: bool = True, + can_restrict_members: bool = True, + can_pin_messages: bool = True, + can_promote_members: bool = False): """Use this method to promote or demote a user in a supergroup or a channel. You must be an administrator in the chat for this to work and must have the appropriate admin rights. Pass False for all boolean parameters to demote a user. @@ -77,10 +77,10 @@ class PromoteChatMember(BaseClient): Raises: :class:`Error ` """ - self.send( + await self.send( functions.channels.EditAdmin( - channel=self.resolve_peer(chat_id), - user_id=self.resolve_peer(user_id), + channel=await self.resolve_peer(chat_id), + user_id=await self.resolve_peer(user_id), admin_rights=types.ChannelAdminRights( change_info=can_change_info or None, post_messages=can_post_messages or None, diff --git a/pyrogram/client/methods/chats/restrict_chat_member.py b/pyrogram/client/methods/chats/restrict_chat_member.py index ae1e4d9c..a9439ed1 100644 --- a/pyrogram/client/methods/chats/restrict_chat_member.py +++ b/pyrogram/client/methods/chats/restrict_chat_member.py @@ -21,14 +21,14 @@ from ...ext import BaseClient class RestrictChatMember(BaseClient): - def restrict_chat_member(self, - chat_id: int or str, - user_id: int or str, - until_date: int = 0, - can_send_messages: bool = False, - can_send_media_messages: bool = False, - can_send_other_messages: bool = False, - can_add_web_page_previews: bool = False): + async def restrict_chat_member(self, + chat_id: int or str, + user_id: int or str, + until_date: int = 0, + can_send_messages: bool = False, + can_send_media_messages: bool = False, + can_send_other_messages: bool = False, + can_add_web_page_previews: bool = False): """Use this method to restrict a user in a supergroup. The bot must be an administrator in the supergroup for this to work and must have the appropriate admin rights. Pass True for all boolean parameters to lift restrictions from a user. @@ -93,10 +93,10 @@ class RestrictChatMember(BaseClient): send_media = None embed_links = None - self.send( + await self.send( functions.channels.EditBanned( - channel=self.resolve_peer(chat_id), - user_id=self.resolve_peer(user_id), + channel=await self.resolve_peer(chat_id), + user_id=await self.resolve_peer(user_id), banned_rights=types.ChannelBannedRights( until_date=until_date, send_messages=send_messages, diff --git a/pyrogram/client/methods/chats/unban_chat_member.py b/pyrogram/client/methods/chats/unban_chat_member.py index b0916eb4..ed00f428 100644 --- a/pyrogram/client/methods/chats/unban_chat_member.py +++ b/pyrogram/client/methods/chats/unban_chat_member.py @@ -21,9 +21,9 @@ from ...ext import BaseClient class UnbanChatMember(BaseClient): - def unban_chat_member(self, - chat_id: int or str, - user_id: int or str): + async def unban_chat_member(self, + chat_id: int or str, + user_id: int or str): """Use this method to unban a previously kicked user in a supergroup or channel. The user will **not** return to the group or channel automatically, but will be able to join via link, etc. You must be an administrator for this to work. @@ -43,10 +43,10 @@ class UnbanChatMember(BaseClient): Raises: :class:`Error ` """ - self.send( + await self.send( functions.channels.EditBanned( - channel=self.resolve_peer(chat_id), - user_id=self.resolve_peer(user_id), + channel=await self.resolve_peer(chat_id), + user_id=await self.resolve_peer(user_id), banned_rights=types.ChannelBannedRights( until_date=0 ) diff --git a/pyrogram/client/methods/contacts/add_contacts.py b/pyrogram/client/methods/contacts/add_contacts.py index 10b5e415..75f4f8a8 100644 --- a/pyrogram/client/methods/contacts/add_contacts.py +++ b/pyrogram/client/methods/contacts/add_contacts.py @@ -21,7 +21,7 @@ from ...ext import BaseClient class AddContacts(BaseClient): - def add_contacts(self, contacts: list): + async def add_contacts(self, contacts: list): """Use this method to add contacts to your Telegram address book. Args: @@ -34,7 +34,7 @@ class AddContacts(BaseClient): Raises: :class:`Error ` """ - imported_contacts = self.send( + imported_contacts = await self.send( functions.contacts.ImportContacts( contacts=contacts ) diff --git a/pyrogram/client/methods/contacts/delete_contacts.py b/pyrogram/client/methods/contacts/delete_contacts.py index ed3d67f9..ef133d8c 100644 --- a/pyrogram/client/methods/contacts/delete_contacts.py +++ b/pyrogram/client/methods/contacts/delete_contacts.py @@ -22,7 +22,7 @@ from ...ext import BaseClient class DeleteContacts(BaseClient): - def delete_contacts(self, ids: list): + async def delete_contacts(self, ids: list): """Use this method to delete contacts from your Telegram address book Args: @@ -40,14 +40,14 @@ class DeleteContacts(BaseClient): for i in ids: try: - input_user = self.resolve_peer(i) + input_user = await self.resolve_peer(i) except PeerIdInvalid: continue else: if isinstance(input_user, types.InputPeerUser): contacts.append(input_user) - return self.send( + return await self.send( functions.contacts.DeleteContacts( id=contacts ) diff --git a/pyrogram/client/methods/contacts/get_contacts.py b/pyrogram/client/methods/contacts/get_contacts.py index 376e8be2..b73a1f2c 100644 --- a/pyrogram/client/methods/contacts/get_contacts.py +++ b/pyrogram/client/methods/contacts/get_contacts.py @@ -16,8 +16,8 @@ # You should have received a copy of the GNU Lesser General Public License # along with Pyrogram. If not, see . +import asyncio import logging -import time from pyrogram.api import functions, types from pyrogram.api.errors import FloodWait @@ -27,7 +27,7 @@ log = logging.getLogger(__name__) class GetContacts(BaseClient): - def get_contacts(self): + async def get_contacts(self): """Use this method to get contacts from your Telegram address book Requires no parameters. @@ -40,10 +40,10 @@ class GetContacts(BaseClient): """ while True: try: - contacts = self.send(functions.contacts.GetContacts(0)) + contacts = await self.send(functions.contacts.GetContacts(0)) except FloodWait as e: log.warning("get_contacts flood: waiting {} seconds".format(e.x)) - time.sleep(e.x) + await asyncio.sleep(e.x) continue else: if isinstance(contacts, types.contacts.Contacts): diff --git a/pyrogram/client/methods/download_media.py b/pyrogram/client/methods/download_media.py index 5eb04fbc..56a89472 100644 --- a/pyrogram/client/methods/download_media.py +++ b/pyrogram/client/methods/download_media.py @@ -16,19 +16,19 @@ # You should have received a copy of the GNU Lesser General Public License # along with Pyrogram. If not, see . -from threading import Event +import asyncio from pyrogram.client import types as pyrogram_types from ..ext import BaseClient class DownloadMedia(BaseClient): - def download_media(self, - message: pyrogram_types.Message or str, - file_name: str = "", - block: bool = True, - progress: callable = None, - progress_args: tuple = None): + async def download_media(self, + message: pyrogram_types.Message or str, + file_name: str = "", + block: bool = True, + progress: callable = None, + progress_args: tuple = None): """Use this method to download the media from a Message. Args: @@ -114,12 +114,12 @@ class DownloadMedia(BaseClient): else: return - done = Event() + done = asyncio.Event() path = [None] - self.download_queue.put((media, file_name, done, progress, progress_args, path)) + self.download_queue.put_nowait((media, file_name, done, progress, progress_args, path)) if block: - done.wait() + await done.wait() return path[0] diff --git a/pyrogram/client/methods/messages/action/send_chat_action.py b/pyrogram/client/methods/messages/action/send_chat_action.py index 4b34dd40..b770f60e 100644 --- a/pyrogram/client/methods/messages/action/send_chat_action.py +++ b/pyrogram/client/methods/messages/action/send_chat_action.py @@ -21,10 +21,10 @@ from ....ext import BaseClient, ChatAction class SendChatAction(BaseClient): - def send_chat_action(self, - chat_id: int or str, - action: ChatAction or str, - progress: int = 0): + async def send_chat_action(self, + chat_id: int or str, + action: ChatAction or str, + progress: int = 0): """Use this method when you need to tell the other party that something is happening on your side. Args: @@ -63,9 +63,9 @@ class SendChatAction(BaseClient): else: action = action() - return self.send( + return await self.send( functions.messages.SetTyping( - peer=self.resolve_peer(chat_id), + peer=await self.resolve_peer(chat_id), action=action ) ) diff --git a/pyrogram/client/methods/messages/forward_messages.py b/pyrogram/client/methods/messages/forward_messages.py index 606e54b5..03ca9487 100644 --- a/pyrogram/client/methods/messages/forward_messages.py +++ b/pyrogram/client/methods/messages/forward_messages.py @@ -21,11 +21,11 @@ from ...ext import BaseClient, utils class ForwardMessages(BaseClient): - def forward_messages(self, - chat_id: int or str, - from_chat_id: int or str, - message_ids, - disable_notification: bool = None): + async def forward_messages(self, + chat_id: int or str, + from_chat_id: int or str, + message_ids, + disable_notification: bool = None): """Use this method to forward messages of any kind. Args: @@ -61,10 +61,10 @@ class ForwardMessages(BaseClient): is_iterable = not isinstance(message_ids, int) message_ids = list(message_ids) if is_iterable else [message_ids] - r = self.send( + r = await self.send( functions.messages.ForwardMessages( - to_peer=self.resolve_peer(chat_id), - from_peer=self.resolve_peer(from_chat_id), + to_peer=await self.resolve_peer(chat_id), + from_peer=await self.resolve_peer(from_chat_id), id=message_ids, silent=disable_notification or None, random_id=[self.rnd_id() for _ in message_ids] @@ -79,7 +79,7 @@ class ForwardMessages(BaseClient): for i in r.updates: if isinstance(i, (types.UpdateNewMessage, types.UpdateNewChannelMessage)): messages.append( - utils.parse_messages( + await utils.parse_messages( self, i.message, users, chats ) diff --git a/pyrogram/client/methods/messages/get_history.py b/pyrogram/client/methods/messages/get_history.py index 4089dde9..d6c6479a 100644 --- a/pyrogram/client/methods/messages/get_history.py +++ b/pyrogram/client/methods/messages/get_history.py @@ -22,12 +22,12 @@ from ...ext import BaseClient, utils class GetHistory(BaseClient): - def get_history(self, - chat_id: int or str, - offset: int = 0, - limit: int = 100, - offset_id: int = 0, - offset_date: int = 0): + async def get_history(self, + chat_id: int or str, + offset: int = 0, + limit: int = 100, + offset_id: int = 0, + offset_date: int = 0): """Use this method to retrieve the history of a chat. You can get up to 100 messages at once. @@ -60,9 +60,9 @@ class GetHistory(BaseClient): :class:`Error ` """ - r = self.send( + r = await self.send( functions.messages.GetHistory( - peer=self.resolve_peer(chat_id), + peer=await self.resolve_peer(chat_id), offset_id=offset_id, offset_date=offset_date, add_offset=offset, @@ -83,7 +83,7 @@ class GetHistory(BaseClient): } if reply_to_messages: - temp = self.get_messages( + temp = await self.get_messages( chat_id, reply_to_messages, replies=0 ) @@ -93,7 +93,7 @@ class GetHistory(BaseClient): for i in range(len(temp)): reply_to_messages[temp[i].message_id] = temp[i] - messages = utils.parse_messages( + messages = await utils.parse_messages( self, r.messages, users, chats, replies=0 diff --git a/pyrogram/client/methods/messages/get_messages.py b/pyrogram/client/methods/messages/get_messages.py index 49535a40..54c11830 100644 --- a/pyrogram/client/methods/messages/get_messages.py +++ b/pyrogram/client/methods/messages/get_messages.py @@ -21,10 +21,10 @@ from ...ext import BaseClient, utils class GetMessages(BaseClient): - def get_messages(self, - chat_id: int or str, - message_ids, - replies: int = 1): + async def get_messages(self, + chat_id: int or str, + message_ids, + replies: int = 1): """Use this method to get messages that belong to a specific chat. You can retrieve up to 200 messages at once. @@ -51,7 +51,7 @@ class GetMessages(BaseClient): Raises: :class:`Error ` """ - peer = self.resolve_peer(chat_id) + peer = await self.resolve_peer(chat_id) is_iterable = not isinstance(message_ids, int) message_ids = list(message_ids) if is_iterable else [message_ids] message_ids = [types.InputMessageID(i) for i in message_ids] @@ -66,9 +66,9 @@ class GetMessages(BaseClient): id=message_ids ) - r = self.send(rpc) + r = await self.send(rpc) - messages = utils.parse_messages( + messages = await utils.parse_messages( self, r.messages, {i.id: i for i in r.users}, {i.id: i for i in r.chats}, diff --git a/pyrogram/client/methods/messages/media/send_audio.py b/pyrogram/client/methods/messages/media/send_audio.py index 41f4457f..00ccbe4d 100644 --- a/pyrogram/client/methods/messages/media/send_audio.py +++ b/pyrogram/client/methods/messages/media/send_audio.py @@ -27,19 +27,19 @@ from ....ext import BaseClient, utils class SendAudio(BaseClient): - def send_audio(self, - chat_id: int or str, - audio: str, - caption: str = "", - parse_mode: str = "", - duration: int = 0, - performer: str = None, - title: str = None, - disable_notification: bool = None, - reply_to_message_id: int = None, - reply_markup=None, - progress: callable = None, - progress_args: tuple = ()): + async def send_audio(self, + chat_id: int or str, + audio: str, + caption: str = "", + parse_mode: str = "", + duration: int = 0, + performer: str = None, + title: str = None, + disable_notification: bool = None, + reply_to_message_id: int = None, + reply_markup=None, + progress: callable = None, + progress_args: tuple = ()): """Use this method to send audio files. For sending voice messages, use the :obj:`send_voice()` method instead. @@ -118,7 +118,7 @@ class SendAudio(BaseClient): style = self.html if parse_mode.lower() == "html" else self.markdown if os.path.exists(audio): - file = self.save_file(audio, progress=progress, progress_args=progress_args) + file = await self.save_file(audio, progress=progress, progress_args=progress_args) media = types.InputMediaUploadedDocument( mime_type=mimetypes.types_map.get("." + audio.split(".")[-1], "audio/mpeg"), file=file, @@ -160,9 +160,9 @@ class SendAudio(BaseClient): while True: try: - r = self.send( + r = await self.send( functions.messages.SendMedia( - peer=self.resolve_peer(chat_id), + peer=await self.resolve_peer(chat_id), media=media, silent=disable_notification or None, reply_to_msg_id=reply_to_message_id, @@ -172,11 +172,11 @@ class SendAudio(BaseClient): ) ) except FilePartMissing as e: - self.save_file(audio, file_id=file.id, file_part=e.x) + await self.save_file(audio, file_id=file.id, file_part=e.x) else: for i in r.updates: if isinstance(i, (types.UpdateNewMessage, types.UpdateNewChannelMessage)): - return utils.parse_messages( + return await utils.parse_messages( self, i.message, {i.id: i for i in r.users}, {i.id: i for i in r.chats} diff --git a/pyrogram/client/methods/messages/media/send_contact.py b/pyrogram/client/methods/messages/media/send_contact.py index eb1bb6c4..2965fb5a 100644 --- a/pyrogram/client/methods/messages/media/send_contact.py +++ b/pyrogram/client/methods/messages/media/send_contact.py @@ -21,14 +21,14 @@ from ....ext import BaseClient, utils class SendContact(BaseClient): - def send_contact(self, - chat_id: int or str, - phone_number: str, - first_name: str, - last_name: str = "", - disable_notification: bool = None, - reply_to_message_id: int = None, - reply_markup=None): + async def send_contact(self, + chat_id: int or str, + phone_number: str, + first_name: str, + last_name: str = "", + disable_notification: bool = None, + reply_to_message_id: int = None, + reply_markup=None): """Use this method to send phone contacts. Args: @@ -64,9 +64,9 @@ class SendContact(BaseClient): Raises: :class:`Error ` """ - r = self.send( + r = await self.send( functions.messages.SendMedia( - peer=self.resolve_peer(chat_id), + peer=await self.resolve_peer(chat_id), media=types.InputMediaContact( phone_number, first_name, @@ -82,7 +82,7 @@ class SendContact(BaseClient): for i in r.updates: if isinstance(i, (types.UpdateNewMessage, types.UpdateNewChannelMessage)): - return utils.parse_messages( + return await utils.parse_messages( self, i.message, {i.id: i for i in r.users}, {i.id: i for i in r.chats} diff --git a/pyrogram/client/methods/messages/media/send_document.py b/pyrogram/client/methods/messages/media/send_document.py index 1092147f..f32f78c6 100644 --- a/pyrogram/client/methods/messages/media/send_document.py +++ b/pyrogram/client/methods/messages/media/send_document.py @@ -27,16 +27,16 @@ from ....ext import BaseClient, utils class SendDocument(BaseClient): - def send_document(self, - chat_id: int or str, - document: str, - caption: str = "", - parse_mode: str = "", - disable_notification: bool = None, - reply_to_message_id: int = None, - reply_markup=None, - progress: callable = None, - progress_args: tuple = ()): + async def send_document(self, + chat_id: int or str, + document: str, + caption: str = "", + parse_mode: str = "", + disable_notification: bool = None, + reply_to_message_id: int = None, + reply_markup=None, + progress: callable = None, + progress_args: tuple = ()): """Use this method to send general files. Args: @@ -104,7 +104,7 @@ class SendDocument(BaseClient): style = self.html if parse_mode.lower() == "html" else self.markdown if os.path.exists(document): - file = self.save_file(document, progress=progress, progress_args=progress_args) + file = await self.save_file(document, progress=progress, progress_args=progress_args) media = types.InputMediaUploadedDocument( mime_type=mimetypes.types_map.get("." + document.split(".")[-1], "text/plain"), file=file, @@ -141,9 +141,9 @@ class SendDocument(BaseClient): while True: try: - r = self.send( + r = await self.send( functions.messages.SendMedia( - peer=self.resolve_peer(chat_id), + peer=await self.resolve_peer(chat_id), media=media, silent=disable_notification or None, reply_to_msg_id=reply_to_message_id, @@ -153,11 +153,11 @@ class SendDocument(BaseClient): ) ) except FilePartMissing as e: - self.save_file(document, file_id=file.id, file_part=e.x) + await self.save_file(document, file_id=file.id, file_part=e.x) else: for i in r.updates: if isinstance(i, (types.UpdateNewMessage, types.UpdateNewChannelMessage)): - return utils.parse_messages( + return await utils.parse_messages( self, i.message, {i.id: i for i in r.users}, {i.id: i for i in r.chats} diff --git a/pyrogram/client/methods/messages/media/send_gif.py b/pyrogram/client/methods/messages/media/send_gif.py index 0d4bb4b9..bdda234e 100644 --- a/pyrogram/client/methods/messages/media/send_gif.py +++ b/pyrogram/client/methods/messages/media/send_gif.py @@ -27,7 +27,7 @@ from ....ext import BaseClient, utils class SendGIF(BaseClient): - def send_gif(self, + async def send_gif(self, chat_id: int or str, gif: str, caption: str = "", @@ -122,8 +122,8 @@ class SendGIF(BaseClient): style = self.html if parse_mode.lower() == "html" else self.markdown if os.path.exists(gif): - thumb = None if thumb is None else self.save_file(thumb) - file = self.save_file(gif, progress=progress, progress_args=progress_args) + thumb = None if thumb is None else await self.save_file(thumb) + file = await self.save_file(gif, progress=progress, progress_args=progress_args) media = types.InputMediaUploadedDocument( mime_type=mimetypes.types_map[".mp4"], file=file, @@ -168,9 +168,9 @@ class SendGIF(BaseClient): while True: try: - r = self.send( + r = await self.send( functions.messages.SendMedia( - peer=self.resolve_peer(chat_id), + peer=await self.resolve_peer(chat_id), media=media, silent=disable_notification or None, reply_to_msg_id=reply_to_message_id, @@ -180,11 +180,11 @@ class SendGIF(BaseClient): ) ) except FilePartMissing as e: - self.save_file(gif, file_id=file.id, file_part=e.x) + await self.save_file(gif, file_id=file.id, file_part=e.x) else: for i in r.updates: if isinstance(i, (types.UpdateNewMessage, types.UpdateNewChannelMessage)): - return utils.parse_messages( + return await utils.parse_messages( self, i.message, {i.id: i for i in r.users}, {i.id: i for i in r.chats} diff --git a/pyrogram/client/methods/messages/media/send_location.py b/pyrogram/client/methods/messages/media/send_location.py index 08dac02b..0a1a1776 100644 --- a/pyrogram/client/methods/messages/media/send_location.py +++ b/pyrogram/client/methods/messages/media/send_location.py @@ -21,13 +21,13 @@ from ....ext import BaseClient, utils class SendLocation(BaseClient): - def send_location(self, - chat_id: int or str, - latitude: float, - longitude: float, - disable_notification: bool = None, - reply_to_message_id: int = None, - reply_markup=None): + async def send_location(self, + chat_id: int or str, + latitude: float, + longitude: float, + disable_notification: bool = None, + reply_to_message_id: int = None, + reply_markup=None): """Use this method to send points on the map. Args: @@ -60,9 +60,9 @@ class SendLocation(BaseClient): Raises: :class:`Error ` """ - r = self.send( + r = await self.send( functions.messages.SendMedia( - peer=self.resolve_peer(chat_id), + peer=await self.resolve_peer(chat_id), media=types.InputMediaGeoPoint( types.InputGeoPoint( latitude, @@ -79,7 +79,7 @@ class SendLocation(BaseClient): for i in r.updates: if isinstance(i, (types.UpdateNewMessage, types.UpdateNewChannelMessage)): - return utils.parse_messages( + return await utils.parse_messages( self, i.message, {i.id: i for i in r.users}, {i.id: i for i in r.chats} diff --git a/pyrogram/client/methods/messages/media/send_media_group.py b/pyrogram/client/methods/messages/media/send_media_group.py index 6d004d9f..f0af01be 100644 --- a/pyrogram/client/methods/messages/media/send_media_group.py +++ b/pyrogram/client/methods/messages/media/send_media_group.py @@ -31,11 +31,11 @@ class SendMediaGroup(BaseClient): # TODO: Add progress parameter # TODO: Return new Message object # TODO: Figure out how to send albums using URLs - def send_media_group(self, - chat_id: int or str, - media: list, - disable_notification: bool = None, - reply_to_message_id: int = None): + async def send_media_group(self, + chat_id: int or str, + media: list, + disable_notification: bool = None, + reply_to_message_id: int = None): """Use this method to send a group of photos or videos as an album. On success, an Update containing the sent Messages is returned. @@ -65,11 +65,11 @@ class SendMediaGroup(BaseClient): if isinstance(i, pyrogram_types.InputMediaPhoto): if os.path.exists(i.media): - media = self.send( + media = await self.send( functions.messages.UploadMedia( - peer=self.resolve_peer(chat_id), + peer=await self.resolve_peer(chat_id), media=types.InputMediaUploadedPhoto( - file=self.save_file(i.media) + file=await self.save_file(i.media) ) ) ) @@ -104,11 +104,11 @@ class SendMediaGroup(BaseClient): ) elif isinstance(i, pyrogram_types.InputMediaVideo): if os.path.exists(i.media): - media = self.send( + media = await self.send( functions.messages.UploadMedia( - peer=self.resolve_peer(chat_id), + peer=await self.resolve_peer(chat_id), media=types.InputMediaUploadedDocument( - file=self.save_file(i.media), + file=await self.save_file(i.media), mime_type=mimetypes.types_map[".mp4"], attributes=[ types.DocumentAttributeVideo( @@ -160,9 +160,9 @@ class SendMediaGroup(BaseClient): ) ) - return self.send( + return await self.send( functions.messages.SendMultiMedia( - peer=self.resolve_peer(chat_id), + peer=await self.resolve_peer(chat_id), multi_media=multi_media, silent=disable_notification or None, reply_to_msg_id=reply_to_message_id diff --git a/pyrogram/client/methods/messages/media/send_photo.py b/pyrogram/client/methods/messages/media/send_photo.py index 52e98ff1..e066deef 100644 --- a/pyrogram/client/methods/messages/media/send_photo.py +++ b/pyrogram/client/methods/messages/media/send_photo.py @@ -26,17 +26,17 @@ from ....ext import BaseClient, utils class SendPhoto(BaseClient): - def send_photo(self, - chat_id: int or str, - photo: str, - caption: str = "", - parse_mode: str = "", - ttl_seconds: int = None, - disable_notification: bool = None, - reply_to_message_id: int = None, - reply_markup=None, - progress: callable = None, - progress_args: tuple = ()): + async def send_photo(self, + chat_id: int or str, + photo: str, + caption: str = "", + parse_mode: str = "", + ttl_seconds: int = None, + disable_notification: bool = None, + reply_to_message_id: int = None, + reply_markup=None, + progress: callable = None, + progress_args: tuple = ()): """Use this method to send photos. Args: @@ -109,7 +109,7 @@ class SendPhoto(BaseClient): style = self.html if parse_mode.lower() == "html" else self.markdown if os.path.exists(photo): - file = self.save_file(photo, progress=progress, progress_args=progress_args) + file = await self.save_file(photo, progress=progress, progress_args=progress_args) media = types.InputMediaUploadedPhoto( file=file, ttl_seconds=ttl_seconds @@ -145,9 +145,9 @@ class SendPhoto(BaseClient): while True: try: - r = self.send( + r = await self.send( functions.messages.SendMedia( - peer=self.resolve_peer(chat_id), + peer=await self.resolve_peer(chat_id), media=media, silent=disable_notification or None, reply_to_msg_id=reply_to_message_id, @@ -157,11 +157,11 @@ class SendPhoto(BaseClient): ) ) except FilePartMissing as e: - self.save_file(photo, file_id=file.id, file_part=e.x) + await self.save_file(photo, file_id=file.id, file_part=e.x) else: for i in r.updates: if isinstance(i, (types.UpdateNewMessage, types.UpdateNewChannelMessage)): - return utils.parse_messages( + return await utils.parse_messages( self, i.message, {i.id: i for i in r.users}, {i.id: i for i in r.chats} diff --git a/pyrogram/client/methods/messages/media/send_sticker.py b/pyrogram/client/methods/messages/media/send_sticker.py index 639e3600..7d559d1c 100644 --- a/pyrogram/client/methods/messages/media/send_sticker.py +++ b/pyrogram/client/methods/messages/media/send_sticker.py @@ -26,14 +26,14 @@ from ....ext import BaseClient, utils class SendSticker(BaseClient): - def send_sticker(self, - chat_id: int or str, - sticker: str, - disable_notification: bool = None, - reply_to_message_id: int = None, - reply_markup=None, - progress: callable = None, - progress_args: tuple = ()): + async def send_sticker(self, + chat_id: int or str, + sticker: str, + disable_notification: bool = None, + reply_to_message_id: int = None, + reply_markup=None, + progress: callable = None, + progress_args: tuple = ()): """Use this method to send .webp stickers. Args: @@ -92,7 +92,7 @@ class SendSticker(BaseClient): file = None if os.path.exists(sticker): - file = self.save_file(sticker, progress=progress, progress_args=progress_args) + file = await self.save_file(sticker, progress=progress, progress_args=progress_args) media = types.InputMediaUploadedDocument( mime_type="image/webp", file=file, @@ -129,9 +129,9 @@ class SendSticker(BaseClient): while True: try: - r = self.send( + r = await self.send( functions.messages.SendMedia( - peer=self.resolve_peer(chat_id), + peer=await self.resolve_peer(chat_id), media=media, silent=disable_notification or None, reply_to_msg_id=reply_to_message_id, @@ -141,11 +141,11 @@ class SendSticker(BaseClient): ) ) except FilePartMissing as e: - self.save_file(sticker, file_id=file.id, file_part=e.x) + await self.save_file(sticker, file_id=file.id, file_part=e.x) else: for i in r.updates: if isinstance(i, (types.UpdateNewMessage, types.UpdateNewChannelMessage)): - return utils.parse_messages( + return await utils.parse_messages( self, i.message, {i.id: i for i in r.users}, {i.id: i for i in r.chats} diff --git a/pyrogram/client/methods/messages/media/send_venue.py b/pyrogram/client/methods/messages/media/send_venue.py index d65ea43b..dcb3639d 100644 --- a/pyrogram/client/methods/messages/media/send_venue.py +++ b/pyrogram/client/methods/messages/media/send_venue.py @@ -21,16 +21,16 @@ from ....ext import BaseClient, utils class SendVenue(BaseClient): - def send_venue(self, - chat_id: int or str, - latitude: float, - longitude: float, - title: str, - address: str, - foursquare_id: str = "", - disable_notification: bool = None, - reply_to_message_id: int = None, - reply_markup=None): + async def send_venue(self, + chat_id: int or str, + latitude: float, + longitude: float, + title: str, + address: str, + foursquare_id: str = "", + disable_notification: bool = None, + reply_to_message_id: int = None, + reply_markup=None): """Use this method to send information about a venue. Args: @@ -72,9 +72,9 @@ class SendVenue(BaseClient): Raises: :class:`Error ` """ - r = self.send( + r = await self.send( functions.messages.SendMedia( - peer=self.resolve_peer(chat_id), + peer=await self.resolve_peer(chat_id), media=types.InputMediaVenue( geo_point=types.InputGeoPoint( lat=latitude, @@ -96,7 +96,7 @@ class SendVenue(BaseClient): for i in r.updates: if isinstance(i, (types.UpdateNewMessage, types.UpdateNewChannelMessage)): - return utils.parse_messages( + return await utils.parse_messages( self, i.message, {i.id: i for i in r.users}, {i.id: i for i in r.chats} diff --git a/pyrogram/client/methods/messages/media/send_video.py b/pyrogram/client/methods/messages/media/send_video.py index a4cc0309..f7c7d66d 100644 --- a/pyrogram/client/methods/messages/media/send_video.py +++ b/pyrogram/client/methods/messages/media/send_video.py @@ -27,21 +27,21 @@ from ....ext import BaseClient, utils class SendVideo(BaseClient): - def send_video(self, - chat_id: int or str, - video: str, - caption: str = "", - parse_mode: str = "", - duration: int = 0, - width: int = 0, - height: int = 0, - thumb: str = None, - supports_streaming: bool = True, - disable_notification: bool = None, - reply_to_message_id: int = None, - reply_markup=None, - progress: callable = None, - progress_args: tuple = ()): + async def send_video(self, + chat_id: int or str, + video: str, + caption: str = "", + parse_mode: str = "", + duration: int = 0, + width: int = 0, + height: int = 0, + thumb: str = None, + supports_streaming: bool = True, + disable_notification: bool = None, + reply_to_message_id: int = None, + reply_markup=None, + progress: callable = None, + progress_args: tuple = ()): """Use this method to send video files. Args: @@ -127,7 +127,7 @@ class SendVideo(BaseClient): if os.path.exists(video): thumb = None if thumb is None else self.save_file(thumb) - file = self.save_file(video, progress=progress, progress_args=progress_args) + file = await self.save_file(video, progress=progress, progress_args=progress_args) media = types.InputMediaUploadedDocument( mime_type=mimetypes.types_map[".mp4"], file=file, @@ -171,9 +171,9 @@ class SendVideo(BaseClient): while True: try: - r = self.send( + r = await self.send( functions.messages.SendMedia( - peer=self.resolve_peer(chat_id), + peer=await self.resolve_peer(chat_id), media=media, silent=disable_notification or None, reply_to_msg_id=reply_to_message_id, @@ -183,11 +183,11 @@ class SendVideo(BaseClient): ) ) except FilePartMissing as e: - self.save_file(video, file_id=file.id, file_part=e.x) + await self.save_file(video, file_id=file.id, file_part=e.x) else: for i in r.updates: if isinstance(i, (types.UpdateNewMessage, types.UpdateNewChannelMessage)): - return utils.parse_messages( + return await utils.parse_messages( self, i.message, {i.id: i for i in r.users}, {i.id: i for i in r.chats} diff --git a/pyrogram/client/methods/messages/media/send_video_note.py b/pyrogram/client/methods/messages/media/send_video_note.py index d7b417d5..6eb2c252 100644 --- a/pyrogram/client/methods/messages/media/send_video_note.py +++ b/pyrogram/client/methods/messages/media/send_video_note.py @@ -27,16 +27,16 @@ from ....ext import BaseClient, utils class SendVideoNote(BaseClient): - def send_video_note(self, - chat_id: int or str, - video_note: str, - duration: int = 0, - length: int = 1, - disable_notification: bool = None, - reply_to_message_id: int = None, - reply_markup=None, - progress: callable = None, - progress_args: tuple = ()): + async def send_video_note(self, + chat_id: int or str, + video_note: str, + duration: int = 0, + length: int = 1, + disable_notification: bool = None, + reply_to_message_id: int = None, + reply_markup=None, + progress: callable = None, + progress_args: tuple = ()): """Use this method to send video messages. Args: @@ -101,7 +101,7 @@ class SendVideoNote(BaseClient): file = None if os.path.exists(video_note): - file = self.save_file(video_note, progress=progress, progress_args=progress_args) + file = await self.save_file(video_note, progress=progress, progress_args=progress_args) media = types.InputMediaUploadedDocument( mime_type=mimetypes.types_map[".mp4"], file=file, @@ -139,9 +139,9 @@ class SendVideoNote(BaseClient): while True: try: - r = self.send( + r = await self.send( functions.messages.SendMedia( - peer=self.resolve_peer(chat_id), + peer=await self.resolve_peer(chat_id), media=media, silent=disable_notification or None, reply_to_msg_id=reply_to_message_id, @@ -151,11 +151,11 @@ class SendVideoNote(BaseClient): ) ) except FilePartMissing as e: - self.save_file(video_note, file_id=file.id, file_part=e.x) + await self.save_file(video_note, file_id=file.id, file_part=e.x) else: for i in r.updates: if isinstance(i, (types.UpdateNewMessage, types.UpdateNewChannelMessage)): - return utils.parse_messages( + return await utils.parse_messages( self, i.message, {i.id: i for i in r.users}, {i.id: i for i in r.chats} diff --git a/pyrogram/client/methods/messages/media/send_voice.py b/pyrogram/client/methods/messages/media/send_voice.py index ae21de6d..114ee073 100644 --- a/pyrogram/client/methods/messages/media/send_voice.py +++ b/pyrogram/client/methods/messages/media/send_voice.py @@ -27,17 +27,17 @@ from ....ext import BaseClient, utils class SendVoice(BaseClient): - def send_voice(self, - chat_id: int or str, - voice: str, - caption: str = "", - parse_mode: str = "", - duration: int = 0, - disable_notification: bool = None, - reply_to_message_id: int = None, - reply_markup=None, - progress: callable = None, - progress_args: tuple = ()): + async def send_voice(self, + chat_id: int or str, + voice: str, + caption: str = "", + parse_mode: str = "", + duration: int = 0, + disable_notification: bool = None, + reply_to_message_id: int = None, + reply_markup=None, + progress: callable = None, + progress_args: tuple = ()): """Use this method to send audio files. Args: @@ -108,7 +108,7 @@ class SendVoice(BaseClient): style = self.html if parse_mode.lower() == "html" else self.markdown if os.path.exists(voice): - file = self.save_file(voice, progress=progress, progress_args=progress_args) + file = await self.save_file(voice, progress=progress, progress_args=progress_args) media = types.InputMediaUploadedDocument( mime_type=mimetypes.types_map.get("." + voice.split(".")[-1], "audio/mpeg"), file=file, @@ -148,9 +148,9 @@ class SendVoice(BaseClient): while True: try: - r = self.send( + r = await self.send( functions.messages.SendMedia( - peer=self.resolve_peer(chat_id), + peer=await self.resolve_peer(chat_id), media=media, silent=disable_notification or None, reply_to_msg_id=reply_to_message_id, @@ -160,11 +160,11 @@ class SendVoice(BaseClient): ) ) except FilePartMissing as e: - self.save_file(voice, file_id=file.id, file_part=e.x) + await self.save_file(voice, file_id=file.id, file_part=e.x) else: for i in r.updates: if isinstance(i, (types.UpdateNewMessage, types.UpdateNewChannelMessage)): - return utils.parse_messages( + return await utils.parse_messages( self, i.message, {i.id: i for i in r.users}, {i.id: i for i in r.chats} diff --git a/pyrogram/client/methods/messages/send_message.py b/pyrogram/client/methods/messages/send_message.py index 44acaa2e..0009d499 100644 --- a/pyrogram/client/methods/messages/send_message.py +++ b/pyrogram/client/methods/messages/send_message.py @@ -22,14 +22,14 @@ from ...ext import utils, BaseClient class SendMessage(BaseClient): - def send_message(self, - chat_id: int or str, - text: str, - parse_mode: str = "", - disable_web_page_preview: bool = None, - disable_notification: bool = None, - reply_to_message_id: int = None, - reply_markup=None): + async def send_message(self, + chat_id: int or str, + text: str, + parse_mode: str = "", + disable_web_page_preview: bool = None, + disable_notification: bool = None, + reply_to_message_id: int = None, + reply_markup=None): """Use this method to send text messages. Args: @@ -69,9 +69,9 @@ class SendMessage(BaseClient): """ style = self.html if parse_mode.lower() == "html" else self.markdown - r = self.send( + r = await self.send( functions.messages.SendMessage( - peer=self.resolve_peer(chat_id), + peer=await self.resolve_peer(chat_id), no_webpage=disable_web_page_preview or None, silent=disable_notification or None, reply_to_msg_id=reply_to_message_id, @@ -91,7 +91,7 @@ class SendMessage(BaseClient): for i in r.updates: if isinstance(i, (types.UpdateNewMessage, types.UpdateNewChannelMessage)): - return utils.parse_messages( + return await utils.parse_messages( self, i.message, {i.id: i for i in r.users}, {i.id: i for i in r.chats} diff --git a/pyrogram/client/methods/messages/update/delete_messages.py b/pyrogram/client/methods/messages/update/delete_messages.py index 3d29bf55..2853ce25 100644 --- a/pyrogram/client/methods/messages/update/delete_messages.py +++ b/pyrogram/client/methods/messages/update/delete_messages.py @@ -21,10 +21,10 @@ from ....ext import BaseClient class DeleteMessages(BaseClient): - def delete_messages(self, - chat_id: int or str, - message_ids, - revoke: bool = True): + async def delete_messages(self, + chat_id: int or str, + message_ids, + revoke: bool = True): """Use this method to delete messages, including service messages, with the following limitations: - A message can only be deleted if it was sent less than 48 hours ago. @@ -56,18 +56,18 @@ class DeleteMessages(BaseClient): Raises: :class:`Error ` """ - peer = self.resolve_peer(chat_id) + peer = await self.resolve_peer(chat_id) message_ids = list(message_ids) if not isinstance(message_ids, int) else [message_ids] if isinstance(peer, types.InputPeerChannel): - self.send( + await self.send( functions.channels.DeleteMessages( channel=peer, id=message_ids ) ) else: - self.send( + await self.send( functions.messages.DeleteMessages( id=message_ids, revoke=revoke or None diff --git a/pyrogram/client/methods/messages/update/edit_message_caption.py b/pyrogram/client/methods/messages/update/edit_message_caption.py index 90bf26f7..e2bade97 100644 --- a/pyrogram/client/methods/messages/update/edit_message_caption.py +++ b/pyrogram/client/methods/messages/update/edit_message_caption.py @@ -21,12 +21,12 @@ from ....ext import BaseClient, utils class EditMessageCaption(BaseClient): - def edit_message_caption(self, - chat_id: int or str, - message_id: int, - caption: str, - parse_mode: str = "", - reply_markup=None): + async def edit_message_caption(self, + chat_id: int or str, + message_id: int, + caption: str, + parse_mode: str = "", + reply_markup=None): """Use this method to edit captions of messages. Args: @@ -58,9 +58,9 @@ class EditMessageCaption(BaseClient): """ style = self.html if parse_mode.lower() == "html" else self.markdown - r = self.send( + r = await self.send( functions.messages.EditMessage( - peer=self.resolve_peer(chat_id), + peer=await self.resolve_peer(chat_id), id=message_id, reply_markup=reply_markup.write() if reply_markup else None, **style.parse(caption) @@ -69,7 +69,7 @@ class EditMessageCaption(BaseClient): for i in r.updates: if isinstance(i, (types.UpdateEditMessage, types.UpdateEditChannelMessage)): - return utils.parse_messages( + return await utils.parse_messages( self, i.message, {i.id: i for i in r.users}, {i.id: i for i in r.chats} diff --git a/pyrogram/client/methods/messages/update/edit_message_reply_markup.py b/pyrogram/client/methods/messages/update/edit_message_reply_markup.py index 295eb258..ec7c7638 100644 --- a/pyrogram/client/methods/messages/update/edit_message_reply_markup.py +++ b/pyrogram/client/methods/messages/update/edit_message_reply_markup.py @@ -21,10 +21,10 @@ from ....ext import BaseClient, utils class EditMessageReplyMarkup(BaseClient): - def edit_message_reply_markup(self, - chat_id: int or str, - message_id: int, - reply_markup=None): + async def edit_message_reply_markup(self, + chat_id: int or str, + message_id: int, + reply_markup=None): """Use this method to edit only the reply markup of messages sent by the bot or via the bot (for inline bots). Args: @@ -48,9 +48,9 @@ class EditMessageReplyMarkup(BaseClient): :class:`Error ` """ - r = self.send( + r = await self.send( functions.messages.EditMessage( - peer=self.resolve_peer(chat_id), + peer=await self.resolve_peer(chat_id), id=message_id, reply_markup=reply_markup.write() if reply_markup else None ) @@ -58,7 +58,7 @@ class EditMessageReplyMarkup(BaseClient): for i in r.updates: if isinstance(i, (types.UpdateEditMessage, types.UpdateEditChannelMessage)): - return utils.parse_messages( + return await utils.parse_messages( self, i.message, {i.id: i for i in r.users}, {i.id: i for i in r.chats} diff --git a/pyrogram/client/methods/messages/update/edit_message_text.py b/pyrogram/client/methods/messages/update/edit_message_text.py index be7b380c..6fa50e71 100644 --- a/pyrogram/client/methods/messages/update/edit_message_text.py +++ b/pyrogram/client/methods/messages/update/edit_message_text.py @@ -21,13 +21,13 @@ from ....ext import BaseClient, utils class EditMessageText(BaseClient): - def edit_message_text(self, - chat_id: int or str, - message_id: int, - text: str, - parse_mode: str = "", - disable_web_page_preview: bool = None, - reply_markup=None): + async def edit_message_text(self, + chat_id: int or str, + message_id: int, + text: str, + parse_mode: str = "", + disable_web_page_preview: bool = None, + reply_markup=None): """Use this method to edit text messages. Args: @@ -62,9 +62,9 @@ class EditMessageText(BaseClient): """ style = self.html if parse_mode.lower() == "html" else self.markdown - r = self.send( + r = await self.send( functions.messages.EditMessage( - peer=self.resolve_peer(chat_id), + peer=await self.resolve_peer(chat_id), id=message_id, no_webpage=disable_web_page_preview or None, reply_markup=reply_markup.write() if reply_markup else None, @@ -74,7 +74,7 @@ class EditMessageText(BaseClient): for i in r.updates: if isinstance(i, (types.UpdateEditMessage, types.UpdateEditChannelMessage)): - return utils.parse_messages( + return await utils.parse_messages( self, i.message, {i.id: i for i in r.users}, {i.id: i for i in r.chats}