diff --git a/.github/workflows/docker-hub.yml b/.github/workflows/docker-hub.yml index c3c25e11..c91ae0ac 100644 --- a/.github/workflows/docker-hub.yml +++ b/.github/workflows/docker-hub.yml @@ -36,15 +36,15 @@ jobs: TAGS="fr1ngg/remnawave-bedolaga-telegram-bot:latest,fr1ngg/remnawave-bedolaga-telegram-bot:${VERSION}" echo "🏷️ Собираем релизную версию: $VERSION" elif [[ $GITHUB_REF == refs/heads/main ]]; then - VERSION="v2.4.2-$(git rev-parse --short HEAD)" + VERSION="v2.4.3-$(git rev-parse --short HEAD)" TAGS="fr1ngg/remnawave-bedolaga-telegram-bot:latest,fr1ngg/remnawave-bedolaga-telegram-bot:${VERSION}" echo "🚀 Собираем версию из main: $VERSION" elif [[ $GITHUB_REF == refs/heads/dev ]]; then - VERSION="v2.4.2-dev-$(git rev-parse --short HEAD)" + VERSION="v2.4.3-dev-$(git rev-parse --short HEAD)" TAGS="fr1ngg/remnawave-bedolaga-telegram-bot:dev,fr1ngg/remnawave-bedolaga-telegram-bot:${VERSION}" echo "🧪 Собираем dev версию: $VERSION" else - VERSION="v2.4.2-pr-$(git rev-parse --short HEAD)" + VERSION="v2.4.3-pr-$(git rev-parse --short HEAD)" TAGS="fr1ngg/remnawave-bedolaga-telegram-bot:pr-$(git rev-parse --short HEAD)" echo "🔀 Собираем PR версию: $VERSION" fi diff --git a/.github/workflows/docker-registry.yml b/.github/workflows/docker-registry.yml index 246f0ecb..bc1ecd22 100644 --- a/.github/workflows/docker-registry.yml +++ b/.github/workflows/docker-registry.yml @@ -49,13 +49,13 @@ jobs: VERSION=${GITHUB_REF#refs/tags/} echo "🏷️ Building release version: $VERSION" elif [[ $GITHUB_REF == refs/heads/main ]]; then - VERSION="v2.4.2-$(git rev-parse --short HEAD)" + VERSION="v2.4.3-$(git rev-parse --short HEAD)" echo "🚀 Building main version: $VERSION" elif [[ $GITHUB_REF == refs/heads/dev ]]; then - VERSION="v2.4.2-dev-$(git rev-parse --short HEAD)" + VERSION="v2.4.3-dev-$(git rev-parse --short HEAD)" echo "🧪 Building dev version: $VERSION" else - VERSION="v2.4.2-pr-$(git rev-parse --short HEAD)" + VERSION="v2.4.3-pr-$(git rev-parse --short HEAD)" echo "🔀 Building PR version: $VERSION" fi echo "version=$VERSION" >> $GITHUB_OUTPUT diff --git a/Dockerfile b/Dockerfile index 57c770b0..dff92c5c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,7 +14,7 @@ RUN pip install --no-cache-dir --upgrade pip && \ FROM python:3.13-slim -ARG VERSION="v2.4.2" +ARG VERSION="v2.4.3" ARG BUILD_DATE ARG VCS_REF diff --git a/README.md b/README.md index 1ae32c76..71c70984 100644 --- a/README.md +++ b/README.md @@ -155,7 +155,7 @@ docker compose logs 2. Убедитесь, что входящий трафик на **80/tcp и 443/tcp** открыт (брандмауэр, облачный фаервол). 3. В `.env` пропишите корректные URL, чтобы бот формировал ссылки с HTTPS-доменами: ```env - WEBHOOK_URL=https://hooks.example.com/webhook + WEBHOOK_URL=https://hooks.example.com WEB_API_ENABLED=true WEB_API_ALLOWED_ORIGINS=https://miniapp.example.com MINIAPP_CUSTOM_URL=https://miniapp.example.com diff --git a/app/external/webhook_server.py b/app/external/webhook_server.py index f5fd530d..d11f75da 100644 --- a/app/external/webhook_server.py +++ b/app/external/webhook_server.py @@ -133,20 +133,23 @@ class WebhookServer: payment_service = PaymentService(self.bot) - async for db in get_db(): - try: - success = await payment_service.process_mulenpay_callback(db, payload) - if success: - return web.json_response({"status": "ok"}, status=200) - return web.json_response({"status": "error", "reason": "processing_failed"}, status=400) - except Exception as error: - logger.error(f"Ошибка обработки Mulen Pay webhook: {error}", exc_info=True) - return web.json_response({"status": "error", "reason": "internal_error"}, status=500) - finally: - break + # Получаем соединение с БД + db_generator = get_db() + db = await db_generator.__anext__() - # Если не удалось получить соединение с БД - return web.json_response({"status": "error", "reason": "database_error"}, status=500) + try: + success = await payment_service.process_mulenpay_callback(db, payload) + if success: + return web.json_response({"status": "ok"}, status=200) + return web.json_response({"status": "error", "reason": "processing_failed"}, status=400) + except Exception as error: + logger.error(f"Ошибка обработки Mulen Pay webhook: {error}", exc_info=True) + return web.json_response({"status": "error", "reason": "internal_error"}, status=500) + finally: + try: + await db_generator.__anext__() + except StopAsyncIteration: + pass except Exception as error: logger.error(f"Критическая ошибка Mulen Pay webhook: {error}", exc_info=True)