Files
tg_tinder_bot/scripts/legacy/testCallbacks.js
2025-09-18 14:19:49 +09:00

86 lines
3.5 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Скрипт для проверки работы callback-хэндлеров и уведомлений
require('dotenv').config();
const TelegramBot = require('node-telegram-bot-api');
const { Pool } = require('pg');
// Создаем пул соединений
const pool = new Pool({
user: process.env.DB_USERNAME,
host: process.env.DB_HOST,
database: process.env.DB_NAME,
password: process.env.DB_PASSWORD,
port: parseInt(process.env.DB_PORT || '5432')
});
// Функция для имитации callback-запроса к боту
async function testCallback() {
try {
console.log('Начинаем тестирование callback-хэндлеров и уведомлений...');
// Используем последнего пользователя из базы данных
const userResult = await pool.query(`
SELECT * FROM users ORDER BY last_active_at DESC NULLS LAST LIMIT 1
`);
if (userResult.rows.length === 0) {
console.error('❌ Пользователи не найдены в базе данных');
return;
}
const user = userResult.rows[0];
console.log(`Выбран тестовый пользователь: ${user.first_name || 'Без имени'} (ID: ${user.telegram_id})`);
// Получаем токен бота из переменных окружения
const token = process.env.TELEGRAM_BOT_TOKEN;
if (!token) {
console.error('❌ Токен бота не найден в переменных окружения');
return;
}
// Создаем экземпляр бота
const bot = new TelegramBot(token);
// Отправляем тестовое уведомление пользователю
console.log(`Отправляем тестовое уведомление пользователю ID: ${user.telegram_id}...`);
try {
const result = await bot.sendMessage(
user.telegram_id,
`🔔 *Тестовое уведомление*\n\nЭто проверка работы уведомлений и callback-хэндлеров.\n\nВаш премиум-статус: ${user.premium ? '✅ Активен' : '❌ Не активен'}`,
{
parse_mode: 'Markdown',
reply_markup: {
inline_keyboard: [
[
{ text: '🔔 Уведомления', callback_data: 'notification_settings' },
{ text: '❤️ Профиль', callback_data: 'view_profile' }
],
[
{ text: '⚙️ Настройки', callback_data: 'settings' }
]
]
}
}
);
console.log('✅ Тестовое сообщение успешно отправлено!');
console.log('Информация о сообщении:', JSON.stringify(result, null, 2));
} catch (error) {
console.error('❌ Ошибка при отправке тестового сообщения:', error.message);
if (error.response && error.response.body) {
console.error('Детали ошибки:', JSON.stringify(error.response.body, null, 2));
}
}
} catch (error) {
console.error('❌ Ошибка при тестировании:', error);
} finally {
await pool.end();
console.log('Соединение с базой данных закрыто');
console.log('Тестирование завершено!');
}
}
// Запускаем тестирование
testCallback();