mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-09 18:14:31 +00:00
refactor(src): split oversized modules
This commit is contained in:
62
src/web/auto-reply/monitor/group-activation.ts
Normal file
62
src/web/auto-reply/monitor/group-activation.ts
Normal file
@@ -0,0 +1,62 @@
|
||||
import { normalizeGroupActivation } from "../../../auto-reply/group-activation.js";
|
||||
import type { loadConfig } from "../../../config/config.js";
|
||||
import {
|
||||
resolveChannelGroupPolicy,
|
||||
resolveChannelGroupRequireMention,
|
||||
} from "../../../config/group-policy.js";
|
||||
import {
|
||||
loadSessionStore,
|
||||
resolveGroupSessionKey,
|
||||
resolveStorePath,
|
||||
} from "../../../config/sessions.js";
|
||||
|
||||
export function resolveGroupPolicyFor(
|
||||
cfg: ReturnType<typeof loadConfig>,
|
||||
conversationId: string,
|
||||
) {
|
||||
const groupId = resolveGroupSessionKey({
|
||||
From: conversationId,
|
||||
ChatType: "group",
|
||||
Provider: "whatsapp",
|
||||
})?.id;
|
||||
return resolveChannelGroupPolicy({
|
||||
cfg,
|
||||
channel: "whatsapp",
|
||||
groupId: groupId ?? conversationId,
|
||||
});
|
||||
}
|
||||
|
||||
export function resolveGroupRequireMentionFor(
|
||||
cfg: ReturnType<typeof loadConfig>,
|
||||
conversationId: string,
|
||||
) {
|
||||
const groupId = resolveGroupSessionKey({
|
||||
From: conversationId,
|
||||
ChatType: "group",
|
||||
Provider: "whatsapp",
|
||||
})?.id;
|
||||
return resolveChannelGroupRequireMention({
|
||||
cfg,
|
||||
channel: "whatsapp",
|
||||
groupId: groupId ?? conversationId,
|
||||
});
|
||||
}
|
||||
|
||||
export function resolveGroupActivationFor(params: {
|
||||
cfg: ReturnType<typeof loadConfig>;
|
||||
agentId: string;
|
||||
sessionKey: string;
|
||||
conversationId: string;
|
||||
}) {
|
||||
const storePath = resolveStorePath(params.cfg.session?.store, {
|
||||
agentId: params.agentId,
|
||||
});
|
||||
const store = loadSessionStore(storePath);
|
||||
const entry = store[params.sessionKey];
|
||||
const requireMention = resolveGroupRequireMentionFor(
|
||||
params.cfg,
|
||||
params.conversationId,
|
||||
);
|
||||
const defaultActivation = requireMention === false ? "always" : "mention";
|
||||
return normalizeGroupActivation(entry?.groupActivation) ?? defaultActivation;
|
||||
}
|
||||
Reference in New Issue
Block a user