/
dracat
/
whatsup2md
Обзор
Документация
Войти
/
dracat
/
whatsup2md
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
debug.js
94 строки
4 KB
Марченков Сергей Анатольевич
Добавлен скрипт debug.js для мониторинга процесса синхронизации в реальном времени
27 фев 2026, 03:36
27 фев 2026, 03:36
a5ed045
Код
Авторство
О чём код?
const { default: makeWASocket, useMultiFileAuthState, fetchLatestWaWebVersion, makeInMemoryStore, Browsers } = require('@whiskeysockets/baileys'); const pino = require('pino'); const path = require('path'); const fs = require('fs'); async function debugSync() { const basedir = path.resolve('./whatsapp_data'); const authDir = path.join(basedir, '.auth'); const logger = pino({ level: 'error' }); const store = makeInMemoryStore({ logger }); console.log('🧪 Запуск отладки синхронизации...'); // 1. Проверка наличия сессии if (!fs.existsSync(path.join(authDir, 'creds.json'))) { console.log('❌ Сессия не найдена. Сначала запустите основной скрипт для входа через QR.'); process.exit(1); } const { state, saveCreds } = await useMultiFileAuthState(authDir); const { version } = await fetchLatestWaWebVersion(); const sock = makeWASocket({ version, auth: state, logger, browser: Browsers.macOS('Chrome'), syncFullHistory: true }); store.bind(sock.ev); sock.ev.on('creds.update', saveCreds); sock.ev.on('connection.update', (update) => { const { connection, lastDisconnect } = update; if (connection === 'open') { console.log('✅ Соединение установлено успешно.'); } else if (connection === 'close') { console.log('ℹ️ Соединение закрыто:', lastDisconnect?.error?.message); } }); // Мониторинг входящих событий истории sock.ev.on('messaging-history.set', ({ chats, messages }) => { console.log(`📊 [EVENT] messaging-history.set: ${chats.length} чатов, ${messages.length} сообщений`); }); sock.ev.on('chats.upsert', (chats) => { console.log(`📊 [EVENT] chats.upsert: ${chats.length} чатов`); }); sock.ev.on('messages.upsert', ({ messages }) => { console.log(`📊 [EVENT] messages.upsert: ${messages.length} новых сообщений`); }); // Каждые 5 секунд выводим статус хранилища const interval = setInterval(() => { const chatCount = store.chats.all().length; const msgCount = Object.values(store.messages).reduce((acc, m) => acc + m.length, 0); console.log(`----------------------------------------`); console.log(`🕒 ${new Date().toLocaleTimeString()}`); console.log(`📂 Чатов в памяти: ${chatCount}`); console.log(`✉️ Сообщений в памяти: ${msgCount}`); if (chatCount > 0) { console.log('📝 Список последних 5 активных чатов:'); store.chats.all().slice(0, 5).forEach(c => { const msgs = store.messages[c.id]?.length || 0; console.log(` - ${c.name || c.id} (${c.id}) [сообщений: ${msgs}]`); }); } if (chatCount > 0 && msgCount > 0) { console.log('✅ Данные начали поступать! Теперь можно запускать index.js'); } }, 5000); // Выход через 5 минут или по Ctrl+C setTimeout(() => { console.log('⏹️ Завершение сеанса отладки.'); clearInterval(interval); process.exit(0); }, 300000); } debugSync().catch(console.error);