105 lines
4.7 KiB
JavaScript
105 lines
4.7 KiB
JavaScript
/**
|
||
* Скрипт для проверки и исправления регистрации NotificationHandlers в bot.ts
|
||
*/
|
||
|
||
const fs = require('fs');
|
||
const path = require('path');
|
||
|
||
const botFilePath = path.join(__dirname, '../src/bot.ts');
|
||
|
||
// Проверка существования файла bot.ts
|
||
if (!fs.existsSync(botFilePath)) {
|
||
console.error(`❌ Файл ${botFilePath} не найден`);
|
||
process.exit(1);
|
||
}
|
||
|
||
// Чтение содержимого файла bot.ts
|
||
let botContent = fs.readFileSync(botFilePath, 'utf8');
|
||
|
||
// Проверка импорта NotificationHandlers
|
||
if (!botContent.includes('import { NotificationHandlers }')) {
|
||
console.log('Добавляем импорт NotificationHandlers в bot.ts...');
|
||
|
||
// Находим последний импорт
|
||
const importRegex = /^import.*?;/gms;
|
||
const matches = [...botContent.matchAll(importRegex)];
|
||
|
||
if (matches.length > 0) {
|
||
const lastImport = matches[matches.length - 1][0];
|
||
const lastImportIndex = botContent.lastIndexOf(lastImport) + lastImport.length;
|
||
|
||
// Добавляем импорт NotificationHandlers
|
||
botContent =
|
||
botContent.slice(0, lastImportIndex) +
|
||
'\nimport { NotificationHandlers } from \'./handlers/notificationHandlers\';\n' +
|
||
botContent.slice(lastImportIndex);
|
||
|
||
console.log('✅ Импорт NotificationHandlers добавлен');
|
||
} else {
|
||
console.error('❌ Не удалось найти место для добавления импорта');
|
||
}
|
||
}
|
||
|
||
// Проверка объявления NotificationHandlers в классе
|
||
if (!botContent.includes('private notificationHandlers')) {
|
||
console.log('Добавляем объявление notificationHandlers в класс...');
|
||
|
||
const classPropertiesRegex = /class TelegramTinderBot {([^}]+?)constructor/s;
|
||
const classPropertiesMatch = botContent.match(classPropertiesRegex);
|
||
|
||
if (classPropertiesMatch) {
|
||
const classProperties = classPropertiesMatch[1];
|
||
const updatedProperties = classProperties + ' private notificationHandlers: NotificationHandlers;\n ';
|
||
|
||
botContent = botContent.replace(classPropertiesRegex, `class TelegramTinderBot {${updatedProperties}constructor`);
|
||
|
||
console.log('✅ Объявление notificationHandlers добавлено');
|
||
} else {
|
||
console.error('❌ Не удалось найти место для добавления объявления notificationHandlers');
|
||
}
|
||
}
|
||
|
||
// Проверка создания экземпляра NotificationHandlers в конструкторе
|
||
if (!botContent.includes('this.notificationHandlers = new NotificationHandlers')) {
|
||
console.log('Добавляем инициализацию notificationHandlers в конструктор...');
|
||
|
||
const initializationRegex = /(this\.callbackHandlers = new CallbackHandlers[^;]+;)/;
|
||
const initializationMatch = botContent.match(initializationRegex);
|
||
|
||
if (initializationMatch) {
|
||
const callbackHandlersInit = initializationMatch[1];
|
||
const updatedInit = callbackHandlersInit + '\n this.notificationHandlers = new NotificationHandlers(this.bot);';
|
||
|
||
botContent = botContent.replace(initializationRegex, updatedInit);
|
||
|
||
console.log('✅ Инициализация notificationHandlers добавлена');
|
||
} else {
|
||
console.error('❌ Не удалось найти место для добавления инициализации notificationHandlers');
|
||
}
|
||
}
|
||
|
||
// Проверка регистрации notificationHandlers в методе registerHandlers
|
||
if (!botContent.includes('this.notificationHandlers.register()')) {
|
||
console.log('Добавляем регистрацию notificationHandlers...');
|
||
|
||
const registerHandlersRegex = /(private registerHandlers\(\): void {[^}]+?)}/s;
|
||
const registerHandlersMatch = botContent.match(registerHandlersRegex);
|
||
|
||
if (registerHandlersMatch) {
|
||
const registerHandlersBody = registerHandlersMatch[1];
|
||
const updatedBody = registerHandlersBody + '\n // Обработчики уведомлений\n this.notificationHandlers.register();\n }';
|
||
|
||
botContent = botContent.replace(registerHandlersRegex, updatedBody);
|
||
|
||
console.log('✅ Регистрация notificationHandlers добавлена');
|
||
} else {
|
||
console.error('❌ Не удалось найти место для добавления регистрации notificationHandlers');
|
||
}
|
||
}
|
||
|
||
// Запись обновленного содержимого в файл
|
||
fs.writeFileSync(botFilePath, botContent, 'utf8');
|
||
|
||
console.log('✅ Файл bot.ts успешно обновлен');
|
||
console.log('🔔 Перезапустите бота для применения изменений');
|