有些聊天被忽略
你好! 最新的 tdlib 忽略了一些对话。 ### 重现步骤 1. 登录具有大量聊天记录的帐户,我的情况下是 331。 2. 调用 loadChats 直到返回 404。 3. 调用 getChats 并检查 total_count。 ### 实际行为 在我的情况下,返回了 284 条聊天记录,但实际上我主列表中有超过 300 条聊天记录。 ### 预期行为 在多次调用 loadChats 并接收到 404 后,getChats 必须返回所有聊天记录。 ### 其他上下文 我使用 pyrogram 库来获取有关我的对话的信息。 第一次请求: raw.functions.messages.GetDialogs( offset_date=0, offset_id=0, offset_peer=raw.types.InputPeerEmpty(), limit=1, hash=0) 以及同样的请求,但使用 folder_id 1 获取存档中的聊天记录信息: raw.functions.messages.GetDialogs( offset_date=0, offset_id=0, offset_peer=raw.types.InputPeerEmpty(), limit=1, hash=0, folder_id=1) 对第一次请求的响应中返回了包含 count=391 的对象,对第二次请求的响应中返回了 count=62。 实际上,我有 391 - 62 = 329 个对话。 此外,在 tdlib 日志中,我发现了以下事件: [ 3][t 4][1781889139.826225996][MessagesManager.cpp:26427][#1][!Td] Send updateUnreadChatCount in Main chat list to 284/331+1/2/2/0/0 from get chat list and chat 0 我不知道为什么是 331 而不是 329,但 tdlib 似乎知道其他聊天记录,但并没有返回其中的一些。 使用 pyrogram 从文件夹 0 获取对话记录时,返回的 count=329,因此我主列表中至少有 329 条对话。 最后,使用 Unigram 清除应用程序数据并重新登录也显示了上述问题,只有 284 条聊天记录被加载到 UI 中。 我还没有找到在 tdlib 中获取这些聊天记录的方法,除了使用 searchChatsOnServer 来查找它们。 这些聊天记录(至少 1 个)在启动时作为 updateNewChat 发送,但没有位置;在重启时,这些聊天记录根本不会作为 update 发送。 UPD: unigram 在测试时使用了 tdlib 1.8.64。
内容来源: tdlib/td