github BEDOLAGA-DEV/remnawave-bedolaga-telegram-bot v2.2.7

latest releases: v3.11.0, v3.10.3, v3.10.2...
5 months ago

What's Changed

  • Бекапы/Восстановление by @Fr1ngg in #51
  • Редактируемое приветственное сообщение by @Fr1ngg in #52

🗄️ Новая система автоматического резервного копирования (бэкапов)

Добавлено:

  • Реализован сервис автоматического создания и хранения резервных копий бд с уведомлениями в топики
  • Новый файл 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 - добавлена модель WelcomeText
  • app/keyboards/admin.py - обновлены клавиатуры
  • app/states.py - добавлено состояние editing_welcome_text
  • app/handlers/start.py - интеграция с настраиваемыми текстами
  • app/bot.py - регистрация новых хэндлеров
  • app/database/universal_migration.py - новые миграции

Примечание: При первом запуске будет использоваться стандартный приветственный текст. Настройте его через админ-панель по необходимости.

Full Changelog: v2.2.6...v2.2.7

Don't miss a new remnawave-bedolaga-telegram-bot release

NewReleases is sending notifications on new releases.