diff --git a/pyrogram/client/methods/messages/delete_messages.py b/pyrogram/client/methods/messages/delete_messages.py index bbd838ee..4076be22 100644 --- a/pyrogram/client/methods/messages/delete_messages.py +++ b/pyrogram/client/methods/messages/delete_messages.py @@ -48,7 +48,7 @@ class DeleteMessages(BaseClient): Defaults to True. Returns: - True on success. + True on success, False otherwise. Raises: :class:`RPCError ` in case of a Telegram RPC error. @@ -57,18 +57,20 @@ class DeleteMessages(BaseClient): message_ids = list(message_ids) if not isinstance(message_ids, int) else [message_ids] if isinstance(peer, types.InputPeerChannel): - self.send( + r = self.send( functions.channels.DeleteMessages( channel=peer, id=message_ids ) ) else: - self.send( + r = self.send( functions.messages.DeleteMessages( id=message_ids, revoke=revoke or None ) ) - return True + # Deleting messages you don't have right onto, won't raise any error. + # Check for pts_count, which is 0 in case deletes fail. + return bool(r.pts_count) diff --git a/pyrogram/client/types/messages_and_media/message.py b/pyrogram/client/types/messages_and_media/message.py index fc2cb8fb..727b6330 100644 --- a/pyrogram/client/types/messages_and_media/message.py +++ b/pyrogram/client/types/messages_and_media/message.py @@ -2729,19 +2729,17 @@ class Message(PyrogramType, Update): Defaults to True. Returns: - True on success. + True on success, False otherwise. Raises: :class:`RPCError ` """ - self._client.delete_messages( + return self._client.delete_messages( chat_id=self.chat.id, message_ids=self.message_id, revoke=revoke ) - return True - def click(self, x: int or str, y: int = None, quote: bool = None): """Bound method *click* of :obj:`Message `.