mirror of
https://github.com/SilenceLurker/ST-Amily2-Chat-Optimisation.git
synced 2026-06-06 17:05:50 +00:00
2 lines
20 KiB
JavaScript
2 lines
20 KiB
JavaScript
const _0x222d01=_0x5e80;(function(_0x158590,_0x1b888c){const _0xd4b09d=_0x5e80,_0x22d0b0=_0x158590();while(!![]){try{const _0x138ff0=-parseInt(_0xd4b09d(0x1cd))/0x1*(-parseInt(_0xd4b09d(0x241))/0x2)+-parseInt(_0xd4b09d(0x1f8))/0x3*(-parseInt(_0xd4b09d(0x232))/0x4)+-parseInt(_0xd4b09d(0x243))/0x5+-parseInt(_0xd4b09d(0x1e3))/0x6*(-parseInt(_0xd4b09d(0x1be))/0x7)+parseInt(_0xd4b09d(0x1e7))/0x8+-parseInt(_0xd4b09d(0x245))/0x9+parseInt(_0xd4b09d(0x1ca))/0xa*(-parseInt(_0xd4b09d(0x234))/0xb);if(_0x138ff0===_0x1b888c)break;else _0x22d0b0['push'](_0x22d0b0['shift']());}catch(_0x150f12){_0x22d0b0['push'](_0x22d0b0['shift']());}}}(_0x588c,0xa5607));import{getContext,extension_settings}from'/scripts/extensions.js';import{characters}from'/script.js';import{world_names,loadWorldInfo,createNewWorldInfo,createWorldInfoEntry,saveWorldInfo}from'/scripts/world-info.js';import{extensionName}from'../utils/settings.js';import{getChatIdentifier}from'./lore.js';import{updateVectorIndex}from'./rag-processor.js';import{isGoogleEndpoint,convertToGoogleRequest,parseGoogleResponse,buildGoogleApiUrl}from'../core/utils/googleAdapter.js';import{intelligentPoll,createGooglePollingTask}from'../core/utils/pollingManager.js';function _0x5e80(_0x559c58,_0x469709){const _0x588c18=_0x588c();return _0x5e80=function(_0x5e802c,_0x2b3b38){_0x5e802c=_0x5e802c-0x1b2;let _0x412154=_0x588c18[_0x5e802c];return _0x412154;},_0x5e80(_0x559c58,_0x469709);}let ChatCompletionService=undefined;try{const module=await import(_0x222d01(0x1eb));ChatCompletionService=module['ChatCompletionService'],console[_0x222d01(0x23f)](_0x222d01(0x251));}catch(_0x57c67b){console['warn'](_0x222d01(0x1f9),_0x57c67b);}let isExpeditionRunning=![],manualStopRequested=![];async function callAmily2Model(_0x31d85a){const _0x3ec55f=_0x222d01,_0x180882=extension_settings[extensionName],{apiUrl:_0xd1336,apiKey:_0x421269,model:_0x96880a,temperature:_0x2320ce,maxTokens:_0x217d4f,forceProxyForCustomApi:_0x51d437}=_0x180882;if(!_0xd1336||!_0x96880a)return toastr['error'](_0x3ec55f(0x1bf),_0x3ec55f(0x1cc)),null;console[_0x3ec55f(0x203)](_0x3ec55f(0x231)+new Date()['toLocaleTimeString']()),console[_0x3ec55f(0x23f)](_0x3ec55f(0x221)),console['table'](_0x31d85a),console[_0x3ec55f(0x21c)]();try{let _0x183d11;if(_0x51d437){console[_0x3ec55f(0x23f)]('[大史官-外交部]\x20接到圣谕,执行“皇家密道”协议...');if(typeof ChatCompletionService===_0x3ec55f(0x1b5)||!ChatCompletionService?.['processRequest'])throw new Error(_0x3ec55f(0x1e9));const _0x33a5fa=isGoogleEndpoint(_0xd1336);let _0x2b39d2=_0xd1336;_0x33a5fa&&(_0x2b39d2=buildGoogleApiUrl(_0xd1336,_0x96880a),console[_0x3ec55f(0x23f)]('[大史官-皇家密道]\x20已为GoogleAPI构建完整路径:\x20'+_0x2b39d2));const _0xea91a4={'stream':![],'messages':_0x31d85a,'max_tokens':_0x217d4f,'temperature':_0x2320ce,'model':_0x96880a,'chat_completion_source':_0x3ec55f(0x1c9),'custom_url':_0x2b39d2,'reverse_proxy':_0x3ec55f(0x218)},_0x4bcf89=await ChatCompletionService['processRequest'](_0xea91a4,{},!![]);if(!_0x4bcf89||!_0x4bcf89[_0x3ec55f(0x20f)])throw new Error(_0x3ec55f(0x1d6));_0x183d11=_0x4bcf89[_0x3ec55f(0x20f)];}else{console[_0x3ec55f(0x23f)]('[大史官-外交部]\x20执行“帝国直通车”协议(直接通讯)...');const _0x351c76=isGoogleEndpoint(_0xd1336);let _0x1cc870;if(_0x351c76)_0x1cc870=buildGoogleApiUrl(_0xd1336,_0x96880a);else{let _0x1bc918=_0xd1336['trim']();_0x1bc918[_0x3ec55f(0x1c8)](_0x3ec55f(0x1f4))||_0x1bc918[_0x3ec55f(0x1c8)](_0x3ec55f(0x20a))?_0x1cc870=_0x1bc918:(_0x1bc918[_0x3ec55f(0x1c8)]('/')&&(_0x1bc918=_0x1bc918[_0x3ec55f(0x206)](0x0,-0x1)),_0x1bc918['endsWith']('/v1')&&(_0x1bc918=_0x1bc918[_0x3ec55f(0x206)](0x0,-0x3)),_0x1cc870=_0x1bc918+_0x3ec55f(0x1f4));}let _0x549f2c={'Content-Type':_0x3ec55f(0x1bb)};_0x351c76?_0xd1336[_0x3ec55f(0x1ef)](_0x3ec55f(0x1fc))||_0xd1336[_0x3ec55f(0x1ef)]('us-central1')?_0x549f2c[_0x3ec55f(0x1b3)]=_0x3ec55f(0x1fe)+_0x421269:_0x549f2c[_0x3ec55f(0x1c4)]=_0x421269:_0x549f2c['Authorization']='Bearer\x20'+_0x421269;let _0x2ea909;_0x351c76?_0x2ea909=JSON[_0x3ec55f(0x1fb)](convertToGoogleRequest({'model':_0x96880a,'messages':_0x31d85a,'temperature':_0x2320ce,'max_tokens':_0x217d4f})):_0x2ea909=JSON[_0x3ec55f(0x1fb)]({'model':_0x96880a,'messages':_0x31d85a,'temperature':_0x2320ce,'max_tokens':_0x217d4f,'stream':![]});const _0x11ad40=await fetch(_0x1cc870,{'method':_0x3ec55f(0x213),'headers':_0x549f2c,'body':_0x2ea909});if(!_0x11ad40['ok']){const _0x297046=await _0x11ad40[_0x3ec55f(0x237)]();throw new Error(_0x3ec55f(0x1f0)+_0x11ad40[_0x3ec55f(0x1b4)]+'\x20-\x20'+_0x297046);}let _0x159e5b=await _0x11ad40[_0x3ec55f(0x1d8)]();if(_0x351c76&&_0x159e5b[_0x3ec55f(0x23d)]&&_0x159e5b[_0x3ec55f(0x1b9)]){let _0x24b40d;try{const _0x5d002e=new URL(_0xd1336);_0x24b40d=_0x5d002e[_0x3ec55f(0x216)]+'//'+_0x5d002e[_0x3ec55f(0x1c6)];}catch{_0x24b40d=_0xd1336;}const _0x82e09a=createGooglePollingTask(_0x159e5b['name'],_0x24b40d,_0x549f2c),_0x1c94e0={'maxAttempts':0x5,'baseDelay':0xbb8,'shouldStop':_0x4027ce=>_0x4027ce[_0x3ec55f(0x24d)],'onError':_0xb21f0=>console['error'](_0x3ec55f(0x1c0),_0xb21f0)},_0x240ccf=await intelligentPoll(_0x82e09a,_0x1c94e0);if(!_0x240ccf[_0x3ec55f(0x211)])throw new Error(_0x3ec55f(0x220));_0x159e5b=_0x240ccf[_0x3ec55f(0x211)];}_0x183d11=_0x351c76?parseGoogleResponse(_0x159e5b)?.[_0x3ec55f(0x1d7)]?.[0x0]?.['message']?.[_0x3ec55f(0x20f)]:_0x159e5b?.['choices']?.[0x0]?.[_0x3ec55f(0x238)]?.['content'];}return _0x183d11;}catch(_0xd4aa9e){return console['error'](_0x3ec55f(0x240),_0xd4aa9e),toastr[_0x3ec55f(0x22f)](_0x3ec55f(0x1dc)+_0xd4aa9e['message'],_0x3ec55f(0x1ce)),null;}}const RUNNING_LOG_COMMENT=_0x222d01(0x1de),PROGRESS_SEAL_REGEX=/本条勿动【前(\d+)楼总结已完成】否则后续总结无法进行。$/;async function readGoldenLedgerProgress(_0x247817){const _0x50c77d=_0x222d01;if(!_0x247817)return 0x0;try{const _0x190f62=await loadWorldInfo(_0x247817);if(!_0x190f62||!_0x190f62[_0x50c77d(0x1bd)])return 0x0;const _0x4c4305=Object['values'](_0x190f62['entries'])[_0x50c77d(0x22c)](_0x256277=>_0x256277[_0x50c77d(0x1c2)]===RUNNING_LOG_COMMENT&&!_0x256277['disable']);if(!_0x4c4305)return 0x0;const _0x5db593=_0x4c4305[_0x50c77d(0x20f)][_0x50c77d(0x1c5)](PROGRESS_SEAL_REGEX);return _0x5db593?parseInt(_0x5db593[0x1],0xa):0x0;}catch(_0x4ce6e8){return console[_0x50c77d(0x22f)]('[大史官]\x20阅览《'+_0x247817+_0x50c77d(0x1bc),_0x4ce6e8),0x0;}}export async function checkAndTriggerAutoSummary(){const _0x353816=_0x222d01,_0xdfb71=extension_settings[extensionName];if(!_0xdfb71[_0x353816(0x1d3)])return;const _0x31823e=getContext();let _0x35704a=null;switch(_0xdfb71[_0x353816(0x1ba)]){case _0x353816(0x229):_0x35704a=characters[_0x31823e[_0x353816(0x239)]]?.[_0x353816(0x202)]?.[_0x353816(0x1e4)]?.[_0x353816(0x20b)];break;case _0x353816(0x1b7):const _0x4ab7da=await getChatIdentifier();_0x35704a=_0x353816(0x1cb)+_0x4ab7da;break;default:return;}if(!_0x35704a)return;const _0x12f1c9=await readGoldenLedgerProgress(_0x35704a),_0x406948=_0x31823e[_0x353816(0x20d)][_0x353816(0x1d9)],_0x4fb48c=_0x406948-_0x12f1c9;if(_0x4fb48c>=_0xdfb71['historiographySmallTriggerThreshold']){const _0x55da83=_0x12f1c9+0x1,_0x2d05a4=_0x406948;await executeManualSummary(_0x55da83,_0x2d05a4,!![]);}}export async function getAvailableWorldbooks(){return[...world_names];}export async function getLoresForWorldbook(_0x932d19){const _0x135ec8=_0x222d01;if(!_0x932d19)return[];try{const _0x37d438=await loadWorldInfo(_0x932d19);if(!_0x37d438||!_0x37d438['entries'])return[];return Object[_0x135ec8(0x1bd)](_0x37d438['entries'])[_0x135ec8(0x247)](([,_0x25c1ed])=>!_0x25c1ed[_0x135ec8(0x246)])[_0x135ec8(0x1b6)](([_0x5793b2,_0x40a326])=>({'key':_0x5793b2,'comment':_0x40a326[_0x135ec8(0x1c2)]||_0x135ec8(0x225)}));}catch(_0x22af57){return console[_0x135ec8(0x22f)](_0x135ec8(0x21a)+_0x932d19+_0x135ec8(0x24a),_0x22af57),[];}}function _0x588c(){const _0x199052=['通讯异常','翰林院','\x20层的对话历史...','[大史官]\x20重铸任务失败:','name2','historiographySmallAutoEnable','“写入史册”和“存入翰林院”均未启用,总结任务已完成但未保存。','微言录\x20(手动)','皇家信使未能从模型B带回有效情报。','choices','json','length','join','远征已在准备阶段遵令暂停!','与模型B通讯时发生异常:\x20','system','【敕史局】对话流水总帐','success','远征完毕','replace','远征已遵从您的敕令暂停!随时可以【继续远征】。','6WSsQfZ','extensions','当前角色未绑定主世界书。','送往翰林院的文书处理失败:\x20','7160784JdfJix','选定的楼层范围内无有效对话。','大史官无法使用“皇家密道”:缺少皇家信使(ChatCompletionService)。','宏史卷重铸','/scripts/custom-request.js','楼总结已完成】否则后续总结无法进行。','historiographyLargeJailbreakPrompt','》中的【微言录合集】...','includes','模型B召唤失败:\x20','is_user','loreKeywords','\x20批次战役准备中...\x20(','/v1/chat/completions','楼详细总结记录】\x0a','\x0a\x0a---\x0a\x0a【','远征开始','186918keCmXb','[大史官]\x20未能领取“皇家信使”的兵符,部分高级功能将受限。','amily2-expedition-state-change','stringify','aiplatform.googleapis.com','远征失败','Bearer\x20','远征军已在营中,无需下达停战敕令。','未知的史册写入目标,远征军无法开拔!','\x20-\x20国史馆','data','groupCollapsed','warning','user','slice','ceil','loreDepth','秒后接敌)','/v1beta/openai','world','找不到指定的史册条目,重铸任务中止。','chat','当前角色未绑定主世界书,远征军无法开拔!','content','请将以下多个零散的“详细总结记录”提炼并融合成一段连贯的章节历史。原文如下:\x0a\x0a','response','\x20层历史,分\x20','POST','正在将此份“微言录”送往翰林院进行向量化处理...','info','protocol','遵旨!正在为您熔铸\x20','/api/proxy','trim','[大史官]\x20检阅《','historiographyLargeRefinePrompt','groupEnd','鸣金收兵','以下是依照顺序已发生剧情','dispatchEvent','轮询完成但未获得有效响应','【信函正文\x20(messages)】:','圣谕传达','historiographyWriteToLorebook','historiographySmallSummaryPrompt','无标题条目','\x20(宏史卷重铸)','编年史已成功更新!','\x20至\x20','character_main','圣谕悉知','assign','find','圣谕不明','国史馆','error','微言录\x20(自动)','[Amily2-大史官]\x20准备向模型B发送机密信函...\x20@\x20','24ZitXmz','请严格根据以下“对话记录”中的内容进行总结,不要添加任何额外信息。\x0a\x0a<对话记录>\x0a','11lJHiJk','翰林院已成功接收并索引了新的记忆碎片!','values','text','message','characterId','name1','远征途中遭遇重大挫折,任务中止!您可以随时【继续远征】。','未知的史册写入指令。','name','远征军已开拔!目标:','log','[大史官-通讯异常]','2213286qjBYmw','historiographySmallJailbreakPrompt','2069245uztSaA','停战敕令已下达!远征军将在完成当前批次的任务后休整。','286830yWjAVD','disable','filter','[翰林院]\x20向量化处理失败:','远征战役\x20(','》时出错:','\x20批次征服!','圣谕有误','done','\x0a</对话记录>','宏史卷重铸完毕','historiographyIngestToRag','[大史官]\x20已成功获颁“皇家信使”的召唤兵符。','写入国史馆时发生错误:\x20','Authorization','status','undefined','map','dedicated','史册条目中无可供重铸的内容。','metadata','lorebookTarget','application/json','》天机时出错:','entries','5720834CegTqH','API\x20URL或模型未配置,大史官无法召唤模型B。','[轮询错误]','loreActivationMode','comment','远征军已在途中,无需重复下令。','X-goog-api-key','match','host','史册已成功重铸,并保存于《','endsWith','custom','20697370KagReG','Amily2-Lore-','通讯中断','1kCQLHs'];_0x588c=function(){return _0x199052;};return _0x588c();}export async function executeManualSummary(_0x353296,_0x2f4b9f,_0x5e42b5=![]){const _0x4a48f0=_0x222d01,_0x46ca46=_0x5e42b5?_0x4a48f0(0x230):_0x4a48f0(0x1d5);toastr['info'](_0x4a48f0(0x217)+_0x353296+_0x4a48f0(0x228)+_0x2f4b9f+_0x4a48f0(0x1d0),_0x46ca46);const _0x437aed=getContext(),_0x484a40=_0x437aed[_0x4a48f0(0x20d)],_0x1ba366=extension_settings[extensionName],_0xb5c10b=_0x484a40[_0x4a48f0(0x206)](_0x353296,_0x2f4b9f+0x1);if(_0xb5c10b[_0x4a48f0(0x1d9)]===0x0){toastr['warning'](_0x4a48f0(0x1e8),_0x4a48f0(0x24c));return;}const _0x1009a0=_0x437aed[_0x4a48f0(0x23a)]||'用户',_0x23feeb=_0x437aed[_0x4a48f0(0x1d2)]||'角色',_0x134f68=_0xb5c10b['map'](_0x5d8129=>{const _0x4c055b=_0x4a48f0,_0x5f289a=_0x5d8129[_0x4c055b(0x1f1)]?_0x1009a0:_0x23feeb;return _0x5f289a+':\x20'+_0x5d8129['mes'][_0x4c055b(0x219)]();})[_0x4a48f0(0x1da)]('\x0a'),_0x1ba506=[{'role':_0x4a48f0(0x1dd),'content':_0x1ba366[_0x4a48f0(0x242)]},{'role':_0x4a48f0(0x1dd),'content':_0x1ba366[_0x4a48f0(0x224)]},{'role':_0x4a48f0(0x205),'content':_0x4a48f0(0x233)+_0x134f68+_0x4a48f0(0x24e)}],_0x40f366=await callAmily2Model(_0x1ba506);if(!_0x40f366)return;const _0x490797=_0x1ba366[_0x4a48f0(0x223)]??!![],_0x3897cc=_0x1ba366[_0x4a48f0(0x250)]??![];if(!_0x490797&&!_0x3897cc){toastr['warning'](_0x4a48f0(0x1d4),_0x46ca46);return;}if(_0x490797)try{let _0x5c2628=null;switch(_0x1ba366[_0x4a48f0(0x1ba)]){case _0x4a48f0(0x229):_0x5c2628=characters[_0x437aed[_0x4a48f0(0x239)]]?.[_0x4a48f0(0x202)]?.['extensions']?.['world'];if(!_0x5c2628)throw new Error(_0x4a48f0(0x1e5));break;case'dedicated':const _0x2cfbe3=await getChatIdentifier();_0x5c2628=_0x4a48f0(0x1cb)+_0x2cfbe3;!world_names[_0x4a48f0(0x1ef)](_0x5c2628)&&await createNewWorldInfo(_0x5c2628);break;default:throw new Error(_0x4a48f0(0x23c));}const _0x2972fd=await loadWorldInfo(_0x5c2628),_0x4279ad=Object[_0x4a48f0(0x236)](_0x2972fd['entries'])['find'](_0x39e149=>_0x39e149[_0x4a48f0(0x1c2)]===RUNNING_LOG_COMMENT&&!_0x39e149[_0x4a48f0(0x246)]),_0x2cd873='\x0a\x0a本条勿动【前'+_0x2f4b9f+_0x4a48f0(0x1ec),_0x2fcb7a=_0x4a48f0(0x1f6)+_0x353296+'楼至'+_0x2f4b9f+_0x4a48f0(0x1f5)+_0x40f366;if(_0x4279ad){const _0x422db5=_0x4279ad[_0x4a48f0(0x20f)]['replace'](PROGRESS_SEAL_REGEX,'')['trim']();_0x4279ad[_0x4a48f0(0x20f)]=_0x422db5+_0x2fcb7a+_0x2cd873;}else{const _0x2c3d05=_0x4a48f0(0x21e)+_0x2fcb7a,_0x44571c=createWorldInfoEntry(_0x5c2628,_0x2972fd),_0x2f2278=_0x1ba366[_0x4a48f0(0x1f2)]['split'](',')[_0x4a48f0(0x1b6)](_0x4405d=>_0x4405d[_0x4a48f0(0x219)]())['filter'](Boolean),_0x2ca0ad=_0x1ba366[_0x4a48f0(0x1c1)]==='always',_0x43ddcd={'before_char':0x0,'after_char':0x1,'before_an':0x2,'after_an':0x3,'at_depth':0x4};Object[_0x4a48f0(0x22b)](_0x44571c,{'comment':RUNNING_LOG_COMMENT,'content':_0x2c3d05+_0x2cd873,'key':_0x2f2278,'constant':_0x2ca0ad,'position':_0x43ddcd[_0x1ba366['loreInsertionPosition']]??0x4,'depth':_0x1ba366[_0x4a48f0(0x208)],'disable':![]});}await saveWorldInfo(_0x5c2628,_0x2972fd,!![]),toastr['success'](_0x4a48f0(0x227),_0x46ca46+_0x4a48f0(0x201));}catch(_0x4b9bfe){console[_0x4a48f0(0x22f)]('[大史官]\x20'+_0x46ca46+'写入国史馆失败:',_0x4b9bfe),toastr[_0x4a48f0(0x22f)](_0x4a48f0(0x1b2)+_0x4b9bfe[_0x4a48f0(0x238)],_0x4a48f0(0x22e));}if(_0x3897cc)try{toastr[_0x4a48f0(0x215)](_0x4a48f0(0x214),_0x4a48f0(0x1cf));const _0x788efc=_0x437aed['characterId'],_0xf21f08=await updateVectorIndex(_0x788efc,_0x40f366);if(_0xf21f08['success'])toastr[_0x4a48f0(0x1df)](_0x4a48f0(0x235),'翰林院');else throw new Error(_0xf21f08['error']);}catch(_0x22f9c3){console[_0x4a48f0(0x22f)](_0x4a48f0(0x248),_0x22f9c3),toastr['error'](_0x4a48f0(0x1e6)+_0x22f9c3['message'],_0x4a48f0(0x1cf));}}export async function executeRefinement(_0x3d4392,_0x24d1a6){const _0x3582bf=_0x222d01;toastr[_0x3582bf(0x215)]('遵旨!正在为您重铸《'+_0x3d4392+_0x3582bf(0x1ee),_0x3582bf(0x1ea));try{const _0x1e99b6=await loadWorldInfo(_0x3d4392),_0x5174ea=_0x1e99b6?.[_0x3582bf(0x1bd)][_0x24d1a6];if(!_0x5174ea){toastr[_0x3582bf(0x22f)](_0x3582bf(0x20c),_0x3582bf(0x24c));return;}const _0x33d8c3=_0x5174ea[_0x3582bf(0x20f)],_0x466e73=extension_settings[extensionName];let _0x4f4eff=_0x33d8c3,_0x9b1c52='',_0x228011=0x0;const _0x5f4eab=_0x33d8c3[_0x3582bf(0x1c5)](PROGRESS_SEAL_REGEX);_0x5f4eab&&(_0x9b1c52=_0x5f4eab[0x0],_0x228011=parseInt(_0x5f4eab[0x1],0xa),_0x4f4eff=_0x33d8c3[_0x3582bf(0x1e1)](PROGRESS_SEAL_REGEX,'')[_0x3582bf(0x219)]());if(!_0x4f4eff['trim']()){toastr['warning'](_0x3582bf(0x1b8),'国库空虚');return;}const _0x4e6fe8=[{'role':_0x3582bf(0x1dd),'content':_0x466e73[_0x3582bf(0x1ed)]},{'role':'system','content':_0x466e73[_0x3582bf(0x21b)]},{'role':'user','content':_0x3582bf(0x210)+_0x4f4eff}],_0x3604ac=await callAmily2Model(_0x4e6fe8);if(!_0x3604ac)return;const _0x21b920='以下内容是【1楼-'+_0x228011+'楼】已发生的剧情回顾。\x0a\x0a---\x0a\x0a',_0x284f2f=_0x21b920+_0x3604ac;_0x5174ea['content']=_0x284f2f+('\x0a\x0a'+_0x9b1c52),_0x5174ea['comment']=_0x5174ea['comment'][_0x3582bf(0x1e1)](/\s*\(已精炼\)|\s*\(宏史卷重铸\)/g,''),_0x5174ea[_0x3582bf(0x1c2)]+=_0x3582bf(0x226),await saveWorldInfo(_0x3d4392,_0x1e99b6,!![]),toastr['success'](_0x3582bf(0x1c7)+_0x3d4392+'》!',_0x3582bf(0x24f));}catch(_0x3672e5){console[_0x3582bf(0x22f)](_0x3582bf(0x1d1),_0x3672e5),toastr[_0x3582bf(0x22f)]('重铸史册时发生错误。','国史馆');}}export async function executeExpedition(){const _0x4fc7c7=_0x222d01;if(isExpeditionRunning){toastr[_0x4fc7c7(0x215)](_0x4fc7c7(0x1c3),_0x4fc7c7(0x22a));return;}isExpeditionRunning=!![],manualStopRequested=![],document[_0x4fc7c7(0x21f)](new CustomEvent(_0x4fc7c7(0x1fa),{'detail':{'isRunning':!![]}}));try{const _0x531d98=extension_settings[extensionName],_0x44db95=getContext();let _0x196f08=null;switch(_0x531d98[_0x4fc7c7(0x1ba)]){case'character_main':_0x196f08=characters[_0x44db95[_0x4fc7c7(0x239)]]?.['data']?.[_0x4fc7c7(0x1e4)]?.[_0x4fc7c7(0x20b)];if(!_0x196f08){toastr[_0x4fc7c7(0x22f)](_0x4fc7c7(0x20e),_0x4fc7c7(0x22d)),isExpeditionRunning=![],document[_0x4fc7c7(0x21f)](new CustomEvent(_0x4fc7c7(0x1fa),{'detail':{'isRunning':![],'manualStop':![]}}));return;}break;case _0x4fc7c7(0x1b7):const _0x1fd508=await getChatIdentifier();_0x196f08=_0x4fc7c7(0x1cb)+_0x1fd508;break;default:toastr[_0x4fc7c7(0x22f)](_0x4fc7c7(0x200),'圣谕不明'),isExpeditionRunning=![],document[_0x4fc7c7(0x21f)](new CustomEvent(_0x4fc7c7(0x1fa),{'detail':{'isRunning':![],'manualStop':![]}}));return;}const _0x114b1b=await readGoldenLedgerProgress(_0x196f08),_0x1454a5=_0x44db95[_0x4fc7c7(0x20d)][_0x4fc7c7(0x1d9)],_0x3d79fc=_0x1454a5-_0x114b1b;if(_0x3d79fc<=0x0){toastr[_0x4fc7c7(0x215)]('国史已是最新,远征军无需出动。','凯旋'),isExpeditionRunning=![],document['dispatchEvent'](new CustomEvent(_0x4fc7c7(0x1fa),{'detail':{'isRunning':![],'manualStop':![]}}));return;}const _0x1aa481=_0x531d98['historiographySmallTriggerThreshold'],_0x4fa01a=Math[_0x4fc7c7(0x207)](_0x3d79fc/_0x1aa481);toastr[_0x4fc7c7(0x215)](_0x4fc7c7(0x23e)+_0x3d79fc+_0x4fc7c7(0x212)+_0x4fa01a+_0x4fc7c7(0x24b),_0x4fc7c7(0x1f7));let _0x2a5f9a=_0x114b1b;for(let _0x3c17ef=0x0;_0x3c17ef<_0x4fa01a;_0x3c17ef++){if(manualStopRequested){toastr[_0x4fc7c7(0x204)](_0x4fc7c7(0x1e2),_0x4fc7c7(0x21d));break;}const _0x5bac12=_0x2a5f9a+0x1,_0x465c20=Math['min'](_0x2a5f9a+_0x1aa481,_0x1454a5),_0x40cb57=_0x4fc7c7(0x249)+(_0x3c17ef+0x1)+'/'+_0x4fa01a+')',_0x18b24d=0x7d0;_0x3c17ef>0x0&&(toastr['info']('第\x20'+(_0x3c17ef+0x1)+_0x4fc7c7(0x1f3)+_0x18b24d/0x3e8+_0x4fc7c7(0x209),_0x40cb57),await new Promise(_0x4bca3d=>setTimeout(_0x4bca3d,_0x18b24d)));if(manualStopRequested){toastr[_0x4fc7c7(0x204)](_0x4fc7c7(0x1db),_0x4fc7c7(0x21d));break;}await executeManualSummary(_0x5bac12,_0x465c20,!![]),_0x2a5f9a=_0x465c20;}!manualStopRequested&&toastr['success']('凯旋!远征大捷!所有未载之史均已化为帝国永恒的记忆!',_0x4fc7c7(0x1e0));}catch(_0x5f3ed1){console[_0x4fc7c7(0x22f)]('[大史官-远征失败]',_0x5f3ed1),toastr[_0x4fc7c7(0x22f)](_0x4fc7c7(0x23b),_0x4fc7c7(0x1fd));}finally{isExpeditionRunning=![],document[_0x4fc7c7(0x21f)](new CustomEvent(_0x4fc7c7(0x1fa),{'detail':{'isRunning':![],'manualStop':manualStopRequested}}));}}export function stopExpedition(){const _0x1d522d=_0x222d01;isExpeditionRunning?(manualStopRequested=!![],toastr[_0x1d522d(0x215)](_0x1d522d(0x244),_0x1d522d(0x222))):toastr['warning'](_0x1d522d(0x1ff),_0x1d522d(0x22a));}
|