What's Changed
🗄️ Новая система автоматического резервного копирования (бэкапов)
Добавлено:
- Реализован сервис автоматического создания и хранения резервных копий бд с уведомлениями в топики
- Новый файл
app/services/backup_service.py— отвечает за логику бэкапов, их запуск, остановку, хранение, удаление старых копий, компрессию, включение/выключение логов и другие параметры. - Новый файл обработчика команд администратора:
app/handlers/admin/backup.py— позволяет управлять бэкапами через админ-панель бота. - В админ-клавиатуре добавлена отдельная кнопка “🗄️ Бекапы” для управления резервными копиями.
Настройки:
- В
.env.exampleиapp/config.pyдобавлены новые переменные:BACKUP_AUTO_ENABLED— включение/выключение автосоздания бэкапов.BACKUP_INTERVAL_HOURS— интервал между бэкапами в часах.BACKUP_TIME— точное время запуска ежедневного бэкапа.BACKUP_MAX_KEEP— сколько последних копий хранить.BACKUP_COMPRESSION— включить компрессию архивов.BACKUP_INCLUDE_LOGS— включать ли логи в резервную копию.BACKUP_LOCATION— путь для хранения бэкапов.
Интеграция:
- В
main.pyпри запуске теперь происходит инициализация сервиса бэкапов:- Проверка и запуск автомата бэкапов при старте (если включено).
- Логирование успешного запуска или ошибок.
- При остановке бота сервис бэкапов корректно завершает работу.
- В
app/bot.pyподключены обработчики команд для управления бэкапами.
📖 Инструкции и права доступа
- В
README.mdдобавлены команды:mkdir -p ./logs ./data ./data/backups ./data/referral_qr— создание необходимых директорий.chmod -R 755 ./logs ./data— установка прав доступа.sudo chown -R 1000:1000 ./logs ./data— смена владельца директорий на нужного пользователя.
👨💻 Кодовая интеграция
- В конфиге инициализация сервиса бэкапов происходит через новый сервисный объект с передачей бота для возможности отправки уведомлений.
- Вся логика старта и остановки сервиса сопровождается подробным логированием для удобства отладки.
- Поддержан запуск автоматического резервирования по расписанию.
Вкратце:
Добавлен полноценный сервис бэкапов с гибкой настройкой, интеграцией в админ-панель, автоматическим запуском/остановкой, расширенными настройками и подробной документацией по установке.
👋 Настраиваемый приветственный текст
- Добавлена возможность настройки приветственного сообщения для новых пользователей через админ-панель
- Поддержка плейсхолдеров для автоматической замены имен пользователей:
{user_name}- имя или username пользователя{first_name}- только имя пользователя{username}- username с символом @{username_clean}- username без символа @
- Поддержка HTML-форматирования с валидацией поддерживаемых Telegram тегов
- Предварительный просмотр сообщения перед сохранением
- Справочная система по доступным тегам и плейсхолдерам
🔧 Административные улучшения
- Новый раздел "Приветственный текст" в админ-панели
- Валидация HTML-тегов с предупреждениями о неподдерживаемых элементах
- Возможность сброса текста на стандартный
🛠 Технические улучшения
🗄️ База данных
- Создана таблица
welcome_textsдля хранения настраиваемых приветственных сообщений - Добавлена миграция для автоматического создания новой таблицы
- Обновлена система миграций с проверкой статуса новых таблиц
🏗️ Архитектура
- Новый CRUD модуль
welcome_text.pyдля работы с приветственными текстами - Новый админский хэндлер
welcome_text.pyдля управления текстами - Обновлены клавиатуры с добавлением новых кнопок управления
- Добавлено новое состояние FSM для редактирования текста
🔒 Безопасность
- Валидация HTML-тегов для предотвращения использования неподдерживаемых элементов
- Ограничения на длину текста (10-4000 символов)
- Проверка на потенциально опасные теги
📚 Документация
- Добавлена встроенная справка по HTML-форматированию
- Справка по использованию плейсхолдеров с примерами
- Описание всех поддерживаемых Telegram тегов
🔧 Для разработчиков
Новые файлы:
app/database/crud/welcome_text.py- CRUD операцииapp/handlers/admin/welcome_text.py- админские хэндлеры
Изменённые файлы:
app/database/models.py- добавлена модель WelcomeTextapp/keyboards/admin.py- обновлены клавиатурыapp/states.py- добавлено состояние editing_welcome_textapp/handlers/start.py- интеграция с настраиваемыми текстамиapp/bot.py- регистрация новых хэндлеровapp/database/universal_migration.py- новые миграции
Примечание: При первом запуске будет использоваться стандартный приветственный текст. Настройте его через админ-панель по необходимости.
Full Changelog: v2.2.6...v2.2.7