diff --git a/compiler/docs/compiler.py b/compiler/docs/compiler.py index aa577af1..6deb1b3b 100644 --- a/compiler/docs/compiler.py +++ b/compiler/docs/compiler.py @@ -588,7 +588,7 @@ def pyrogram_api(): GiftCode GiftedPremium Gift - UserGift + StarGift InputStarsTransaction Invoice LabeledPrice @@ -600,7 +600,6 @@ def pyrogram_api(): StarsStatus StarsTransaction SuccessfulPayment - UserStarGift """, pyromod=""" Pyromod @@ -928,4 +927,4 @@ if "__main__" == __name__: DESTINATION = "../../docs/source/telegram" PYROGRAM_API_DEST = "../../docs/source/api" - start() \ No newline at end of file + start() diff --git a/pyrogram/__init__.py b/pyrogram/__init__.py index 03bfead4..e3852a5b 100644 --- a/pyrogram/__init__.py +++ b/pyrogram/__init__.py @@ -18,7 +18,7 @@ # along with Pyrofork. If not, see . __fork_name__ = "PyroFork" -__version__ = "2.3.53" +__version__ = "2.3.54" __license__ = "GNU Lesser General Public License v3.0 (LGPL-3.0)" __copyright__ = "Copyright (C) 2022-present Mayuri-Chan " diff --git a/pyrogram/filters.py b/pyrogram/filters.py index 894da9fc..fbbf9eba 100644 --- a/pyrogram/filters.py +++ b/pyrogram/filters.py @@ -358,11 +358,11 @@ gift_code = create(gift_code_filter) """Filter messages that contain :obj:`~pyrogram.types.GiftCode` objects.""" # endregion -# region user_gift -async def user_gift_filter(_, __, m: Message): - return bool(m.user_gift) -user_gift = create(user_gift_filter) -"""Filter messages that contain :obj:`~pyrogram.types.UserGift` objects.""" +# region star_gift_filter +async def star_gift_filter(_, __, m: Message): + return bool(m.star_gift) +star_gift = create(star_gift_filter) +"""Filter messages that contain :obj:`~pyrogram.types.StarGift` objects.""" # endregion # region video_filter diff --git a/pyrogram/methods/business/get_user_gifts.py b/pyrogram/methods/business/get_user_gifts.py index fa83477f..cca2855b 100644 --- a/pyrogram/methods/business/get_user_gifts.py +++ b/pyrogram/methods/business/get_user_gifts.py @@ -28,7 +28,7 @@ class GetUserGifts: user_id: Union[int, str], offset: str = "", limit: int = 0, - ) -> Optional[AsyncGenerator["types.UserGift", None]]: + ) -> Optional[AsyncGenerator["types.StarGift", None]]: """Get gifts saved to profile by the given user. .. include:: /_includes/usable-by/users.rst @@ -70,13 +70,13 @@ class GetUserGifts: offset=offset, limit=limit ), - sleep_threshold=max(60, self.sleep_threshold) + sleep_threshold=60 ) users = {u.id: u for u in r.users} user_gifts = [ - await types.UserGift._parse(self, gift, users) + await types.StarGift._parse_user_star_gift(self, gift, users) for gift in r.gifts ] diff --git a/pyrogram/utils.py b/pyrogram/utils.py index 6d64ee2d..054dd689 100644 --- a/pyrogram/utils.py +++ b/pyrogram/utils.py @@ -30,8 +30,8 @@ from typing import Union, List, Dict, Optional, Any, Callable, TypeVar from types import SimpleNamespace import pyrogram -from pyrogram import raw, enums -from pyrogram import types +from pyrogram import raw, enums, types +from pyrogram.types.messages_and_media.message import Str from pyrogram.file_id import FileId, FileType, PHOTO_TYPES, DOCUMENT_TYPES @@ -477,6 +477,22 @@ async def run_sync(func: Callable[..., TypeVar("Result")], *args: Any, **kwargs: loop = asyncio.get_event_loop() return await loop.run_in_executor(None, functools.partial(func, *args, **kwargs)) +def parse_text_with_entities(client, message: "raw.types.TextWithEntities", users): + entities = types.List( + filter( + lambda x: x is not None, + [ + types.MessageEntity._parse(client, entity, users) + for entity in getattr(message, "entities", []) + ] + ) + ) + + return { + "text": Str(getattr(message, "text", "")).init(entities) or None, + "entities": entities or None + } + async def get_reply_to( client: "pyrogram.Client", chat_id: Union[int,str] = None,