Импорт старой переписки из экспорта Telegram Desktop

- /import: прислать result.json с подписью /import в чат или боту в личку (или ответить на файл)
- Парсер экспорта (zod): текст частями, упоминания по имени-ссылке, медиа, служебные сообщения
- Импорт идемпотентен и не перезаписывает живые сообщения и ники
- Экспорт другого чата в группе отклоняется; в личке чат определяется по экспорту
- CLI import-history для файлов больше 20 МБ
- /context показывает ID чата
- Общие downloadFile и MEDIA_LABELS для живых сообщений, фото и импорта

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
yunogasai
2026-09-24 20:18:43 +02:00
parent e812f1b1e2
commit 510221fd3c
17 changed files with 417 additions and 38 deletions

View File

@@ -4,6 +4,7 @@ export const BOT_COMMANDS = [
{ command: "persona", description: "Выбрать личность: /persona <id>" },
{ command: "context", description: "Что бот помнит о чате и видит ли переписку" },
{ command: "clear", description: "Очистить сохранённую переписку чата" },
{ command: "import", description: "Загрузить старую переписку из экспорта Telegram" },
{ command: "help", description: "Справка" },
];
@@ -18,11 +19,12 @@ export const helpText = (username: string) => `Я отвечаю только а
Участников узнаю по @нику и по имени: «что писал Иван?», «что думает @ivan про это?».
Фото тоже смотрю: пришли фото с подписью, где упомянут я, или ответь на фото командой /ask.
Чтобы я видел переписку в группе, отключи privacy mode в @BotFather (/setprivacy → Disable) или сделай меня админом группы.
Старые сообщения, написанные до моего добавления, Telegram мне не отдаёт.
Старые сообщения, написанные до моего добавления, Telegram мне не отдаёт — но их можно загрузить из экспорта.
Память:
• /context — что я помню о чате и вижу ли всю переписку
• /clear — забыть сохранённую переписку
• /import — загрузить старую переписку из экспорта Telegram Desktop (JSON)
Личности:
• /personas — список и выбор кнопками