alpha-test
This commit is contained in:
85
scripts/testCallbacks.js
Normal file
85
scripts/testCallbacks.js
Normal file
@@ -0,0 +1,85 @@
|
||||
// Скрипт для проверки работы 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();
|
||||
Reference in New Issue
Block a user