77 lines
4.5 KiB
Markdown
77 lines
4.5 KiB
Markdown
# Исправление проблем с уведомлениями в боте
|
||
|
||
Этот набор скриптов предназначен для исправления проблем с обработкой уведомлений в боте.
|
||
|
||
## Описание проблемы
|
||
|
||
После внедрения системы уведомлений и связанных с ней изменений в базе данных, возникла проблема с обработкой callback запросов. Бот перестал реагировать на все callback запросы, кроме тех, что связаны с уведомлениями.
|
||
|
||
Проблема вызвана следующими факторами:
|
||
1. Отсутствие или неверная структура таблиц в базе данных для хранения уведомлений
|
||
2. Отсутствие необходимых полей `state` и `state_data` в таблице `users`
|
||
3. Отсутствие правильной регистрации обработчиков уведомлений в файле `bot.ts`
|
||
|
||
## Решение
|
||
|
||
Для решения проблемы были созданы следующие скрипты:
|
||
|
||
### 1. `fix_notification_callbacks.js`
|
||
Проверяет и создает необходимые таблицы и столбцы в базе данных:
|
||
- Таблицы `notifications`, `scheduled_notifications`, `notification_templates`
|
||
- Столбцы `notification_settings`, `state`, `state_data` в таблице `users`
|
||
|
||
### 2. `update_bot_with_notifications.js`
|
||
Обновляет файл `bot.ts`:
|
||
- Добавляет импорт класса `NotificationHandlers`
|
||
- Добавляет объявление поля `notificationHandlers` в класс `TelegramTinderBot`
|
||
- Добавляет создание экземпляра `NotificationHandlers` в конструкторе
|
||
- Добавляет регистрацию обработчиков уведомлений в методе `registerHandlers`
|
||
|
||
### 3. `fix_all_notifications.js`
|
||
Запускает оба скрипта последовательно для полного исправления проблемы
|
||
|
||
## Как использовать
|
||
|
||
1. Остановите бота, если он запущен:
|
||
```bash
|
||
# Нажмите Ctrl+C в терминале, где запущен бот
|
||
# или найдите процесс и завершите его
|
||
```
|
||
|
||
2. Запустите комплексный скрипт исправления:
|
||
```bash
|
||
node scripts/fix_all_notifications.js
|
||
```
|
||
|
||
3. После успешного выполнения скрипта перезапустите бота:
|
||
```bash
|
||
npm run start
|
||
```
|
||
|
||
## Проверка результата
|
||
|
||
После запуска бота убедитесь, что:
|
||
1. Бот отвечает на все callback запросы (включая кнопки, не связанные с уведомлениями)
|
||
2. Настройки уведомлений работают корректно (команда /notifications или кнопка в меню настроек)
|
||
3. Уведомления о лайках, супер-лайках и новых матчах приходят пользователям
|
||
|
||
## Если проблемы остались
|
||
|
||
Если после выполнения всех шагов проблемы остались, выполните следующие проверки:
|
||
|
||
1. Проверьте логи бота на наличие ошибок
|
||
2. Проверьте структуру базы данных:
|
||
```sql
|
||
\dt -- Список всех таблиц
|
||
\d notifications -- Структура таблицы notifications
|
||
\d scheduled_notifications -- Структура таблицы scheduled_notifications
|
||
\d notification_templates -- Структура таблицы notification_templates
|
||
\d users -- Убедитесь, что поля state, state_data и notification_settings существуют
|
||
```
|
||
|
||
3. Проверьте код в файлах:
|
||
- `src/bot.ts`: должен содержать импорт, создание и регистрацию `NotificationHandlers`
|
||
- `src/handlers/callbackHandlers.ts`: должен правильно обрабатывать все callback-запросы
|
||
|
||
В случае обнаружения ошибок, исправьте их вручную и перезапустите бота.
|