diff --git a/compiler/docs/compiler.py b/compiler/docs/compiler.py index e7cbdca3..6cde6810 100644 --- a/compiler/docs/compiler.py +++ b/compiler/docs/compiler.py @@ -398,6 +398,7 @@ def pyrogram_api(): set_bot_info get_collectible_item_info get_owned_bots + get_similar_bots """, business=""" Telegram Business diff --git a/pyrogram/methods/bots/__init__.py b/pyrogram/methods/bots/__init__.py index 5d212da1..96614bb1 100644 --- a/pyrogram/methods/bots/__init__.py +++ b/pyrogram/methods/bots/__init__.py @@ -37,6 +37,7 @@ from .set_bot_info import SetBotInfo from .set_chat_menu_button import SetChatMenuButton from .set_game_score import SetGameScore from .get_owned_bots import GetOwnedBots +from .get_similar_bots import GetSimilarBots class Bots( @@ -60,5 +61,6 @@ class Bots( AnswerWebAppQuery, GetCollectibleItemInfo, GetOwnedBots, + GetSimilarBots, ): pass diff --git a/pyrogram/methods/bots/get_similar_bots.py b/pyrogram/methods/bots/get_similar_bots.py new file mode 100644 index 00000000..1bb0bdb8 --- /dev/null +++ b/pyrogram/methods/bots/get_similar_bots.py @@ -0,0 +1,46 @@ +# Pyrofork - Telegram MTProto API Client Library for Python +# Copyright (C) 2022-present Mayuri-Chan +# +# This file is part of Pyrofork. +# +# Pyrofork 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. +# +# Pyrofork 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 Pyrofork. If not, see . + +from typing import List, Union + +import pyrogram +from pyrogram import raw + + +class GetSimilarBots: + async def get_similar_bots( + self: "pyrogram.Client", + bot: Union[int, str] + ) -> List["pyrogram.types.User"]: + """Get a list of bots similar to the target bot. + + .. include:: /_includes/usable-by/users.rst + + Parameters: + bot (``int`` | ``str``): + Unique identifier (int) or username (str) of the target bot. + + Returns: + List of :obj:`~pyrogram.types.User`: On success. + """ + peer = await self.resolve_peer(bot) + r = await self.invoke(raw.functions.bots.GetBotRecommendations(bot=peer)) + return pyrogram.types.List([ + pyrogram.types.User._parse(self, u) + for u in r.users + ])