diff --git a/docs/research/grammy.md b/docs/grammy.md similarity index 100% rename from docs/research/grammy.md rename to docs/grammy.md diff --git a/src/cli/program.ts b/src/cli/program.ts index 12487d06e..4ebe56333 100644 --- a/src/cli/program.ts +++ b/src/cli/program.ts @@ -568,7 +568,7 @@ Examples: program .command("relay:telegram") - .description("Auto-reply to Telegram (Bot API, long-poll)") + .description("Auto-reply to Telegram (Bot API via grammY)") .option("--verbose", "Verbose logging", false) .option("--webhook", "Run webhook server instead of long-poll", false) .option( @@ -583,6 +583,10 @@ Examples: "--port ", "Port for webhook server (default 8787)", ) + .option( + "--webhook-url ", + "Public webhook URL to register (overrides localhost autodetect)", + ) .addHelpText( "after", ` @@ -608,15 +612,19 @@ Examples: const port = opts.port ? Number.parseInt(String(opts.port), 10) : 8787; const path = opts.webhookPath ?? "/telegram-webhook"; try { - await import("../telegram/webhook-server.js").then((m) => - m.startTelegramWebhookServer({ - token, - port, - path, - secret: opts.webhookSecret ?? loadConfig().telegram?.webhookSecret, - runtime: defaultRuntime, - }), - ); + const { monitorTelegramProvider } = await import("../telegram/monitor.js"); + await monitorTelegramProvider({ + token, + useWebhook: true, + webhookPath: path, + webhookPort: port, + webhookSecret: + opts.webhookSecret ?? loadConfig().telegram?.webhookSecret, + runtime: defaultRuntime, + proxyFetch: undefined, + // register with provided public URL when given + webhookUrl: opts.webhookUrl, + }); } catch (err) { defaultRuntime.error( danger(`Telegram webhook server failed: ${String(err)}`), @@ -628,7 +636,6 @@ Examples: try { await import("../telegram/monitor.js").then((m) => m.monitorTelegramProvider({ - verbose: Boolean(opts.verbose), token, runtime: defaultRuntime, }), diff --git a/src/commands/send.test.ts b/src/commands/send.test.ts index 4e7d767a6..c4bb90056 100644 --- a/src/commands/send.test.ts +++ b/src/commands/send.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, it, vi } from "vitest"; +import { beforeEach, afterAll, describe, expect, it, vi } from "vitest"; import type { CliDeps } from "../cli/deps.js"; import type { RuntimeEnv } from "../runtime.js";