diff --git a/compiler/docs/compiler.py b/compiler/docs/compiler.py index f7583df3..fdc01d5a 100644 --- a/compiler/docs/compiler.py +++ b/compiler/docs/compiler.py @@ -245,10 +245,11 @@ def pyrogram_api(): revoke_chat_invite_link delete_chat_invite_link delete_all_chat_invite_links - get_chat_invite_links - get_chat_invite_links_count + get_chat_invite_link get_chat_invite_link_members get_chat_invite_link_members_count + get_chat_invite_links + get_chat_invite_links_count get_chat_admins_with_invite_links """, contacts=""" diff --git a/pyrogram/methods/invite_links/__init__.py b/pyrogram/methods/invite_links/__init__.py index 17b1abbe..9c32eb8a 100644 --- a/pyrogram/methods/invite_links/__init__.py +++ b/pyrogram/methods/invite_links/__init__.py @@ -23,6 +23,7 @@ from .delete_chat_invite_link import DeleteChatInviteLink from .edit_chat_invite_link import EditChatInviteLink from .export_chat_invite_link import ExportChatInviteLink from .get_chat_admins_with_invite_links import GetChatAdminsWithInviteLinks +from .get_chat_invite_link import GetChatInviteLink from .get_chat_invite_link_members import GetChatInviteLinkMembers from .get_chat_invite_link_members_count import GetChatInviteLinkMembersCount from .get_chat_invite_links import GetChatInviteLinks @@ -41,6 +42,7 @@ class InviteLinks( ExportChatInviteLink, DeleteAllChatInviteLinks, GetChatInviteLinksCount, - GetChatAdminsWithInviteLinks + GetChatAdminsWithInviteLinks, + GetChatInviteLink ): pass diff --git a/pyrogram/methods/invite_links/get_chat_invite_link.py b/pyrogram/methods/invite_links/get_chat_invite_link.py new file mode 100644 index 00000000..c5e03399 --- /dev/null +++ b/pyrogram/methods/invite_links/get_chat_invite_link.py @@ -0,0 +1,54 @@ +# Pyrogram - Telegram MTProto API Client Library for Python +# Copyright (C) 2017-2021 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 import raw +from pyrogram import types +from pyrogram.scaffold import Scaffold + + +class GetChatInviteLink(Scaffold): + async def get_chat_invite_link( + self, + chat_id: Union[int, str], + invite_link: str, + ) -> "types.ChatInviteLink": + """Get detailed information about a chat invite link. + + Parameters: + chat_id (``int`` | ``str``): + Unique identifier for the target chat or username of the target channel/supergroup + (in the format @username). + + invite_link (str): + The invite link. + + Returns: + :obj:`~pyrogram.types.ChatInviteLink`: On success, the invite link is returned. + """ + r = await self.send( + raw.functions.messages.GetExportedChatInvite( + peer=await self.resolve_peer(chat_id), + link=invite_link + ) + ) + + users = {i.id: i for i in r.users} + + return types.ChatInviteLink._parse(self, r.invite, users)