UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

59 lines (58 loc) 2.13 kB
import { i as formatErrorMessage } from "./errors-BXgSefBE.js"; import { c as isRecord } from "./utils-CCC-BEJH.js"; import { r as fetchWithTimeout } from "./fetch-timeout-CDaw0X8V.js"; import "./error-runtime-C8vbtAJt.js"; import { r as makeProxyFetch } from "./proxy-fetch-Ii-XBOip.js"; import "./string-coerce-runtime-CEGJWkQ_.js"; import "./text-utility-runtime-BZ3jGr-e.js"; import { n as resolveTelegramFetch, t as resolveTelegramApiBase } from "./fetch-DVxN6WLs.js"; //#region extensions/telegram/src/audit-membership-runtime.ts async function auditTelegramGroupMembershipImpl(params) { const fetcher = resolveTelegramFetch(params.proxyUrl ? makeProxyFetch(params.proxyUrl) : void 0, { network: params.network }); const base = `${resolveTelegramApiBase(params.apiRoot)}/bot${params.token}`; const groups = []; for (const chatId of params.groupIds) try { const res = await fetchWithTimeout(`${base}/getChatMember?chat_id=${encodeURIComponent(chatId)}&user_id=${encodeURIComponent(String(params.botId))}`, {}, params.timeoutMs, fetcher); const json = await res.json(); if (!res.ok || !isRecord(json) || !json.ok) { const desc = isRecord(json) && !json.ok && typeof json.description === "string" ? json.description : `getChatMember failed (${res.status})`; groups.push({ chatId, ok: false, status: null, error: desc, matchKey: chatId, matchSource: "id" }); continue; } const status = isRecord(json.result) && typeof json.result.status === "string" ? json.result.status : null; const ok = status === "creator" || status === "administrator" || status === "member"; groups.push({ chatId, ok, status, error: ok ? null : "bot not in group", matchKey: chatId, matchSource: "id" }); } catch (err) { groups.push({ chatId, ok: false, status: null, error: formatErrorMessage(err), matchKey: chatId, matchSource: "id" }); } return { ok: groups.every((g) => g.ok), checkedGroups: groups.length, unresolvedGroups: 0, hasWildcardUnmentionedGroups: false, groups }; } //#endregion export { auditTelegramGroupMembershipImpl };