mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2025-08-09 13:29:47 +00:00
Update handlers works; it also seems stable
This commit is contained in:
@@ -61,6 +61,7 @@ class TelegramClient(TelegramBareClient):
|
||||
connection_mode=ConnectionMode.TCP_FULL,
|
||||
proxy=None,
|
||||
timeout=timedelta(seconds=5),
|
||||
loop=None,
|
||||
**kwargs):
|
||||
"""Initializes the Telegram client with the specified API ID and Hash.
|
||||
|
||||
@@ -87,6 +88,7 @@ class TelegramClient(TelegramBareClient):
|
||||
connection_mode=connection_mode,
|
||||
proxy=proxy,
|
||||
timeout=timeout,
|
||||
loop=loop,
|
||||
**kwargs
|
||||
)
|
||||
|
||||
@@ -104,8 +106,9 @@ class TelegramClient(TelegramBareClient):
|
||||
"""Sends a code request to the specified phone number"""
|
||||
phone = EntityDatabase.parse_phone(phone) or self._phone
|
||||
result = await self(SendCodeRequest(phone, self.api_id, self.api_hash))
|
||||
self._phone = phone
|
||||
self._phone_code_hash = result.phone_code_hash
|
||||
if result:
|
||||
self._phone = phone
|
||||
self._phone_code_hash = result.phone_code_hash
|
||||
return result
|
||||
|
||||
async def sign_in(self, phone=None, code=None,
|
||||
@@ -169,8 +172,10 @@ class TelegramClient(TelegramBareClient):
|
||||
'and a password only if an RPCError was raised before.'
|
||||
)
|
||||
|
||||
self._set_connected_and_authorized()
|
||||
return result.user
|
||||
if result:
|
||||
self._set_connected_and_authorized()
|
||||
return result.user
|
||||
return result
|
||||
|
||||
async def sign_up(self, code, first_name, last_name=''):
|
||||
"""Signs up to Telegram. Make sure you sent a code request first!"""
|
||||
@@ -182,8 +187,10 @@ class TelegramClient(TelegramBareClient):
|
||||
last_name=last_name
|
||||
))
|
||||
|
||||
self._set_connected_and_authorized()
|
||||
return result.user
|
||||
if result:
|
||||
self._set_connected_and_authorized()
|
||||
return result.user
|
||||
return result
|
||||
|
||||
async def log_out(self):
|
||||
"""Logs out and deletes the current session.
|
||||
@@ -239,7 +246,7 @@ class TelegramClient(TelegramBareClient):
|
||||
offset_peer=offset_peer,
|
||||
limit=need if need < float('inf') else 0
|
||||
))
|
||||
if not r.dialogs:
|
||||
if not r or not r.dialogs:
|
||||
break
|
||||
|
||||
for d in r.dialogs:
|
||||
@@ -288,10 +295,12 @@ class TelegramClient(TelegramBareClient):
|
||||
:return List[telethon.tl.custom.Draft]: A list of open drafts
|
||||
"""
|
||||
response = await self(GetAllDraftsRequest())
|
||||
self.session.process_entities(response)
|
||||
self.session.generate_sequence(response.seq)
|
||||
drafts = [Draft._from_update(self, u) for u in response.updates]
|
||||
return drafts
|
||||
if response:
|
||||
self.session.process_entities(response)
|
||||
self.session.generate_sequence(response.seq)
|
||||
drafts = [Draft._from_update(self, u) for u in response.updates]
|
||||
return drafts
|
||||
return response
|
||||
|
||||
async def send_message(self,
|
||||
entity,
|
||||
@@ -313,6 +322,9 @@ class TelegramClient(TelegramBareClient):
|
||||
reply_to_msg_id=self._get_reply_to(reply_to)
|
||||
)
|
||||
result = await self(request)
|
||||
if not result:
|
||||
return result
|
||||
|
||||
if isinstance(result, UpdateShortSentMessage):
|
||||
return Message(
|
||||
id=result.id,
|
||||
@@ -407,6 +419,8 @@ class TelegramClient(TelegramBareClient):
|
||||
min_id=min_id,
|
||||
add_offset=add_offset
|
||||
))
|
||||
if not result:
|
||||
return result
|
||||
|
||||
# The result may be a messages slice (not all messages were retrieved)
|
||||
# or simply a messages TLObject. In the later case, no "count"
|
||||
|
Reference in New Issue
Block a user