mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2025-06-03 21:23:15 +03:00
Move InvokeAfterMsg to TLMessage to cleanly confirm results
This commit is contained in:
parent
e2e7e631b5
commit
ef509d13c7
|
@ -101,9 +101,8 @@ class MtProtoSender:
|
||||||
requests = iter(requests)
|
requests = iter(requests)
|
||||||
messages = [TLMessage(self.session, next(requests))]
|
messages = [TLMessage(self.session, next(requests))]
|
||||||
for r in requests:
|
for r in requests:
|
||||||
messages.append(TLMessage(
|
messages.append(TLMessage(self.session, r,
|
||||||
self.session, InvokeAfterMsgRequest(messages[-1].msg_id, r)
|
after_id=messages[-1].msg_id))
|
||||||
))
|
|
||||||
else:
|
else:
|
||||||
messages = [TLMessage(self.session, r) for r in requests]
|
messages = [TLMessage(self.session, r) for r in requests]
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
import struct
|
import struct
|
||||||
|
|
||||||
from . import TLObject, GzipPacked
|
from . import TLObject, GzipPacked
|
||||||
|
from ..tl.functions import InvokeAfterMsgRequest
|
||||||
|
|
||||||
|
|
||||||
class TLMessage(TLObject):
|
class TLMessage(TLObject):
|
||||||
"""https://core.telegram.org/mtproto/service_messages#simple-container"""
|
"""https://core.telegram.org/mtproto/service_messages#simple-container"""
|
||||||
def __init__(self, session, request):
|
def __init__(self, session, request, after_id=None):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
del self.content_related
|
del self.content_related
|
||||||
self.msg_id = session.get_new_msg_id()
|
self.msg_id = session.get_new_msg_id()
|
||||||
|
@ -13,16 +14,27 @@ class TLMessage(TLObject):
|
||||||
self.request = request
|
self.request = request
|
||||||
self.container_msg_id = None
|
self.container_msg_id = None
|
||||||
|
|
||||||
|
# After which message ID this one should run. We do this so
|
||||||
|
# InvokeAfterMsgRequest is transparent to the user and we can
|
||||||
|
# easily invoke after while confirming the original request.
|
||||||
|
self.after_id = after_id
|
||||||
|
|
||||||
def to_dict(self, recursive=True):
|
def to_dict(self, recursive=True):
|
||||||
return {
|
return {
|
||||||
'msg_id': self.msg_id,
|
'msg_id': self.msg_id,
|
||||||
'seq_no': self.seq_no,
|
'seq_no': self.seq_no,
|
||||||
'request': self.request,
|
'request': self.request,
|
||||||
'container_msg_id': self.container_msg_id,
|
'container_msg_id': self.container_msg_id,
|
||||||
|
'after_id': self.after_id
|
||||||
}
|
}
|
||||||
|
|
||||||
def __bytes__(self):
|
def __bytes__(self):
|
||||||
body = GzipPacked.gzip_if_smaller(self.request)
|
if self.after_id is None:
|
||||||
|
body = GzipPacked.gzip_if_smaller(self.request)
|
||||||
|
else:
|
||||||
|
body = GzipPacked.gzip_if_smaller(
|
||||||
|
InvokeAfterMsgRequest(self.after_id, self.request))
|
||||||
|
|
||||||
return struct.pack('<qii', self.msg_id, self.seq_no, len(body)) + body
|
return struct.pack('<qii', self.msg_id, self.seq_no, len(body)) + body
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
|
|
Loading…
Reference in New Issue
Block a user