diff --git a/compiler/docs/compiler.py b/compiler/docs/compiler.py index f6479d74..c2411639 100644 --- a/compiler/docs/compiler.py +++ b/compiler/docs/compiler.py @@ -374,6 +374,10 @@ def pyrogram_api(): set_bot_info get_collectible_item_info """, + business=""" + Telegram Business + get_business_connection + """, authorization=""" Authorization connect diff --git a/compiler/docs/template/methods.rst b/compiler/docs/template/methods.rst index e69a89c2..c48e37ac 100644 --- a/compiler/docs/template/methods.rst +++ b/compiler/docs/template/methods.rst @@ -112,6 +112,19 @@ Stickers {stickers} +Telegram Business +------------- + +.. autosummary:: + :nosignatures: + + {business} + +.. toctree:: + :hidden: + + {business} + Users ----- diff --git a/pyrogram/methods/__init__.py b/pyrogram/methods/__init__.py index e788ab46..2da4627c 100644 --- a/pyrogram/methods/__init__.py +++ b/pyrogram/methods/__init__.py @@ -30,6 +30,7 @@ from .pyromod import Pyromod from .stickers import Stickers from .users import Users from .utilities import Utilities +from .business import TelegramBusiness class Methods( @@ -46,5 +47,6 @@ class Methods( Decorators, Utilities, InviteLinks, + TelegramBusiness, ): pass diff --git a/pyrogram/methods/business/__init__.py b/pyrogram/methods/business/__init__.py new file mode 100644 index 00000000..eda3b7f0 --- /dev/null +++ b/pyrogram/methods/business/__init__.py @@ -0,0 +1,25 @@ +# Pyrogram - Telegram MTProto API Client Library for Python +# Copyright (C) 2017-present 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 .get_business_connection import GetBusinessConnection + + +class TelegramBusiness( + GetBusinessConnection, +): + pass diff --git a/pyrogram/methods/business/get_business_connection.py b/pyrogram/methods/business/get_business_connection.py new file mode 100644 index 00000000..5fe7dc56 --- /dev/null +++ b/pyrogram/methods/business/get_business_connection.py @@ -0,0 +1,58 @@ +# Pyrogram - Telegram MTProto API Client Library for Python +# Copyright (C) 2017-present 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 datetime import datetime +from typing import Union, List + +import pyrogram +from pyrogram import types, utils, raw + + +class GetBusinessConnection: + async def get_business_connection( + self: "pyrogram.Client", + business_connection_id: str + ) -> "types.Message": + """Use this method to get information about the connection of the bot with a business account. + + .. include:: /_includes/usable-by/bots.rst + + Parameters: + business_connection_id (``str``): + Unique identifier of the business connection + + Returns: + :obj:`~pyrogram.types.BusinessConnection`: On success, the the connection of the bot with a business account is returned. + """ + + r = await self.invoke( + raw.functions.account.GetBotBusinessConnection( + connection_id=business_connection_id + ) + ) + for i in r.updates: + if isinstance( + i, + ( + raw.types.UpdateBotBusinessConnect + ) + ): + return await types.BotBusinessConnection._parse( + client=self, + bot_connection=i.connection + )