Remove TODOs

This commit is contained in:
Lonami Exo 2023-10-13 22:57:49 +02:00
parent b31f4fe063
commit 236c2f7e7c
6 changed files with 5 additions and 25 deletions

View File

@ -81,7 +81,7 @@ async def resolve_to_packed(self: Client, chat: ChatLike) -> PackedChat:
return PackedChat( return PackedChat(
ty=PackedType.BOT if self._session.user.bot else PackedType.USER, ty=PackedType.BOT if self._session.user.bot else PackedType.USER,
id=self._chat_hashes.self_id, id=self._chat_hashes.self_id,
access_hash=0, # TODO get hash access_hash=0,
) )
elif isinstance(chat, types.InputPeerChat): elif isinstance(chat, types.InputPeerChat):
return PackedChat( return PackedChat(

View File

@ -73,7 +73,9 @@ def decrypt_data_v2(ciphertext: bytes, auth_key: AuthKey) -> bytes:
if len(ciphertext) < 24 or (len(ciphertext) - 24) % 16 != 0: if len(ciphertext) < 24 or (len(ciphertext) - 24) % 16 != 0:
raise ValueError("invalid ciphertext buffer length") raise ValueError("invalid ciphertext buffer length")
# TODO Check salt, session_id and sequence_number # salt, session_id and sequence_number should also be checked.
# However, not doing so has worked fine for years.
key_id = ciphertext[:8] key_id = ciphertext[:8]
if auth_key.key_id != key_id: if auth_key.key_id != key_id:
raise ValueError("server authkey mismatches with ours") raise ValueError("server authkey mismatches with ours")

View File

@ -207,7 +207,7 @@ def _do_step3(
ClientDhInnerData( ClientDhInnerData(
nonce=nonce, nonce=nonce,
server_nonce=server_nonce, server_nonce=server_nonce,
retry_id=0, # TODO use an actual retry_id retry_id=0,
g_b=g_b.to_bytes((g_b.bit_length() + 7) // 8), g_b=g_b.to_bytes((g_b.bit_length() + 7) // 8),
) )
) )

View File

@ -188,7 +188,6 @@ class Encrypted(Mtp):
# https://core.telegram.org/mtproto/service_messages # https://core.telegram.org/mtproto/service_messages
# https://core.telegram.org/mtproto/service_messages_about_messages # https://core.telegram.org/mtproto/service_messages_about_messages
# TODO verify what needs ack and what doesn't
constructor_id = struct.unpack_from("<I", message.body)[0] constructor_id = struct.unpack_from("<I", message.body)[0]
self._handlers.get(constructor_id, self._handle_update)(message) self._handlers.get(constructor_id, self._handle_update)(message)
@ -227,7 +226,6 @@ class Encrypted(Mtp):
self._updates.append(body) self._updates.append(body)
def _handle_ack(self, message: Message) -> None: def _handle_ack(self, message: Message) -> None:
# TODO notify about this somehow
MsgsAck.from_bytes(message.body) MsgsAck.from_bytes(message.body)
def _handle_bad_notification(self, message: Message) -> None: def _handle_bad_notification(self, message: Message) -> None:
@ -265,19 +263,15 @@ class Encrypted(Mtp):
self._sequence -= 16 self._sequence -= 16
def _handle_state_req(self, message: Message) -> None: def _handle_state_req(self, message: Message) -> None:
# TODO implement
MsgsStateReq.from_bytes(message.body) MsgsStateReq.from_bytes(message.body)
def _handle_state_info(self, message: Message) -> None: def _handle_state_info(self, message: Message) -> None:
# TODO implement
MsgsStateInfo.from_bytes(message.body) MsgsStateInfo.from_bytes(message.body)
def _handle_msg_all(self, message: Message) -> None: def _handle_msg_all(self, message: Message) -> None:
# TODO implement
MsgsAllInfo.from_bytes(message.body) MsgsAllInfo.from_bytes(message.body)
def _handle_detailed_info(self, message: Message) -> None: def _handle_detailed_info(self, message: Message) -> None:
# TODO properly implement
msg_detailed = AbcMsgDetailedInfo.from_bytes(message.body) msg_detailed = AbcMsgDetailedInfo.from_bytes(message.body)
if isinstance(msg_detailed, MsgDetailedInfo): if isinstance(msg_detailed, MsgDetailedInfo):
self._pending_ack.append(msg_detailed.answer_msg_id) self._pending_ack.append(msg_detailed.answer_msg_id)
@ -287,11 +281,9 @@ class Encrypted(Mtp):
assert False assert False
def _handle_msg_resend(self, message: Message) -> None: def _handle_msg_resend(self, message: Message) -> None:
# TODO implement
MsgResendReq.from_bytes(message.body) MsgResendReq.from_bytes(message.body)
def _handle_future_salts(self, message: Message) -> None: def _handle_future_salts(self, message: Message) -> None:
# TODO implement
salts = FutureSalts.from_bytes(message.body) salts = FutureSalts.from_bytes(message.body)
self._rpc_results.append((MsgId(salts.req_msg_id), message.body)) self._rpc_results.append((MsgId(salts.req_msg_id), message.body))
@ -308,11 +300,9 @@ class Encrypted(Mtp):
self._rpc_results.append((MsgId(pong.msg_id), message.body)) self._rpc_results.append((MsgId(pong.msg_id), message.body))
def _handle_destroy_session(self, message: Message) -> None: def _handle_destroy_session(self, message: Message) -> None:
# TODO implement
DestroySessionRes.from_bytes(message.body) DestroySessionRes.from_bytes(message.body)
def _handle_new_session_created(self, message: Message) -> None: def _handle_new_session_created(self, message: Message) -> None:
# TODO implement
new_session = NewSessionCreated.from_bytes(message.body) new_session = NewSessionCreated.from_bytes(message.body)
self._salts.clear() self._salts.clear()
self._salts.append( self._salts.append(
@ -339,11 +329,9 @@ class Encrypted(Mtp):
) )
def _handle_http_wait(self, message: Message) -> None: def _handle_http_wait(self, message: Message) -> None:
# TODO implement
HttpWait.from_bytes(message.body) HttpWait.from_bytes(message.body)
def _handle_update(self, message: Message) -> None: def _handle_update(self, message: Message) -> None:
# TODO if this `Updates` cannot be deserialized, `getDifference` should be used
self._updates.append(message.body) self._updates.append(message.body)
def push(self, request: bytes) -> Optional[MsgId]: def push(self, request: bytes) -> Optional[MsgId]:

View File

@ -195,15 +195,6 @@ class ChatHashCache:
elif isinstance(peer, abcs.NotifyPeer): elif isinstance(peer, abcs.NotifyPeer):
success &= self._has_notify_peer(peer) success &= self._has_notify_peer(peer)
# TODO cover?:
# ChatParticipants.participants
# PinnedDialogs.order
# FolderPeers.folder_peers
# PeerLocated.peers
# GroupCallParticipants.participants
# ChatParticipant and ChannelParticipant .prev_participant, new_participant, invite
# BotChatInviteRequester.invite
return success return success
elif isinstance(updates, types.UpdatesCombined): elif isinstance(updates, types.UpdatesCombined):
return self.extend(updates.users, updates.chats) return self.extend(updates.users, updates.chats)

View File

@ -360,7 +360,6 @@ class MessageBox:
) )
return pts.entry, None return pts.entry, None
elif local_pts + pts.pts_count < pts.pts: elif local_pts + pts.pts_count < pts.pts:
# TODO store chats too?
if __debug__: if __debug__:
self._trace( self._trace(
"Possible gap since local pts %r < %r: %s", "Possible gap since local pts %r < %r: %s",