github jatixs/tgbotvpscp 1.10.12

latest releases: 1.13.2, 1.13.1, 1.13.0...
2 months ago

English Version | Русская Версия

📝 Telegram VPS Management Bot — Changelog

Version 1.10.12 Build 38 Date October 2025 Status Stable


[1.10.12] - 2025-10-25

Что нового?

🚀 Добавлено:

  • Многоязычность (i18n):
    • Добавлена полная поддержка русского и английского языков для всех сообщений бота, кнопок, меню, ошибок и уведомлений.
    • Внедрён новый модуль core/i18n.py для управления переводами, включающий словарь STRINGS, функции загрузки/сохранения настроек (load_user_settings, save_user_settings), определения (get_user_lang) и установки (set_user_lang) языка пользователя, а также основную функцию перевода get_text (псевдоним _).
    • Пользователи могут выбирать язык через новую кнопку "🇷🇺 Язык" / "🇬🇧 Language" в главном меню, настройки сохраняются в config/user_settings.json.
    • Добавлен фильтр I18nFilter для Aiogram, позволяющий хэндлерам реагировать на текстовые команды независимо от языка.
    • Добавлена инлайн-клавиатура для выбора языка (get_language_keyboard).
  • Документация: Добавлены английские версии README.en.md и CHANGELOG.en.md с ссылками для переключения.
  • Скрипт установки: Добавлен англоязычный скрипт deploy_en.sh.
  • Зависимости: iperf3 добавлен как зависимость, устанавливаемая через deploy.sh / deploy_en.sh.

✨ Улучшено:

  • Структура кода: Все пользовательские строки вынесены из кода модулей и ядра в core/i18n.py.
  • Модуль speedtest:
    • Полностью переписан для использования iperf3 вместо speedtest-cli.
    • Реализован поиск ближайшего сервера iperf3 по пингу с приоритезацией по стране/континенту VPS.
    • Добавлено редактирование сообщения для отображения статуса теста (поиск, пинг, скачивание, загрузка).
    • Реализовано несколько попыток подключения к разным серверам в случае ошибки.
  • Модуль traffic:
    • Добавлена инлайн-кнопка "⏹ Остановить" в сообщение с мониторингом трафика.
    • Повторное нажатие основной кнопки теперь не останавливает мониторинг, для этого используется инлайн-кнопка.
  • Watchdog (watchdog.py):
    • Все сообщения об ошибках и статусах теперь используют систему i18n (на языке по умолчанию).
    • Улучшена обработка ошибок сети (requests.exceptions.RequestException) и ошибок декодирования JSON при отправке/редактировании сообщений Telegram.
    • Улучшена логика определения статуса inactive/failed при ошибках systemctl.
    • Добавлены отдельные статусы/сообщения для планового перезапуска бота и самого watchdog.
  • Логирование:
    • Реализована ежедневная ротация лог-файлов для bot.py и watchdog.py.
    • Логи бота и watchdog теперь сохраняются в отдельные поддиректории (logs/bot/, logs/watchdog/).
  • Модуль users: При удалении пользователя теперь также удаляются его языковые настройки и настройки уведомлений.
  • Модуль xray: Скорректированы команды обновления Xray для Amnezia (добавлена установка wget/unzip) и Marzban (добавлена проверка наличия .env).
  • Утилиты (core/utils.py): Функции format_traffic и format_uptime теперь поддерживают i18n для единиц измерения.
  • Клавиатуры (core/keyboards.py): Все тексты кнопок теперь переводятся на язык пользователя.

🔧 Исправлено:

  • i18n:
    • Исправлена обработка нечисловых user_id при установке языка.
    • Добавлена обработка ошибок форматирования строк и проверка на существование ключа перевода в get_text.
  • Модуль users: Исправлено использование строковых ключей (admins/users) вместо локализованных названий в callback_data при смене группы.
  • Циклические импорты: Устранены потенциальные циклические импорты между core/shared_state.py и core/i18n.py.
  • Импорты: Исправлены относительные импорты (from . import ...) в ядре для корректной работы.
  • Модуль selftest: Импорт _ перенесен внутрь хэндлера для избежания проблем с инициализацией i18n.

Версия 1.10.12 (Build 38) — Добавлена полная поддержка русского и английского языков (i18n), переписан модуль Speedtest на iperf3.


Full Changelog: 1.10.11-37...1.10.12

Don't miss a new tgbotvpscp release

NewReleases is sending notifications on new releases.