Download src/channels/plugins/normalize/telegram.ts from Darochin/openskynet: direct link, hf CLI and curl.
- Browser
- Download file 1.42 kB
-
https://huggingface.co/Darochin/openskynet/resolve/main/src/channels/plugins/normalize/telegram.ts
- Command line
-
hf download hf://Darochin/openskynet/src/channels/plugins/normalize/telegram.ts
-
curl -L -o telegram.ts https://huggingface.co/Darochin/openskynet/resolve/main/src/channels/plugins/normalize/telegram.ts
1.42 kB
| import { normalizeTelegramLookupTarget, parseTelegramTarget } from "../../../telegram/targets.js"; | |
| const TELEGRAM_PREFIX_RE = /^(telegram|tg):/i; | |
| function normalizeTelegramTargetBody(raw: string): string | undefined { | |
| const trimmed = raw.trim(); | |
| if (!trimmed) { | |
| return undefined; | |
| } | |
| const prefixStripped = trimmed.replace(TELEGRAM_PREFIX_RE, "").trim(); | |
| if (!prefixStripped) { | |
| return undefined; | |
| } | |
| const parsed = parseTelegramTarget(trimmed); | |
| const normalizedChatId = normalizeTelegramLookupTarget(parsed.chatId); | |
| if (!normalizedChatId) { | |
| return undefined; | |
| } | |
| const keepLegacyGroupPrefix = /^group:/i.test(prefixStripped); | |
| const hasTopicSuffix = /:topic:\d+$/i.test(prefixStripped); | |
| const chatSegment = keepLegacyGroupPrefix ? `group:${normalizedChatId}` : normalizedChatId; | |
| if (parsed.messageThreadId == null) { | |
| return chatSegment; | |
| } | |
| const threadSuffix = hasTopicSuffix | |
| ? `:topic:${parsed.messageThreadId}` | |
| : `:${parsed.messageThreadId}`; | |
| return `${chatSegment}${threadSuffix}`; | |
| } | |
| export function normalizeTelegramMessagingTarget(raw: string): string | undefined { | |
| const normalizedBody = normalizeTelegramTargetBody(raw); | |
| if (!normalizedBody) { | |
| return undefined; | |
| } | |
| return `telegram:${normalizedBody}`.toLowerCase(); | |
| } | |
| export function looksLikeTelegramTargetId(raw: string): boolean { | |
| return normalizeTelegramTargetBody(raw) !== undefined; | |
| } | |