mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2025-08-09 05:19:41 +00:00
Create a proper Message class (msg_id, seqno, body; only .to_bytes())
This commit is contained in:
@@ -5,31 +5,19 @@ from ..extensions import BinaryWriter
|
||||
class MessageContainer(TLObject):
|
||||
constructor_id = 0x73f1f8dc
|
||||
|
||||
# TODO Currently it's a bit of a hack, since the container actually holds
|
||||
# messages (message id, sequence number, request body), not requests.
|
||||
# Probably create a proper "Message" class
|
||||
def __init__(self, session, requests):
|
||||
def __init__(self, messages):
|
||||
super().__init__()
|
||||
self.content_related = False
|
||||
self.session = session
|
||||
self.requests = requests
|
||||
self.messages = messages
|
||||
|
||||
def to_bytes(self):
|
||||
# TODO Change this to delete the on_send from this class
|
||||
with BinaryWriter() as writer:
|
||||
writer.write_int(MessageContainer.constructor_id, signed=False)
|
||||
writer.write_int(len(self.requests))
|
||||
for x in self.requests:
|
||||
x.request_msg_id = self.session.get_new_msg_id()
|
||||
writer.write_int(len(self.messages))
|
||||
for m in self.messages:
|
||||
writer.write(m.to_bytes())
|
||||
|
||||
writer.write_long(x.request_msg_id)
|
||||
writer.write_int(
|
||||
self.session.generate_sequence(x.content_related)
|
||||
)
|
||||
|
||||
packet = GzipPacked.gzip_if_smaller(x)
|
||||
writer.write_int(len(packet))
|
||||
writer.write(packet)
|
||||
return writer.get_bytes()
|
||||
|
||||
@staticmethod
|
||||
|
Reference in New Issue
Block a user