diff --git a/docs/source/api/methods.rst b/docs/source/api/methods.rst
index ed150e4c..e688903f 100644
--- a/docs/source/api/methods.rst
+++ b/docs/source/api/methods.rst
@@ -104,6 +104,8 @@ Chats
- :meth:`~Client.get_dialogs_count`
- :meth:`~Client.restrict_chat`
- :meth:`~Client.update_chat_username`
+ - :meth:`~Client.archive_chats`
+ - :meth:`~Client.unarchive_chats`
Users
^^^^^
@@ -233,6 +235,8 @@ Details
.. automethod:: Client.get_dialogs_count()
.. automethod:: Client.restrict_chat()
.. automethod:: Client.update_chat_username()
+.. automethod:: Client.archive_chats()
+.. automethod:: Client.unarchive_chats()
.. Users
.. automethod:: Client.get_me()
diff --git a/pyrogram/client/methods/chats/__init__.py b/pyrogram/client/methods/chats/__init__.py
index c0176939..969628ee 100644
--- a/pyrogram/client/methods/chats/__init__.py
+++ b/pyrogram/client/methods/chats/__init__.py
@@ -16,6 +16,7 @@
# You should have received a copy of the GNU Lesser General Public License
# along with Pyrogram. If not, see .
+from .archive_chats import ArchiveChats
from .delete_chat_photo import DeleteChatPhoto
from .export_chat_invite_link import ExportChatInviteLink
from .get_chat import GetChat
@@ -36,6 +37,7 @@ from .restrict_chat_member import RestrictChatMember
from .set_chat_description import SetChatDescription
from .set_chat_photo import SetChatPhoto
from .set_chat_title import SetChatTitle
+from .unarchive_chats import UnarchiveChats
from .unban_chat_member import UnbanChatMember
from .unpin_chat_message import UnpinChatMessage
from .update_chat_username import UpdateChatUsername
@@ -64,6 +66,8 @@ class Chats(
IterChatMembers,
UpdateChatUsername,
RestrictChat,
- GetDialogsCount
+ GetDialogsCount,
+ ArchiveChats,
+ UnarchiveChats
):
pass
diff --git a/pyrogram/client/methods/chats/archive_chats.py b/pyrogram/client/methods/chats/archive_chats.py
new file mode 100644
index 00000000..3c929983
--- /dev/null
+++ b/pyrogram/client/methods/chats/archive_chats.py
@@ -0,0 +1,58 @@
+# Pyrogram - Telegram MTProto API Client Library for Python
+# Copyright (C) 2017-2019 Dan Tès
+#
+# 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, List
+
+from pyrogram.api import functions, types
+from ...ext import BaseClient
+
+
+class ArchiveChats(BaseClient):
+ def archive_chats(
+ self,
+ chat_ids: Union[int, str, List[Union[int, str]]],
+ ) -> bool:
+ """Archive one or more chats.
+
+ Parameters:
+ chat_ids (``int`` | ``str`` | List[``int``, ``str``]):
+ Unique identifier (int) or username (str) of the target chat.
+ You can also pass a list of ids (int) or usernames (str).
+
+ Returns:
+ ``bool``: On success, True is returned.
+
+ Raises:
+ RPCError: In case of a Telegram RPC error.
+ """
+
+ if not isinstance(chat_ids, list):
+ chat_ids = [chat_ids]
+
+ self.send(
+ functions.folders.EditPeerFolders(
+ folder_peers=[
+ types.InputFolderPeer(
+ peer=self.resolve_peer(chat),
+ folder_id=1
+ ) for chat in chat_ids
+ ]
+ )
+ )
+
+ return True
diff --git a/pyrogram/client/methods/chats/unarchive_chats.py b/pyrogram/client/methods/chats/unarchive_chats.py
new file mode 100644
index 00000000..56bcc6f8
--- /dev/null
+++ b/pyrogram/client/methods/chats/unarchive_chats.py
@@ -0,0 +1,58 @@
+# Pyrogram - Telegram MTProto API Client Library for Python
+# Copyright (C) 2017-2019 Dan Tès
+#
+# 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, List
+
+from pyrogram.api import functions, types
+from ...ext import BaseClient
+
+
+class UnarchiveChats(BaseClient):
+ def unarchive_chats(
+ self,
+ chat_ids: Union[int, str, List[Union[int, str]]],
+ ) -> bool:
+ """Unarchive one or more chats.
+
+ Parameters:
+ chat_ids (``int`` | ``str`` | List[``int``, ``str``]):
+ Unique identifier (int) or username (str) of the target chat.
+ You can also pass a list of ids (int) or usernames (str).
+
+ Returns:
+ ``bool``: On success, True is returned.
+
+ Raises:
+ RPCError: In case of a Telegram RPC error.
+ """
+
+ if not isinstance(chat_ids, list):
+ chat_ids = [chat_ids]
+
+ self.send(
+ functions.folders.EditPeerFolders(
+ folder_peers=[
+ types.InputFolderPeer(
+ peer=self.resolve_peer(chat),
+ folder_id=0
+ ) for chat in chat_ids
+ ]
+ )
+ )
+
+ return True