mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-08 11:41:24 +00:00
refactor(channels): dedupe discord channel lookup
This commit is contained in:
@@ -120,6 +120,24 @@ function resolveDiscordGuildEntry(guilds: DiscordConfig["guilds"], groupSpace?:
|
|||||||
return guilds["*"] ?? null;
|
return guilds["*"] ?? null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function resolveDiscordChannelEntry<TEntry>(
|
||||||
|
channelEntries: Record<string, TEntry> | undefined,
|
||||||
|
params: { groupId?: string | null; groupChannel?: string | null },
|
||||||
|
): TEntry | undefined {
|
||||||
|
if (!channelEntries || Object.keys(channelEntries).length === 0) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
const groupChannel = params.groupChannel;
|
||||||
|
const channelSlug = normalizeDiscordSlug(groupChannel);
|
||||||
|
return (
|
||||||
|
(params.groupId ? channelEntries[params.groupId] : undefined) ??
|
||||||
|
(channelSlug
|
||||||
|
? (channelEntries[channelSlug] ?? channelEntries[`#${channelSlug}`])
|
||||||
|
: undefined) ??
|
||||||
|
(groupChannel ? channelEntries[normalizeDiscordSlug(groupChannel)] : undefined)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
export function resolveTelegramGroupRequireMention(
|
export function resolveTelegramGroupRequireMention(
|
||||||
params: GroupMentionParams,
|
params: GroupMentionParams,
|
||||||
): boolean | undefined {
|
): boolean | undefined {
|
||||||
@@ -165,14 +183,7 @@ export function resolveDiscordGroupRequireMention(params: GroupMentionParams): b
|
|||||||
);
|
);
|
||||||
const channelEntries = guildEntry?.channels;
|
const channelEntries = guildEntry?.channels;
|
||||||
if (channelEntries && Object.keys(channelEntries).length > 0) {
|
if (channelEntries && Object.keys(channelEntries).length > 0) {
|
||||||
const groupChannel = params.groupChannel;
|
const entry = resolveDiscordChannelEntry(channelEntries, params);
|
||||||
const channelSlug = normalizeDiscordSlug(groupChannel);
|
|
||||||
const entry =
|
|
||||||
(params.groupId ? channelEntries[params.groupId] : undefined) ??
|
|
||||||
(channelSlug
|
|
||||||
? (channelEntries[channelSlug] ?? channelEntries[`#${channelSlug}`])
|
|
||||||
: undefined) ??
|
|
||||||
(groupChannel ? channelEntries[normalizeDiscordSlug(groupChannel)] : undefined);
|
|
||||||
if (entry && typeof entry.requireMention === "boolean") {
|
if (entry && typeof entry.requireMention === "boolean") {
|
||||||
return entry.requireMention;
|
return entry.requireMention;
|
||||||
}
|
}
|
||||||
@@ -306,14 +317,7 @@ export function resolveDiscordGroupToolPolicy(
|
|||||||
);
|
);
|
||||||
const channelEntries = guildEntry?.channels;
|
const channelEntries = guildEntry?.channels;
|
||||||
if (channelEntries && Object.keys(channelEntries).length > 0) {
|
if (channelEntries && Object.keys(channelEntries).length > 0) {
|
||||||
const groupChannel = params.groupChannel;
|
const entry = resolveDiscordChannelEntry(channelEntries, params);
|
||||||
const channelSlug = normalizeDiscordSlug(groupChannel);
|
|
||||||
const entry =
|
|
||||||
(params.groupId ? channelEntries[params.groupId] : undefined) ??
|
|
||||||
(channelSlug
|
|
||||||
? (channelEntries[channelSlug] ?? channelEntries[`#${channelSlug}`])
|
|
||||||
: undefined) ??
|
|
||||||
(groupChannel ? channelEntries[normalizeDiscordSlug(groupChannel)] : undefined);
|
|
||||||
const senderPolicy = resolveToolsBySender({
|
const senderPolicy = resolveToolsBySender({
|
||||||
toolsBySender: entry?.toolsBySender,
|
toolsBySender: entry?.toolsBySender,
|
||||||
senderId: params.senderId,
|
senderId: params.senderId,
|
||||||
|
|||||||
Reference in New Issue
Block a user