From 54ad043a703ecab2dfb3a03c99b598749e1bf9c8 Mon Sep 17 00:00:00 2001 From: Dan <14043624+delivrance@users.noreply.github.com> Date: Thu, 18 Mar 2021 18:33:11 +0100 Subject: [PATCH] Add get_chat_invite_link method --- compiler/docs/compiler.py | 5 +- pyrogram/methods/invite_links/__init__.py | 4 +- .../invite_links/get_chat_invite_link.py | 54 +++++++++++++++++++ 3 files changed, 60 insertions(+), 3 deletions(-) create mode 100644 pyrogram/methods/invite_links/get_chat_invite_link.py 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)