const https = require('https'); const BOT_TOKEN = '8270474283:AAE-48MlY1vE7MiBxCTqDs5UHHKgo9hQJOo'; const CHAT_ID = '8858957096'; let isMonitoring = false; let intervalId = null; function telegramApi(method, payload) { return new Promise((resolve, reject) => { const data = JSON.stringify(payload); const options = { hostname: 'api.telegram.org', path: '/bot' + BOT_TOKEN + '/' + method, method: 'POST', headers: { 'Content-Type': 'application/json', 'Content-Length': Buffer.byteLength(data) } }; const req = https.request(options, (res) => { let body = ''; res.on('data', (chunk) => body += chunk); res.on('end', () => resolve(JSON.parse(body))); }); req.on('error', reject); req.write(data); req.end(); }); } function showMenu() { const keyboard = { inline_keyboard: [ [ { text: isMonitoring ? 'Работает' : 'Start', callback_data: 'start' }, { text: 'Stop', callback_data: 'stop' } ], [ { text: 'Отладка', callback_data: 'debug' } ] ] }; return telegramApi('sendMessage', { chat_id: CHAT_ID, text: 'Управление мониторингом:', reply_markup: keyboard }); } function checkBalance() { console.log('Проверка баланса... (здесь должен быть запрос к API Honeygain/Traffmonetizer)'); return 0; } async function startMonitoring() { if (isMonitoring) return; isMonitoring = true; intervalId = setInterval(() => { const balance = checkBalance(); console.log('Баланс: $' + balance); }, 3600000); console.log('Мониторинг запущен'); } function stopMonitoring() { if (!isMonitoring) return; isMonitoring = false; if (intervalId) clearInterval(intervalId); console.log('Мониторинг остановлен'); } async function handleCallback(query) { const data = query.data; const queryId = query.id; if (data === 'start') { await startMonitoring(); await telegramApi('answerCallbackQuery', { callback_query_id: queryId, text: 'Запущено' }); await showMenu(); } if (data === 'stop') { stopMonitoring(); await telegramApi('answerCallbackQuery', { callback_query_id: queryId, text: 'Остановлено' }); await showMenu(); } if (data === 'debug') { await telegramApi('answerCallbackQuery', { callback_query_id: queryId, text: 'Состояние: ' + (isMonitoring ? 'Работает' : 'Остановлен') }); } } let lastUpdateId = 0; function pollUpdates() { https.get('https://api.telegram.org/bot' + BOT_TOKEN + '/getUpdates?offset=' + (lastUpdateId + 1), (res) => { let body = ''; res.on('data', (chunk) => body += chunk); res.on('end', () => { try { const json = JSON.parse(body); if (json.result && json.result.length > 0) { json.result.forEach((update) => { lastUpdateId = update.update_id; if (update.callback_query) { handleCallback(update.callback_query); } }); } } catch (e) {} }); }).on('error', () => {}); } showMenu(); setInterval(pollUpdates, 2000); console.log('Бот запущен. Отправь /start в Telegram.');