From 65e2d939e131e1b2da4a68fbf2f2e956c9157b7a Mon Sep 17 00:00:00 2001 From: Developer Date: Sun, 25 Jan 2026 10:46:28 +0100 Subject: [PATCH] fix(telegram): use configured proxy for outbound API calls The proxy configuration (`channels.telegram.proxy`) was only used for the gateway monitor (polling), but not for outbound sends (sendMessage, reactMessage, deleteMessage). This caused outbound messages to bypass the configured proxy, which is problematic for users behind corporate proxies or those who want to route all traffic through a specific proxy. This change ensures that all three outbound functions use the same proxy configuration as the monitor: - sendMessageTelegram - reactMessageTelegram - deleteMessageTelegram Co-Authored-By: Claude Opus 4.5 --- src/telegram/send.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/telegram/send.ts b/src/telegram/send.ts index 7ac246a27..e38f9aad7 100644 --- a/src/telegram/send.ts +++ b/src/telegram/send.ts @@ -19,6 +19,7 @@ import { isGifMedia } from "../media/mime.js"; import { loadWebMedia } from "../web/media.js"; import { resolveTelegramAccount } from "./accounts.js"; import { resolveTelegramFetch } from "./fetch.js"; +import { makeProxyFetch } from "./proxy.js"; import { renderTelegramHtmlText } from "./format.js"; import { resolveMarkdownTableMode } from "../config/markdown-tables.js"; import { splitTelegramCaption } from "./caption.js"; @@ -162,7 +163,9 @@ export async function sendMessageTelegram( const chatId = normalizeChatId(target.chatId); // Use provided api or create a new Bot instance. The nullish coalescing // operator ensures api is always defined (Bot.api is always non-null). - const fetchImpl = resolveTelegramFetch(); + const proxyUrl = account.config.proxy; + const proxyFetch = proxyUrl ? makeProxyFetch(proxyUrl as string) : undefined; + const fetchImpl = resolveTelegramFetch(proxyFetch); const timeoutSeconds = typeof account.config.timeoutSeconds === "number" && Number.isFinite(account.config.timeoutSeconds) @@ -416,7 +419,9 @@ export async function reactMessageTelegram( const token = resolveToken(opts.token, account); const chatId = normalizeChatId(String(chatIdInput)); const messageId = normalizeMessageId(messageIdInput); - const fetchImpl = resolveTelegramFetch(); + const proxyUrl = account.config.proxy; + const proxyFetch = proxyUrl ? makeProxyFetch(proxyUrl as string) : undefined; + const fetchImpl = resolveTelegramFetch(proxyFetch); const client: ApiClientOptions | undefined = fetchImpl ? { fetch: fetchImpl as unknown as ApiClientOptions["fetch"] } : undefined; @@ -468,7 +473,9 @@ export async function deleteMessageTelegram( const token = resolveToken(opts.token, account); const chatId = normalizeChatId(String(chatIdInput)); const messageId = normalizeMessageId(messageIdInput); - const fetchImpl = resolveTelegramFetch(); + const proxyUrl = account.config.proxy; + const proxyFetch = proxyUrl ? makeProxyFetch(proxyUrl as string) : undefined; + const fetchImpl = resolveTelegramFetch(proxyFetch); const client: ApiClientOptions | undefined = fetchImpl ? { fetch: fetchImpl as unknown as ApiClientOptions["fetch"] } : undefined;