diff --git a/pyrogram/methods/payments/send_gift.py b/pyrogram/methods/payments/send_gift.py index b65d863b..40b709a3 100644 --- a/pyrogram/methods/payments/send_gift.py +++ b/pyrogram/methods/payments/send_gift.py @@ -77,7 +77,8 @@ class SendGift: """ peer = await self.resolve_peer(chat_id) - text, entities = (await utils.parse_text_entities(self, text, parse_mode, entities)).values() + result = await utils.parse_text_entities(self, text, parse_mode, entities) + text, entities = result["message"], result["entities"] invoice = raw.types.InputInvoiceStarGift( peer=peer, diff --git a/pyrogram/utils.py b/pyrogram/utils.py index fc0e9abd..31b8f1b0 100644 --- a/pyrogram/utils.py +++ b/pyrogram/utils.py @@ -436,13 +436,15 @@ async def parse_text_entities( entities: List["types.MessageEntity"] ) -> Dict[str, Union[str, List[raw.base.MessageEntity]]]: if entities: - # Inject the client instance because parsing user mentions requires it + for entity in entities: entity._client = client - text, entities = text, [await entity.write() for entity in entities] or None + text, entities = text, [await entity.write() for entity in entities] or [] else: - text, entities = (await client.parser.parse(text, parse_mode)).values() + parsed = await client.parser.parse(text, parse_mode) + + text, entities = parsed["message"], parsed.get("entities") or [] return { "message": text,