diff --git a/gateway/platforms/telegram.py b/gateway/platforms/telegram.py index 5262e388b2..439367b7d7 100644 --- a/gateway/platforms/telegram.py +++ b/gateway/platforms/telegram.py @@ -65,6 +65,7 @@ from gateway.platforms.base import ( cache_image_from_bytes, cache_audio_from_bytes, cache_document_from_bytes, + resolve_proxy_url, SUPPORTED_DOCUMENT_TYPES, utf16_len, _prefix_within_utf16_limit, @@ -539,10 +540,7 @@ class TelegramAdapter(BasePlatformAdapter): "write_timeout": _env_float("HERMES_TELEGRAM_HTTP_WRITE_TIMEOUT", 20.0), } - proxy_configured = any( - (os.getenv(k) or "").strip() - for k in ("HTTPS_PROXY", "HTTP_PROXY", "ALL_PROXY", "https_proxy", "http_proxy", "all_proxy") - ) + proxy_url = resolve_proxy_url() disable_fallback = (os.getenv("HERMES_TELEGRAM_DISABLE_FALLBACK_IPS", "").strip().lower() in ("1", "true", "yes", "on")) fallback_ips = self._fallback_ips() if not fallback_ips: @@ -553,7 +551,7 @@ class TelegramAdapter(BasePlatformAdapter): ", ".join(fallback_ips), ) - if fallback_ips and not proxy_configured and not disable_fallback: + if fallback_ips and not proxy_url and not disable_fallback: logger.info( "[%s] Telegram fallback IPs active: %s", self.name, @@ -569,10 +567,12 @@ class TelegramAdapter(BasePlatformAdapter): **request_kwargs, httpx_kwargs={"transport": TelegramFallbackTransport(fallback_ips)}, ) + elif proxy_url: + logger.info("[%s] Proxy detected; passing explicitly to HTTPXRequest: %s", self.name, proxy_url) + request = HTTPXRequest(**request_kwargs, proxy=proxy_url) + get_updates_request = HTTPXRequest(**request_kwargs, proxy=proxy_url) else: - if proxy_configured: - logger.info("[%s] Proxy configured; skipping Telegram fallback-IP transport", self.name) - elif disable_fallback: + if disable_fallback: logger.info("[%s] Telegram fallback-IP transport disabled via env", self.name) request = HTTPXRequest(**request_kwargs) get_updates_request = HTTPXRequest(**request_kwargs)