2
0
mirror of https://github.com/pyrogram/pyrogram synced 2025-08-28 12:57:52 +00:00

Use raw functions when getting messages

This commit is contained in:
Dan 2018-04-16 12:19:04 +02:00
parent 06685cfe15
commit d0ddb63830

View File

@ -19,7 +19,7 @@
from struct import pack from struct import pack
import pyrogram import pyrogram
from pyrogram.api import types from pyrogram.api import types, functions
from .utils import encode from .utils import encode
# TODO: Organize the code better? # TODO: Organize the code better?
@ -173,6 +173,40 @@ def parse_thumb(thumb: types.PhotoSize or types.PhotoCachedSize) -> pyrogram.Pho
) )
def get_message_reply(client, chat_id: int or str, message_id: int):
peer = client.resolve_peer(chat_id)
message_id = [types.InputMessageReplyTo(message_id)]
if isinstance(peer, types.InputPeerChannel):
rpc = functions.channels.GetMessages(
channel=peer,
id=message_id
)
else:
rpc = functions.messages.GetMessages(
id=message_id
)
return client.send(rpc)
def get_message_pinned(client, chat_id: int or str):
peer = client.resolve_peer(chat_id)
message_id = [types.InputMessagePinned()]
if isinstance(peer, types.InputPeerChannel):
rpc = functions.channels.GetMessages(
channel=peer,
id=message_id
)
else:
rpc = functions.messages.GetMessages(
id=message_id
)
return client.send(rpc)
# TODO: Reorganize code, maybe split parts as well # TODO: Reorganize code, maybe split parts as well
def parse_message( def parse_message(
client, client,
@ -465,7 +499,7 @@ def parse_message(
) )
if message.reply_to_msg_id and replies: if message.reply_to_msg_id and replies:
reply_to_message = client.get_messages(m.chat.id, [message.reply_to_msg_id]) reply_to_message = get_message_reply(client, m.chat.id, message.id)
message = reply_to_message.messages[0] message = reply_to_message.messages[0]
users = {i.id: i for i in reply_to_message.users} users = {i.id: i for i in reply_to_message.users}
@ -573,7 +607,7 @@ def parse_message_service(
) )
if isinstance(action, types.MessageActionPinMessage): if isinstance(action, types.MessageActionPinMessage):
pin_message = client.get_messages(m.chat.id, [message.reply_to_msg_id]) pin_message = get_message_pinned(client, m.chat.id)
message = pin_message.messages[0] message = pin_message.messages[0]
users = {i.id: i for i in pin_message.users} users = {i.id: i for i in pin_message.users}