openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
45 lines (44 loc) • 1.74 kB
JavaScript
import { c as normalizeOptionalString } from "./string-coerce-mnp54Vah.js";
import "./string-coerce-runtime-CEGJWkQ_.js";
import { n as formatDiscordUserTag } from "./format-DZW075F7.js";
//#region extensions/discord/src/monitor/sender-identity.ts
function resolveDiscordWebhookId(message) {
const candidate = message.webhookId ?? message.webhook_id;
return typeof candidate === "string" && candidate.trim() ? candidate.trim() : null;
}
function resolveDiscordSenderIdentity(params) {
const pkInfo = params.pluralkitInfo ?? null;
const pkMember = pkInfo?.member ?? void 0;
const pkSystem = pkInfo?.system ?? void 0;
const memberId = pkMember?.id?.trim();
const memberName = (pkMember?.display_name ?? pkMember?.name ?? "")?.trim();
if (memberId && memberName) {
const systemName = pkSystem?.name?.trim();
const label = systemName ? `${memberName} (PK:${systemName})` : `${memberName} (PK)`;
return {
id: memberId,
name: memberName,
tag: normalizeOptionalString(pkMember?.name),
label,
isPluralKit: true,
pluralkit: {
memberId,
memberName,
systemId: normalizeOptionalString(pkSystem?.id),
systemName
}
};
}
const senderTag = formatDiscordUserTag(params.author);
const senderDisplay = params.member?.nickname ?? params.member?.nick ?? params.author.globalName ?? params.author.username;
const senderLabel = senderDisplay && senderTag && senderDisplay !== senderTag ? `${senderDisplay} (${senderTag})` : senderDisplay ?? senderTag ?? params.author.id;
return {
id: params.author.id,
name: params.author.username ?? void 0,
tag: senderTag,
label: senderLabel,
isPluralKit: false
};
}
//#endregion
export { resolveDiscordWebhookId as n, resolveDiscordSenderIdentity as t };