diff --git a/compiler/docs/compiler.py b/compiler/docs/compiler.py index b1c9b932..d54339c9 100644 --- a/compiler/docs/compiler.py +++ b/compiler/docs/compiler.py @@ -220,6 +220,7 @@ def pyrogram_api(): delete_supergroup delete_user_history set_slow_mode + mark_chat_unread """, users=""" Users @@ -475,6 +476,7 @@ def pyrogram_api(): Chat.add_members Chat.join Chat.leave + Chat.mark_unread """, user=""" User diff --git a/pyrogram/methods/chats/__init__.py b/pyrogram/methods/chats/__init__.py index 8bd785c3..aa90b27e 100644 --- a/pyrogram/methods/chats/__init__.py +++ b/pyrogram/methods/chats/__init__.py @@ -52,6 +52,7 @@ from .unban_chat_member import UnbanChatMember from .unpin_all_chat_messages import UnpinAllChatMessages from .unpin_chat_message import UnpinChatMessage from .update_chat_username import UpdateChatUsername +from .mark_chat_unread import MarkChatUnread class Chats( @@ -90,6 +91,7 @@ class Chats( SetAdministratorTitle, SetSlowMode, DeleteUserHistory, - UnpinAllChatMessages + UnpinAllChatMessages, + MarkChatUnread ): pass diff --git a/pyrogram/methods/chats/mark_chat_unread.py b/pyrogram/methods/chats/mark_chat_unread.py new file mode 100644 index 00000000..7d8558da --- /dev/null +++ b/pyrogram/methods/chats/mark_chat_unread.py @@ -0,0 +1,45 @@ +# Pyrogram - Telegram MTProto API Client Library for Python +# Copyright (C) 2017-2020 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 + +from pyrogram.raw import functions +from pyrogram.scaffold import Scaffold + + +class MarkChatUnread(Scaffold): + async def mark_chat_unread( + self, + chat_id: Union[int, str], + ) -> bool: + """Mark a chat as unread. + + Parameters: + chat_id (``int`` | ``str``): + Unique identifier (int) or username (str) of the target chat. + + Returns: + ``bool``: On success, True is returned. + """ + + return await self.send( + functions.messages.MarkDialogUnread( + peer=await self.resolve_peer(chat_id), + unread=True + ) + )