Handle UpdateShortSentMessage in send_message

This commit is contained in:
Lonami Exo 2023-10-14 01:25:06 +02:00
parent 816f6012a9
commit 6be93c69ed

View File

@ -49,57 +49,104 @@ async def send_message(
link_preview: Optional[bool] = None, link_preview: Optional[bool] = None,
reply_to: Optional[int] = None, reply_to: Optional[int] = None,
) -> Message: ) -> Message:
peer = (await self._resolve_to_packed(chat))._to_input_peer() packed = await self._resolve_to_packed(chat)
peer = packed._to_input_peer()
message, entities = parse_message( message, entities = parse_message(
text=text, markdown=markdown, html=html, allow_empty=False text=text, markdown=markdown, html=html, allow_empty=False
) )
random_id = generate_random_id() random_id = generate_random_id()
return self._build_message_map( result = await self(
await self( functions.messages.send_message(
functions.messages.send_message( no_webpage=not link_preview,
no_webpage=not link_preview, silent=False,
background=False,
clear_draft=False,
noforwards=False,
update_stickersets_order=False,
peer=peer,
reply_to=types.InputReplyToMessage(
reply_to_msg_id=reply_to, top_msg_id=None
)
if reply_to
else None,
message=message,
random_id=random_id,
reply_markup=None,
entities=entities,
schedule_date=None,
send_as=None,
)
if isinstance(message, str)
else functions.messages.send_message(
no_webpage=not message.web_preview,
silent=message.silent,
background=False,
clear_draft=False,
noforwards=not message.can_forward,
update_stickersets_order=False,
peer=peer,
reply_to=types.InputReplyToMessage(
reply_to_msg_id=message.replied_message_id, top_msg_id=None
)
if message.replied_message_id
else None,
message=message.text or "",
random_id=random_id,
reply_markup=getattr(message._raw, "reply_markup", None),
entities=getattr(message._raw, "entities", None) or None,
schedule_date=None,
send_as=None,
)
)
if isinstance(result, types.UpdateShortSentMessage):
return Message._from_raw(
self,
types.Message(
out=result.out,
mentioned=False,
media_unread=False,
silent=False, silent=False,
background=False, post=False,
clear_draft=False, from_scheduled=False,
legacy=False,
edit_hide=False,
pinned=False,
noforwards=False, noforwards=False,
update_stickersets_order=False, id=result.id,
peer=peer, from_id=types.PeerUser(user_id=self._session.user.id)
reply_to=types.InputReplyToMessage( if self._session.user
reply_to_msg_id=reply_to, top_msg_id=None else None,
peer_id=packed._to_peer(),
fwd_from=None,
via_bot_id=None,
reply_to=types.MessageReplyHeader(
reply_to_scheduled=False,
forum_topic=False,
reply_to_msg_id=reply_to,
reply_to_peer_id=None,
reply_to_top_id=None,
) )
if reply_to if reply_to
else None, else None,
message=message, date=result.date,
random_id=random_id, message=message if isinstance(message, str) else (message.text or ""),
media=result.media,
reply_markup=None, reply_markup=None,
entities=entities, entities=result.entities,
schedule_date=None, views=None,
send_as=None, forwards=None,
) replies=None,
if isinstance(message, str) edit_date=None,
else functions.messages.send_message( post_author=None,
no_webpage=not message.web_preview, grouped_id=None,
silent=message.silent, reactions=None,
background=False, restriction_reason=None,
clear_draft=False, ttl_period=result.ttl_period,
noforwards=not message.can_forward, ),
update_stickersets_order=False, {},
peer=peer, )
reply_to=types.InputReplyToMessage( else:
reply_to_msg_id=message.replied_message_id, top_msg_id=None return self._build_message_map(result, peer).with_random_id(random_id)
)
if message.replied_message_id
else None,
message=message.text or "",
random_id=random_id,
reply_markup=getattr(message._raw, "reply_markup", None),
entities=getattr(message._raw, "entities", None) or None,
schedule_date=None,
send_as=None,
)
),
peer,
).with_random_id(random_id)
async def edit_message( async def edit_message(