import { getCachedMessage } from '../core/db.js'; import { logger } from '../core/logger.js'; /** * Ловит удаления. Telegram в событии deleted_business_messages присылает ТОЛЬКО * id сообщений и чат — без содержимого. Поэтому восстанавливаем из кэша, который * наполняет модуль [cache], по тройке (connId, chatId, msgId). Нашли — значит это * было входящее в личке: сохраняем как перехват владельца и уведомляем его. */ export default { name: 'antidelete', description: 'Сохраняет удалённые собеседником сообщения и медиа', async onDeleted({ connId, ownerId, ownerChatId, chatId, msgIds }, ctx) { if (!msgIds?.length) return; for (const id of msgIds) { const cached = getCachedMessage(connId, chatId, id); if (!cached) continue; // не наше/не кэшировали — пропускаем await ctx.capture('deleted', { ownerId, ownerChatId, chatId: cached.chat_id, senderId: cached.sender_id, sender: cached.sender, text: cached.text, mediaKind: cached.media_kind, mediaPath: cached.media_path, }); logger.info(`antidelete: восстановлено удалённое сообщение ${id} от ${cached.sender || '?'}`); } }, };