diff --git a/index.js b/index.js index 535d1d9..6dc101a 100644 --- a/index.js +++ b/index.js @@ -278,12 +278,10 @@ jQuery(async () => { console.log("[Amily2号-开国大典] 步骤三:开始召唤府邸..."); createDrawer(); - // 【开国大典-番外篇章】构建角色世界书 - // 使用轮询来安全地等待面板被 drawer.js 异步加载 function waitForCwbPanelAndInitialize() { let attempts = 0; - const maxAttempts = 50; // 等待5秒 - const interval = 100; // 每100毫秒检查一次 + const maxAttempts = 50; + const interval = 100; const checker = setInterval(async () => { const $cwbPanel = $('#amily2_character_world_book_panel'); @@ -314,84 +312,109 @@ jQuery(async () => { console.log("[Amily2号-开国大典] 步骤四:部署帝国哨兵网络..."); let isProcessingPlotOptimization = false; + async function onPlotGenerationAfterCommands(type, params, dryRun) { console.log("[Amily2-剧情优化] Generation after commands triggered", { type, params, dryRun, isProcessing: isProcessingPlotOptimization }); - + if (type === 'regenerate' || isProcessingPlotOptimization || dryRun) { console.log("[Amily2-剧情优化] Skipping due to conditions:", { type, isProcessing: isProcessingPlotOptimization, dryRun }); return; } const globalSettings = extension_settings[extensionName]; - - console.log("[Amily2-剧情优化] Checking plot optimization settings", { - enabled: globalSettings?.plotOpt_enabled, - hasApiUrl: !!globalSettings?.apiUrl, - plotSettings: globalSettings - }); - - console.log("[Amily2-剧情优化] Detailed settings check:", { - globalEnabled: globalSettings?.enabled, - plotSettingsExists: !!globalSettings, - plotSettingsEnabled: globalSettings?.plotOpt_enabled, - plotSettingsApiUrl: globalSettings?.apiUrl, - fullPlotSettings: globalSettings - }); - - const isPlotOptEnabled = globalSettings?.plotOpt_enabled !== false; - if (!isPlotOptEnabled || !globalSettings?.apiUrl) { - console.log("[Amily2-剧情优化] Plot optimization disabled or missing API URL", { - optimizationEnabled: globalSettings?.plotOpt_enabled, - apiUrl: globalSettings?.apiUrl - }); + if (globalSettings?.plotOpt_enabled === false) { + return; + } + + const isJqyhEnabled = globalSettings?.jqyhEnabled === true; + const isMainApiConfigured = !!globalSettings?.apiUrl || !!globalSettings?.tavernProfile; + + if (!isJqyhEnabled && !isMainApiConfigured) { + console.log("[Amily2-剧情优化] 优化已启用,但Jqyh API已禁用且主页API未配置。"); return; } isProcessingPlotOptimization = true; - let $toast = toastr.info('正在进行剧情优化...', '剧情优化', { timeOut: 0, extendedTimeOut: 0 }); - + let plotOptimizationToast = null; + const cancellationState = { isCancelled: false }; + try { - console.log("[Amily2-剧情优化] Event parameters:", { type, params, dryRun }); const userMessage = $('#send_textarea').val(); - if (!userMessage) { - console.log("[Amily2-剧情优化] No user message found in textarea"); - if ($toast) toastr.clear($toast); - return; + isProcessingPlotOptimization = false; + return false; } - - console.log("[Amily2-剧情优化] Processing plot optimization for message:", userMessage); - + + const toastMessage = ` +