Update lorebook-bridge.js

This commit is contained in:
2026-01-06 10:35:43 +08:00
committed by GitHub
parent db6fdce2cf
commit dfdee32552

View File

@@ -30,9 +30,33 @@ export async function syncToLorebook(tableName, data, indexText, role, headers,
const entriesToUpdate = [];
const entriesToCreate = [];
const arraysEqual = (a, b) => {
if (a === b) return true;
if (a == null || b == null) return false;
if (a.length !== b.length) return false;
const sA = [...a].sort();
const sB = [...b].sort();
return sA.every((val, index) => val === sB[index]);
};
const processEntry = (comment, keys, content, type = 'selective', enabled = true, excludeRecursion = false, specificOrder = null, specificDepth = null) => {
const existingEntry = entries.find(e => e.comment === comment);
if (existingEntry) {
let isChanged = false;
if (existingEntry.content !== content) isChanged = true;
if (!arraysEqual(existingEntry.key, keys)) isChanged = true;
if (existingEntry.enabled !== enabled) isChanged = true;
const shouldBeConstant = (type === 'constant');
if (!!existingEntry.constant !== shouldBeConstant) isChanged = true;
if (!!existingEntry.exclude_recursion !== excludeRecursion) isChanged = true;
if (specificOrder !== null && existingEntry.order !== specificOrder) isChanged = true;
if (specificDepth !== null && existingEntry.depth !== specificDepth) isChanged = true;
if (isChanged) {
existingEntry.content = content;
existingEntry.key = keys;
@@ -59,6 +83,7 @@ export async function syncToLorebook(tableName, data, indexText, role, headers,
delete existingEntry.disabled;
entriesToUpdate.push(existingEntry);
}
} else {
entriesToCreate.push({
comment: comment,
@@ -182,6 +207,11 @@ export async function syncToLorebook(tableName, data, indexText, role, headers,
console.log(`[Amily2-Bridge] 创建 ${entriesToCreate.length} 个新条目...`);
await amilyHelper.createLorebookEntries(bookName, entriesToCreate);
}
if (entriesToDelete.length === 0 && entriesToUpdate.length === 0 && entriesToCreate.length === 0) {
console.log(`[Amily2-Bridge] ${tableName} 无需变更 (数据一致)。`);
}
console.log(`[Amily2-Bridge] 同步完成: ${tableName}`);
}