mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2024-11-25 10:53:44 +03:00
fd14a5a49a
A new thread is now created when MtProtoSender is created. This thread constantly listens for Telegram updates (such as incoming messages), so the updates can be received any time rather than only when sending another request.
43 lines
1.1 KiB
Python
Executable File
43 lines
1.1 KiB
Python
Executable File
# This file is based on TLSharp
|
|
# https://github.com/sochix/TLSharp/blob/master/TLSharp.Core/Requests/MTProtoRequest.cs
|
|
from datetime import datetime, timedelta
|
|
|
|
|
|
class MTProtoRequest:
|
|
def __init__(self):
|
|
self.sent = False
|
|
|
|
self.msg_id = 0 # Long
|
|
self.sequence = 0
|
|
|
|
self.dirty = False
|
|
self.send_time = None
|
|
self.confirm_received = False
|
|
|
|
# These should be overrode
|
|
self.constructor_id = 0
|
|
self.confirmed = False
|
|
self.responded = False
|
|
|
|
# These should not be overrode
|
|
def on_send_success(self):
|
|
self.send_time = datetime.now()
|
|
self.sent = True
|
|
|
|
def on_confirm(self):
|
|
self.confirm_received = True
|
|
|
|
def need_resend(self):
|
|
return self.dirty or (self.confirmed and not self.confirm_received and
|
|
datetime.now() - self.send_time > timedelta(seconds=3))
|
|
|
|
# These should be overrode
|
|
def on_send(self, writer):
|
|
pass
|
|
|
|
def on_response(self, reader):
|
|
pass
|
|
|
|
def on_exception(self, exception):
|
|
pass
|