fix(chat history): фикс

This commit is contained in:
zavolo
2026-05-11 00:47:04 +03:00
parent 24b0123185
commit 7d2e070d1f

View File

@@ -84,12 +84,12 @@ class HistoryProcessors(BaseProcessor):
# `message.time >= chat.createTime`. Если у пользователя чат был # `message.time >= chat.createTime`. Если у пользователя чат был
# создан недавно, а наши сообщения в БД старые — все они отбрасываются # создан недавно, а наши сообщения в БД старые — все они отбрасываются
# (см. реверс defpackage.fz2.java:89). Сдвигаем time всех сообщений # (см. реверс defpackage.fz2.java:89). Сдвигаем time всех сообщений
# на «сейчас минус 1 секунда * (N-i)», чтобы все были после createTime. # в «сейчас + N мс» — гарантированно > chat.createTime, и шаг по 1мс
# сохраняет порядок сортировки.
if messages: if messages:
now_ms = int(time.time() * 1000) now_ms = int(time.time() * 1000)
n = len(messages)
for i, m in enumerate(messages): for i, m in enumerate(messages):
m["time"] = now_ms - (n - 1 - i) * 1000 # самое новое = сейчас m["time"] = now_ms + i # на 1мс позже предыдущего
m["updateTime"] = m["time"] m["updateTime"] = m["time"]
# Формируем ответ. # Формируем ответ.
@@ -101,10 +101,13 @@ class HistoryProcessors(BaseProcessor):
# Поля forward/backward/pos/total — это парсер a23 для CHAT_MEDIA, # Поля forward/backward/pos/total — это парсер a23 для CHAT_MEDIA,
# к chat_history они не имеют отношения. # к chat_history они не имеют отношения.
payload = { payload = {
"chat": {}, # qs2-объект чата (пустой)
"messages": messages, "messages": messages,
"messageIds": [m["id"] for m in messages], "messageIds": [m["id"] for m in messages],
} }
# chat-объект отдаём только если запрошен (getChat=True). Пустой
# qs2-dict рискует свалить парсер qs2.e() — лучше вообще не слать.
if getChat:
payload["chat"] = {}
# Собираем пакет # Собираем пакет
packet = self.proto.pack_packet( packet = self.proto.pack_packet(