Files
tg_tinder_bot/scripts/README.md
2025-09-18 13:46:35 +09:00

77 lines
4.5 KiB
Markdown
Raw 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 запросов. Бот перестал реагировать на все 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-запросы
В случае обнаружения ошибок, исправьте их вручную и перезапустите бота.