246 Commits

Author SHA1 Message Date
Egor
17b442ad07 Update config.py 2026-01-17 02:49:14 +03:00
Egor
02ae44a594 Merge pull request #2298 from Gy9vin/main
Мониторинг трафика v2
2026-01-16 17:56:10 +03:00
PEDZEO
b392a99f56 Интеграция системы мониторинга банов 2026-01-16 15:17:02 +03:00
gy9vin
1c2dca2c65 fix(traffic): исправлены критические баги мониторинга трафика v2
- Исправлен баг с пустым snapshot {} (не распознавался как существующий)
- Исправлено игнорирование комментариев в TRAFFIC_MONITORED_NODES
- Добавлено исключение пользователей по UUID (TRAFFIC_EXCLUDED_USER_UUIDS)
- Добавлены названия нод в уведомления о превышении трафика
- Улучшено логирование: кулдаун, фильтры, исключённые пользователи
- Исправлен баг с блокировкой имён типа "Сейтмеметов" (ложное срабатывание на "тме")
- Разрешён конфликт слияния в display_name_restriction.py

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 12:19:29 +03:00
gy9vin
ab492f3aef Мониторинг и исправления защиты имени пользователя! 2026-01-16 12:18:04 +03:00
Mikhail
1c7ed68674 Merge branch 'main' into main 2026-01-16 12:16:23 +03:00
Egor
be9d7290cb Update config.py 2026-01-16 04:56:34 +03:00
Egor
79904b58a9 Update config.py 2026-01-15 18:42:23 +03:00
PEDZEO
a53219525f Merge pull request #2284 from BEDOLAGA-DEV/buttons
Enhance ban notification system with delete functionality and improve…
2026-01-14 14:56:43 +03:00
PEDZEO
c868ef3b69 Enhance ban notification system with delete functionality and improved message formatting
- Added a new handler to delete ban notifications upon user interaction.
- Introduced a delete button in ban notifications for better user experience.
- Updated ban notification messages to include node information more prominently.
- Refactored the BanNotificationService to send messages with the delete button included.
2026-01-14 14:50:00 +03:00
PEDZEO
34b87cba88 Merge pull request #2283 from BEDOLAGA-DEV/buttons
Enhance ban notification messages and service to include node informa…
2026-01-14 14:10:24 +03:00
PEDZEO
3aa5e304c3 Enhance ban notification messages and service to include node information
- Updated ban notification messages to provide detailed reasons for account bans, including node information.
- Refactored the BanNotificationService to safely format messages with optional node details.
- Modified API routes and schemas to support the inclusion of node names in ban notifications.
2026-01-14 14:03:09 +03:00
PEDZEO
b49031ea72 Merge pull request #2282 from BEDOLAGA-DEV/buttons
Add ban notification messages and refactor notification service
2026-01-14 07:33:02 +03:00
PEDZEO
243eef066c Add ban notification messages and refactor notification service
- Introduced new ban notification messages for device limit, WiFi, and mobile network violations in the configuration.
- Refactored the BanNotificationService to utilize the new messages from the configuration for sending notifications.
- Added a new method to handle mobile network ban notifications.
- Updated API routes to support the new notification type for mobile network bans.
2026-01-14 07:25:09 +03:00
Egor
6bea51b6dc Update config.py 2026-01-14 04:14:29 +03:00
Egor
4730cf30e9 Update config.py 2026-01-13 16:30:27 +03:00
Egor
ce7d7a206c Update config.py 2026-01-13 16:24:48 +03:00
Egor
fe4e261115 Merge pull request #2275 from BEDOLAGA-DEV/buttons
Buttons
2026-01-13 03:33:39 +03:00
Egor
e92b14391b Update config.py 2026-01-13 00:07:09 +03:00
PEDZEO
ac5850746e Merge pull request #2271 from BEDOLAGA-DEV/main
merge main
2026-01-12 22:25:49 +03:00
Egor
538c002f8f Add files via upload 2026-01-12 15:25:47 +03:00
PEDZEO
15f6108674 feat(tariffs): добавлена поддержка докупки трафика и улучшения тарифов
- Реализована возможность докупки трафика для тарифов с новыми параметрами: traffic_topup_enabled, traffic_topup_packages и max_topup_traffic_gb.
- Обновлены схемы и маршруты для управления тарифами и трафиком.
- Добавлены новые эндпоинты для работы с докупкой трафика в мини-приложении.
- Обновлены настройки и логика для проверки доступности докупки трафика в зависимости от тарифа.
- Внедрены улучшения в обработку платежей через Freekassa.

Обновлён .env.example с новыми параметрами для режима тарифов.
2026-01-12 07:47:35 +03:00
PEDZEO
0e24a5505c feat(subscription): добавлены новые функции для управления тарифами и трафиком
- Обновлены схемы и маршруты для поддержки покупки тарифов и управления трафиком.
- Реализована синхронизация тарифов и серверов из RemnaWave при запуске.
- Добавлены новые параметры в тарифы: server_traffic_limits и allow_traffic_topup.
- Обновлены настройки и логика для проверки доступности докупки трафика в зависимости от тарифа.
- Внедрены новые эндпоинты для работы с колесом удачи и обработка платежей через Stars.

Обновлён .env.example с новыми параметрами для режима продаж подписок.
2026-01-12 07:41:10 +03:00
Egor
011f4428e2 Update config.py 2026-01-10 19:41:18 +03:00
gy9vin
6e1d671df2 feat(traffic): добавлен новый мониторинг трафика v2 с проверкой дельты и snapshot
Новый функционал:
- Быстрая проверка (TRAFFIC_FAST_CHECK_*) — отслеживает дельту трафика за интервал через snapshot
- Суточная проверка (TRAFFIC_DAILY_CHECK_*) — анализирует трафик за 24 часа через bandwidth API
- Фильтрация по нодам (TRAFFIC_MONIT
2026-01-10 00:47:23 +03:00
gy9vin
eaeb6def51 feat(config): добавлено предупреждение после пополнения и обновлён .env.example
Новый функционал:
- SHOW_ACTIVATION_PROMPT_AFTER_TOPUP — показывает предупреждение с кнопками
  "Активировать", "Продлить", "Добавить устройства" после пополнения баланса,
  если подписка не активна (режим для новичков)

Обновлён .env.example (+138 строк):
- Redis: CART_TTL_SECONDS
- Remnawave: AUTO_SYNC_*, TRIAL_USER_TAG, PAID_SUBSCRIPTION_USER_TAG
- Трафик: BUY_TRAFFIC_BUTTON_VISIBLE, PRICE_TRAFFIC_UNLIMITED
- Автопродление: ENABLE_AUTOPAY
- Конкурсы: REFERRAL_CONTESTS_ENABLED
- YooKassa: TRUSTED_PROXY_NETWORKS
- Mulenpay: DISPLAY_NAME, IFRAME_EXPECTED_ORIGIN, DISPLAY_NAME_BANNED_KEYWORDS
- Platega: DISPLAY_NAME
- WATA: PUBLIC_KEY_CACHE_SECONDS, PUBLIC_KEY_URL
- CloudPayments: API_URL, WIDGET_URL, RETURN_URL
- Интерфейс: MENU_LAYOUT_ENABLED, MINIAPP_PURCHASE_URL, HAPP_DOWNLOAD_LINK_PC
- Web API: WORKERS, TITLE, VERSION, TOKEN_HASH_ALGORITHM, REQUEST_LOGGING,
  EXTERNAL_ADMIN_TOKEN, EXTERNAL_ADMIN_TOKEN_BOT_ID

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 11:16:52 +03:00
Mikhail
f25ed360fc Merge branch 'BEDOLAGA-DEV:main' into main 2026-01-08 08:12:45 +03:00
Egor
c31de445b9 Update config.py 2026-01-08 03:18:03 +03:00
gy9vin
3299d47b11 merge: resolve conflict in universal_migration.py 2026-01-07 15:05:14 +03:00
gy9vin
4afefcafa4 Добавлена система вывода реферального баланса
Новая функциональность вывода средств:
  - config.py: добавлены настройки вывода (минимальная сумма, кулдаун, анализ подозрительности, тестовый режим)
  - models.py: добавлена модель WithdrawalRequest с полями для заявок, анализа рисков и обработки админ
2026-01-07 14:54:50 +03:00
Egor
9631f340c1 Update config.py 2026-01-07 03:58:44 +03:00
Egor
3150349ffa Update config.py 2026-01-07 02:17:18 +03:00
Egor
163f55ec14 Update config.py 2026-01-06 21:00:04 +03:00
PEDZEO
6b69ec750e feat: add cabinet (personal account) backend API
- Add JWT authentication for cabinet users
- Add Telegram WebApp authentication
- Add subscription management endpoints
- Add balance and transactions endpoints
- Add referral system endpoints
- Add tickets support for cabinet
- Add webhooks and websocket for real-time updates
- Add email verification service

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-01 23:20:20 +03:00
gy9vin
9dd3299744 fix Скрытие кнопок пополнения через env
1. app/config.py
  - Добавлен метод is_quick_amount_buttons_enabled() для централизации логики

  2. 9 файлов в app/handlers/balance/:
  - main.py — 1 замена
  - cryptobot.py — 2 замены
  - stars.py — 2 замены
  - yookassa.py — 4 замены
  - pal24.py — 1 замена
  - platega.py — 1 замена
  - mulenpay.py — 1 замена
  - wata.py — 1 замена
  - heleket.py — 1 замена

  Было (12 раз):
  if settings.YOOKASSA_QUICK_AMOUNT_SELECTION_ENABLED and not settings.DISABLE_TOPUP_BUTTONS:

  Стало:
  if settings.is_quick_amount_buttons_enabled():
2025-12-30 22:40:43 +03:00
gy9vin
bc19ec32bb fix Реализация корзины пользователя! запоминает настройки подписки после пополнения баланса 2025-12-30 22:35:54 +03:00
Egor
826a554d55 Update config.py 2025-12-30 17:56:40 +04:00
gy9vin
1b736b381d refactor(nalogo): упростить настройку чеков и использовать локальное время
- Удалена избыточная настройка NALOGO_RECEIPTS_ENABLED
- Удален эндпоинт /settings/support/nalogo_receipts_enabled
- Удалены методы is_nalogo_receipts_enabled и set_nalogo_receipts_enabled из SupportSettingsService
- Упрощена логика создания чеков
2025-12-27 19:29:04 +03:00
gy9vin
d343a317ee feat(logging): добавить систему ротации логов
- Ежедневная ротация в 00:00 с архивацией в tar.gz
  - Разделение по уровням: info.log, warning.log, error.log
  - Отдельный payments.log для платежных операций
  - Отправка архивов в Telegram-канал бекапов
  - Автоочистка архивов старше 7 дней (настраивается)
  - Переключатель LOG_ROTATION_ENABLED (по умолчанию выключен)
2025-12-27 19:02:28 +03:00
Mikhail
9f12462871 Merge branch 'main' into fix 2025-12-27 15:54:07 +03:00
PEDZEO
34db5a0d28 Add support for password-protected backup archives
- Updated .env.example to include BACKUP_ARCHIVE_PASSWORD variable.
- Added pyzipper to requirements.txt for ZIP file encryption.
- Modified Settings class in config.py to handle BACKUP_ARCHIVE_PASSWORD.
- Enhanced BackupService to create and send password-protected ZIP archives if a password is provided.
2025-12-27 03:58:48 +03:00
gy9vin
cad9abd8bd feat(payments): умная автоактивация подписки после пополнения + округление цен
Добавлена функция умной автоактивации подписки после пополнения баланса:

  - Новая настройка AUTO_ACTIVATE_AFTER_TOPUP_ENABLED в .env
  - Функция auto_activate_subscription_after_topup() в subscription_auto_purchase_service.py:
    - Автоматически продлевает истёкшую подписку с теми же параметрами
    - Создаёт новую подписку с дефолтными параметрами если подписки нет
    - Проверяет достаточность баланса перед активацией
    - Интеграция с RemnaWave API
    - Уведомления пользователю и админам

  - Интеграция во все 9 платёжных провайдеров:
    - Stars, CryptoBot, YooKassa, CloudPayments
    - WATA, Platega, Pal24, MulenPay, Tribute

  - Исправлен handle_activate_button в menu.py:
    - Полная переработка с интеграцией RemnaWave
    - Корректная работа с балансом и транзакциями
    - Использование SubscriptionRenewalService

  Добавлено округление цен при отображении:

  - Новая настройка PRICE_ROUNDING_ENABLED в .env
  - Логика: ≤50 коп → вниз, >50 коп → вверх
  - Применяется везде: пополнения, партнёрки, скидки, промогруппы
2025-12-26 23:38:46 +03:00
gy9vin
58c924b70a fix(campaign,channel): исправлена логика рекламных кампаний и проверки подписки на канал
- Рекламные кампании теперь выдают триальную подписку (is_trial=True),
    а не платную — пользователь становится платным только после оплаты

  - Добавлена настройка CHANNEL_REQUIRED_FOR_ALL для проверки подписки
    на канал для ВСЕХ пользователей (платных и триальных)

  - Добавлен параметр is_trial в create_paid_subscription для гибкости
2025-12-26 21:40:28 +03:00
gy9vin
bf6dc3991a feat(trial): платный триал с выбором метода оплаты
Реализована система платного триала с гибким выбором способа оплаты:

- Автоопределение платности: если TRIAL_ACTIVATION_PRICE > 0, триал автоматически платный
- TRIAL_PAYMENT_ENABLED теперь опционален (для обратной совместимости)
- Добавлена функция create
2025-12-26 00:03:08 +03:00
Mikhail
fb9405cccd Merge branch 'BEDOLAGA-DEV:main' into main 2025-12-25 23:56:04 +03:00
gy9vin
0df3018703 feat(nalogo): система очереди чеков с отложенной отправкой
Реализована отказоустойчивая система отправки чеков в налоговую:

  - Добавлен NalogoQueueService для фоновой обработки очереди чеков
  - При недоступности nalog.ru (503) чеки сохраняются в Redis
  - Автоматическая повторная отправка с настраиваемым интервалом
  - Защита от DDoS: задержка между чеками (NALOGO_QUEUE_RECEIPT_DELAY)
  - Уведомления админам в топик при проблемах и успешной разгрузке

  Изменения в файлах:
  - app/services/nalogo_queue_service.py: новый фоновый сервис
  - app/services/nalogo_service.py: методы очереди, определение 503
  - app/utils/cache.py: lpush/rpop/llen/lrange для Redis List
  - app/handlers/admin/monitoring.py: статистика чеков в админке
  - app/config.py: NALOGO_QUEUE_* и ADMIN_NOTIFICATIONS_NALOG_TOPIC_ID
  - main.py: интеграция запуска/остановки сервиса

  Новые ENV переменные:
  - ADMIN_NOTIFICATIONS_NALOG_TOPIC_ID
  - NALOGO_QUEUE_CHECK_INTERVAL (300с)
  - NALOGO_QUEUE_RECEIPT_DELAY (3с)
  - NALOGO_QUEUE_MAX_ATTEMPTS (10)
2025-12-25 23:01:49 +03:00
Egor
42b06ea8bc Add files via upload 2025-12-25 21:05:10 +03:00
gy9vin
0538d0e337 feat(traffic): улучшение системы докупки и сброса трафика
- Добавлен ENV переключатель TRAFFIC_TOPUP_ENABLED для вкл/выкл докупки
- Добавлена отдельная конфигурация пакетов TRAFFIC_TOPUP_PACKAGES_CONFIG
- Добавлено поле purchased_traffic_gb для отслеживания докупленного трафика
- Добавлены режимы расчета цены сброса (period/traffic/traffic_with_purchased)
- Исправлен абьюз: цена сброса теперь учитывает докупленный трафик
- Сброс purchased_traffic_gb при продлении/покупке подписки
- UX: меню сброса теперь показывает цену и баланс вместо alert
- UX: кнопка пополнения если не хватает средств на сброс
- Добавлена миграция для нового поля purchased_traffic_gb
- Добавлена локализация TRAFFIC_TOPUP_DISABLED (ru/en/ua/zh)
2025-12-25 14:48:24 +03:00
gy9vin
90c3df6331 Добавлен функционал подключения модема к подписке
Изменения:
- Добавлены настройки модема в .env.example и config.py (MODEM_ENABLED, MODEM_PRICE_PER_MONTH, MODEM_PERIOD_DISCOUNTS)
- Добавлено поле modem_enabled в модель Subscription
- Реализован модуль handlers/subscription/modem.py с обработчиками подключения/отключения модема
- Добавлено управ
2025-12-25 14:26:15 +03:00
Egor
46f61dbc57 Update config.py 2025-12-23 11:27:33 +03:00