pre-deploy commit
This commit is contained in:
@@ -1,76 +1,49 @@
|
||||
# Исправление проблем с уведомлениями в боте
|
||||
# Структура скриптов в директории `/scripts`
|
||||
|
||||
Этот набор скриптов предназначен для исправления проблем с обработкой уведомлений в боте.
|
||||
Эта директория содержит вспомогательные скрипты для работы с Telegram Tinder Bot.
|
||||
|
||||
## Описание проблемы
|
||||
## Основные скрипты
|
||||
|
||||
После внедрения системы уведомлений и связанных с ней изменений в базе данных, возникла проблема с обработкой callback запросов. Бот перестал реагировать на все callback запросы, кроме тех, что связаны с уведомлениями.
|
||||
- `startup.sh` - Скрипт запуска бота в Docker-контейнере
|
||||
- `migrate-sync.js` - Синхронизация миграций базы данных
|
||||
- `createNotificationTables.js` - Создание таблиц для системы уведомлений
|
||||
- `add-hobbies-column.js` - Добавление колонки интересов в профиль
|
||||
- `create_profile_fix.js` - Исправление профилей пользователей
|
||||
- `createProfileViewsTable.js` - Создание таблицы для учета просмотров профилей
|
||||
- `update_bot_with_notifications.js` - Обновление бота с поддержкой уведомлений
|
||||
|
||||
Проблема вызвана следующими факторами:
|
||||
1. Отсутствие или неверная структура таблиц в базе данных для хранения уведомлений
|
||||
2. Отсутствие необходимых полей `state` и `state_data` в таблице `users`
|
||||
3. Отсутствие правильной регистрации обработчиков уведомлений в файле `bot.ts`
|
||||
## Директории
|
||||
|
||||
## Решение
|
||||
- `/legacy` - Устаревшие и тестовые скрипты, сохраненные для истории
|
||||
|
||||
Для решения проблемы были созданы следующие скрипты:
|
||||
## Использование скриптов
|
||||
|
||||
### 1. `fix_notification_callbacks.js`
|
||||
Проверяет и создает необходимые таблицы и столбцы в базе данных:
|
||||
- Таблицы `notifications`, `scheduled_notifications`, `notification_templates`
|
||||
- Столбцы `notification_settings`, `state`, `state_data` в таблице `users`
|
||||
Скрипты JavaScript можно запускать с помощью Node.js:
|
||||
|
||||
### 2. `update_bot_with_notifications.js`
|
||||
Обновляет файл `bot.ts`:
|
||||
- Добавляет импорт класса `NotificationHandlers`
|
||||
- Добавляет объявление поля `notificationHandlers` в класс `TelegramTinderBot`
|
||||
- Добавляет создание экземпляра `NotificationHandlers` в конструкторе
|
||||
- Добавляет регистрацию обработчиков уведомлений в методе `registerHandlers`
|
||||
```bash
|
||||
node scripts/script-name.js
|
||||
```
|
||||
|
||||
### 3. `fix_all_notifications.js`
|
||||
Запускает оба скрипта последовательно для полного исправления проблемы
|
||||
Bash скрипты должны быть сделаны исполняемыми:
|
||||
|
||||
## Как использовать
|
||||
```bash
|
||||
chmod +x scripts/script-name.sh
|
||||
./scripts/script-name.sh
|
||||
```
|
||||
|
||||
1. Остановите бота, если он запущен:
|
||||
```bash
|
||||
# Нажмите Ctrl+C в терминале, где запущен бот
|
||||
# или найдите процесс и завершите его
|
||||
```
|
||||
## Добавление новых скриптов
|
||||
|
||||
2. Запустите комплексный скрипт исправления:
|
||||
```bash
|
||||
node scripts/fix_all_notifications.js
|
||||
```
|
||||
При добавлении новых скриптов соблюдайте следующие правила:
|
||||
1. Используйте понятное имя файла, отражающее его назначение
|
||||
2. Добавьте комментарии в начало файла с описанием его функциональности
|
||||
3. Добавьте запись об этом скрипте в текущий файл README.md
|
||||
|
||||
3. После успешного выполнения скрипта перезапустите бота:
|
||||
```bash
|
||||
npm run start
|
||||
```
|
||||
## Скрипты миграций
|
||||
|
||||
## Проверка результата
|
||||
Миграции базы данных следует создавать с помощью команды:
|
||||
|
||||
После запуска бота убедитесь, что:
|
||||
1. Бот отвечает на все callback запросы (включая кнопки, не связанные с уведомлениями)
|
||||
2. Настройки уведомлений работают корректно (команда /notifications или кнопка в меню настроек)
|
||||
3. Уведомления о лайках, супер-лайках и новых матчах приходят пользователям
|
||||
```bash
|
||||
npm run migrate:create your_migration_name
|
||||
```
|
||||
|
||||
## Если проблемы остались
|
||||
|
||||
Если после выполнения всех шагов проблемы остались, выполните следующие проверки:
|
||||
|
||||
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-запросы
|
||||
|
||||
В случае обнаружения ошибок, исправьте их вручную и перезапустите бота.
|
||||
Это создаст файл миграции в директории `/migrations`.
|
||||
|
||||
Reference in New Issue
Block a user