Server RSS BOT

Internal endpoints for the RSS Bot service: channel configuration, scheduled jobs, parsing diagnostics, publish retry queue management, and Telegram webhook delivery.

Note: opening an endpoint in a browser typically issues a GET request. Use curl/Postman for POST and DELETE.

API Endpoints

Method Endpoint Description
GET /api/channel Retrieve channel configurations stored in Redis.
Single channel: pass ?id=<chatId> or ?chatId=<chatId> (interchangeable).
List: supports pagination via limit (default: 10) and offset (default: 0).
GET /api/debug-parser Parser diagnostics for a specific RSS feed.
Requires url (URL-encoded RSS feed URL).
Returns the normalized, internal representation used by the system.
GET /api/publish-queue Inspect the publish retry queue (payloads that previously failed and are pending retry).
Optional: limit (default: 10).
DELETE /api/publish-queue Clear the publish retry queue by removing all queued payloads.
GET /api/publish-retry Trigger a retry run: forwards queued payloads to the configured upstream endpoint.
Optional: limit (default: 10).
GET /api/jobs-queue Inspect the sharded jobs queues used by the scalable RSS worker.
Shows each queue length and a small preview (first/next items), useful for monitoring backlog and distribution across shards.
GET /api/jobs-enqueue Enqueue feed jobs for processing (one job per chatId|feedUrl).
Typically invoked periodically by a scheduler/worker to refresh the jobs queues based on the current channel configuration.
GET /api/jobs-drain Drain and process jobs from a single shard queue.
Requires shard (0..N-1). Optional: count (default: 5). Each drained job fetches the RSS feed, posts updates to Telegram, and (in collect mode) forwards publish payloads or enqueues retries on failure.
POST /api/telegram-webhook Telegram webhook receiver. Telegram delivers updates via POST, with the update JSON provided in the request body.
Authentication: administrative/internal endpoints are typically protected using Authorization: Bearer <PUBLISH_SECRET> (controlled by REQUIRE_AUTH).
Telegram webhook: Telegram does not attach a custom Bearer header automatically. For webhook verification, prefer Telegram’s secret header X-Telegram-Bot-Api-Secret-Token or a secret webhook path.