mirror of
https://github.com/SilenceLurker/ST-Amily2-Chat-Optimisation.git
synced 2026-06-06 12:25:51 +00:00
2 lines
15 KiB
JavaScript
2 lines
15 KiB
JavaScript
const _0x29db3e=_0x8a8a;(function(_0x599257,_0x50eadb){const _0x11bf04=_0x8a8a,_0x241936=_0x599257();while(!![]){try{const _0x48cf40=parseInt(_0x11bf04(0x125))/0x1+-parseInt(_0x11bf04(0xfb))/0x2+-parseInt(_0x11bf04(0x15c))/0x3*(-parseInt(_0x11bf04(0x13f))/0x4)+parseInt(_0x11bf04(0x152))/0x5+-parseInt(_0x11bf04(0x168))/0x6*(parseInt(_0x11bf04(0x117))/0x7)+parseInt(_0x11bf04(0x106))/0x8+-parseInt(_0x11bf04(0x11f))/0x9;if(_0x48cf40===_0x50eadb)break;else _0x241936['push'](_0x241936['shift']());}catch(_0x55ef46){_0x241936['push'](_0x241936['shift']());}}}(_0x1a2f,0x544bc));function _0x1a2f(){const _0x58e3f5=['worldbookEnabled','target','extensions','split','sourceAiMessageTimestamp','find','[剧情优化大师]\x20世界书内容\x20(','content','[Amily2-国史馆]\x20户籍管理处在长时间等待后,仍无法确定户籍。','[史官司]\x20总结已遵旨写入《','always','primary','3190345UmzgOu','manual','type','\x27\x20失败!','\x20chars)\x20超出限制\x20(','worldbookCharLimit','总结写入总耗时','Amily2档案-','summary','enabledWorldbookEntries','6ApmIdb','includes','uid','mes','selectedWorldbooks','emit','time','bookName','已创建并写入新档案《','length','char-',':checked','230034whBoVr','Amily2号','settings','[Amily2-国史馆]\x20接到一份残缺的待办文书,写入任务已中止。','comment','entries','[条目:\x20','收到未知的写入指令:\x20\x22','Amily2号-国史馆','exclude_recursion','181968triqRd','unknown_chat_timeout','values','[Amily2号-工部]\x20《','toLowerCase','characterId','join','[Amily2-国史馆]\x20钦差大臣在整合\x20\x27','#amily2_opt_worldbook_char_limit','constant','input[name=\x22amily2_opt_worldbook_source\x22]:checked','836200XMtGju','data','无标题','activationMode','\x27\x20检索时发生错误:','groupEnd','error','push','上下文错误','character_main','无法加载世界书《','chat_filename','filter','toLocaleTimeString','substring','[Amily2号-工部]\x20正在广播事件:\x20','isArray','28vQqALr','replace','getLorebookEntries','success','worldbookSource','keywords','1.\x20','【Amily2号自动档案】\x0a此卷宗由Amily2号优化助手自动生成并维护,记录核心事件脉络。\x0a---\x0a','3629934hXZZEM','》文件。','avatar','trim','warn','[Amily2号-工部]\x20“圣谕广播”式刷新失败:','33318xbfcFq','val','Amily2号无法触发UI刷新。','send_date','chat','map','getCharLorebooks','[Amily2号-逆时寻踪]\x20裁决:\x20源消息已被修改或删除,遵旨废黜过时总结。','[剧情优化大师]\x20TavernHelper\x20API\x20或\x20context\x20未提供,无法获取世界书内容。','后台写入总结时发生错误。','CHARACTER_PAGE_LOADED','[Amily2号-写入失败]\x20写入流程发生意外错误:','#amily2_opt_selected_worldbooks','#amily2_plot_optimization_panel','》注入前端数据模型。','disable','Amily2号无法确定当前聊天身份,世界书功能将受影响。','角色未绑定主世界书,总结写入任务已中止。','depth','add','\x0a\x0a---\x0a\x0a','核心事件系统缺失','some','[Amily2-国史馆]\x20钦差大臣在\x20\x27','\x27\x20时发生错误:','warning','434060cMYkzm','world','log','#amily2_opt_worldbook_entry_list_container\x20input[type=\x22checkbox\x22]','all','[剧情优化大师]\x20处理世界书逻辑时出错:','\x20chars),将被截断。'];_0x1a2f=function(){return _0x58e3f5;};return _0x1a2f();}import{getContext}from'/scripts/extensions.js';import{characters,eventSource,event_types}from'/script.js';import{loadWorldInfo,createNewWorldInfo,createWorldInfoEntry,saveWorldInfo,world_names}from'/scripts/world-info.js';export const LOREBOOK_PREFIX=_0x29db3e(0x159);export const DEDICATED_LOREBOOK_NAME=_0x29db3e(0xf9);export const INTRODUCTORY_TEXT=_0x29db3e(0x11e);export async function getChatIdentifier(){const _0x832e1b=_0x29db3e;let _0x35f666=0x0;const _0x56cade=0x32,_0x1fa48b=0x64;while(_0x35f666<_0x56cade){try{const _0x5ed5fa=getContext();if(_0x5ed5fa&&_0x5ed5fa[_0x832e1b(0x100)]){const _0x1bce50=characters[_0x5ed5fa[_0x832e1b(0x100)]];if(_0x1bce50&&_0x1bce50[_0x832e1b(0x121)])return _0x832e1b(0x166)+_0x1bce50[_0x832e1b(0x121)][_0x832e1b(0x118)](/\.(png|webp|jpg|jpeg|gif)$/,'');return _0x832e1b(0x166)+_0x5ed5fa[_0x832e1b(0x100)];}if(_0x5ed5fa&&_0x5ed5fa[_0x832e1b(0x111)]){const _0x5b5e0c=_0x5ed5fa[_0x832e1b(0x111)][_0x832e1b(0x149)](/[\\/]/)['pop']();return _0x5b5e0c[_0x832e1b(0x118)](/\.jsonl?$/,'');}}catch(_0x37de56){console['warn']('[Amily2-户籍管理处]\x20等待上下文时发生轻微错误\x20(尝试次数\x20'+(_0x35f666+0x1)+'):',_0x37de56['message']);}await new Promise(_0x3697df=>setTimeout(_0x3697df,_0x1fa48b)),_0x35f666++;}return console[_0x832e1b(0x10c)](_0x832e1b(0x14e)),toastr[_0x832e1b(0x13e)](_0x832e1b(0x135),_0x832e1b(0x10e)),_0x832e1b(0xfc);}export async function findLatestSummaryLore(_0x3e41d2,_0x4498a0){const _0x247fee=_0x29db3e;try{const _0x1434b1=await loadWorldInfo(_0x3e41d2);if(!_0x1434b1||!_0x1434b1[_0x247fee(0x16d)])return null;const _0x7ad615=Object[_0x247fee(0xfd)](_0x1434b1[_0x247fee(0x16d)]),_0xa67429=''+LOREBOOK_PREFIX+_0x4498a0;return _0x7ad615[_0x247fee(0x14b)](_0x58586b=>_0x58586b[_0x247fee(0x16c)]===_0xa67429&&!_0x58586b[_0x247fee(0x134)])||null;}catch(_0x14d6a9){return console[_0x247fee(0x10c)](_0x247fee(0x13c)+_0x3e41d2+_0x247fee(0x10a),_0x14d6a9),null;}}export async function getCombinedWorldbookContent(_0xdec026){const _0x552f74=_0x29db3e;if(!_0xdec026)return'';try{const _0x15e22b=await loadWorldInfo(_0xdec026);if(!_0x15e22b||!_0x15e22b[_0x552f74(0x16d)])return'';const _0x3d9755=Object[_0x552f74(0xfd)](_0x15e22b[_0x552f74(0x16d)])[_0x552f74(0x112)](_0x5427d3=>!_0x5427d3[_0x552f74(0x134)])[_0x552f74(0x12a)](_0x3c8b69=>_0x552f74(0x16e)+(_0x3c8b69[_0x552f74(0x16c)]||_0x552f74(0x108))+']\x0a'+_0x3c8b69[_0x552f74(0x14d)]);return _0x3d9755[_0x552f74(0x101)](_0x552f74(0x139));}catch(_0x181031){return console[_0x552f74(0x10c)](_0x552f74(0x102)+_0xdec026+_0x552f74(0x13d),_0x181031),toastr[_0x552f74(0x10c)]('读取世界书\x20\x27'+_0xdec026+_0x552f74(0x155),'档案整合错误'),'';}}async function refreshWorldbookListOnly(_0x23e38f=null){const _0x3cfa72=_0x29db3e;console[_0x3cfa72(0x141)]('[Amily2号-工部-v1.3]\x20执行“圣谕广播”式UI更新...');try{_0x23e38f&&(Array[_0x3cfa72(0x116)](world_names)&&!world_names[_0x3cfa72(0x15d)](_0x23e38f)?(world_names[_0x3cfa72(0x10d)](_0x23e38f),world_names['sort'](),console[_0x3cfa72(0x141)]('[Amily2号-工部]\x20已将《'+_0x23e38f+_0x3cfa72(0x133))):console[_0x3cfa72(0x141)](_0x3cfa72(0xfe)+_0x23e38f+'》已存在于数据模型中,跳过注入。')),eventSource&&typeof eventSource[_0x3cfa72(0x161)]==='function'&&event_types[_0x3cfa72(0x12f)]?(console[_0x3cfa72(0x141)](_0x3cfa72(0x115)+event_types['CHARACTER_PAGE_LOADED']),eventSource[_0x3cfa72(0x161)](event_types[_0x3cfa72(0x12f)]),console[_0x3cfa72(0x141)]('[Amily2号-工部]\x20“character_page_loaded”事件已广播,UI应已响应刷新。')):(console[_0x3cfa72(0x10c)]('[Amily2号]\x20致命错误:\x20eventSource\x20或\x20event_types.CHARACTER_PAGE_LOADED\x20未找到。无法广播刷新事件。'),toastr['error'](_0x3cfa72(0x127),_0x3cfa72(0x13a)));}catch(_0x2c070b){console[_0x3cfa72(0x10c)](_0x3cfa72(0x124),_0x2c070b);}}export async function writeSummaryToLorebook(_0x46e3d3){const _0x15c3f9=_0x29db3e;if(!_0x46e3d3||!_0x46e3d3[_0x15c3f9(0x15a)]||!_0x46e3d3['sourceAiMessageTimestamp']||!_0x46e3d3[_0x15c3f9(0x16a)]){console['warn'](_0x15c3f9(0x16b),_0x46e3d3);return;}const _0x29c304=getContext(),_0x2cd445=_0x29c304[_0x15c3f9(0x129)];let _0x31a4a2=![],_0x2772e2=null;for(let _0x519220=_0x2cd445[_0x15c3f9(0x165)]-0x2;_0x519220>=0x0;_0x519220--){if(!_0x2cd445[_0x519220]['is_user']){_0x2772e2=_0x2cd445[_0x519220];break;}}_0x2772e2&&_0x2772e2[_0x15c3f9(0x128)]===_0x46e3d3[_0x15c3f9(0x14a)]&&(_0x31a4a2=!![]);if(!_0x31a4a2){console['log'](_0x15c3f9(0x12c));return;}const {summary:_0x3df9ff,settings:_0x5779b7}=_0x46e3d3;console['groupCollapsed']('[Amily2号-存档任务-v21.0\x20最终圣旨版]\x20'+new Date()[_0x15c3f9(0x113)]()),console[_0x15c3f9(0x162)](_0x15c3f9(0x158));try{const _0xbdf82a=await getChatIdentifier(),_0x28166d=characters[_0x29c304[_0x15c3f9(0x100)]];let _0x42adaf=null,_0x1496e3=![];switch(_0x5779b7[_0x15c3f9(0x147)]){case _0x15c3f9(0x10f):_0x42adaf=_0x28166d?.[_0x15c3f9(0x107)]?.[_0x15c3f9(0x148)]?.[_0x15c3f9(0x140)];if(!_0x42adaf){toastr[_0x15c3f9(0x13e)](_0x15c3f9(0x136),'Amily2号'),console[_0x15c3f9(0x10b)]();return;}break;case'dedicated':_0x42adaf=DEDICATED_LOREBOOK_NAME+'-'+_0xbdf82a;break;default:toastr[_0x15c3f9(0x10c)](_0x15c3f9(0x16f)+_0x5779b7[_0x15c3f9(0x147)]+'\x22','Amily2号'),console[_0x15c3f9(0x10b)]();return;}!world_names[_0x15c3f9(0x15d)](_0x42adaf)&&(await createNewWorldInfo(_0x42adaf),_0x1496e3=!![]);const _0x4c09b1=''+LOREBOOK_PREFIX+_0xbdf82a,_0x160839=await loadWorldInfo(_0x42adaf);if(!_0x160839){toastr[_0x15c3f9(0x10c)](_0x15c3f9(0x110)+_0x42adaf+'》','Amily2号'),console[_0x15c3f9(0x10b)]();return;}const _0x5bbe51=Object[_0x15c3f9(0xfd)](_0x160839[_0x15c3f9(0x16d)])[_0x15c3f9(0x14b)](_0x3cf629=>_0x3cf629['comment']===_0x4c09b1&&!_0x3cf629[_0x15c3f9(0x134)]);if(_0x5bbe51){const _0x45146b=_0x5bbe51[_0x15c3f9(0x14d)]['replace'](INTRODUCTORY_TEXT,'')[_0x15c3f9(0x122)](),_0xdf1bb6=_0x45146b?_0x45146b[_0x15c3f9(0x149)]('\x0a'):[],_0x532ecc=_0xdf1bb6[_0x15c3f9(0x165)]+0x1;_0x5bbe51[_0x15c3f9(0x14d)]+='\x0a'+_0x532ecc+'.\x20'+_0x3df9ff;}else{const _0x17ca00={'before_char':0x0,'after_char':0x1,'before_an':0x2,'after_an':0x3,'at_depth':0x4},_0x567c62=_0x5779b7[_0x15c3f9(0x11c)][_0x15c3f9(0x149)](',')['map'](_0x5a9a96=>_0x5a9a96[_0x15c3f9(0x122)]())[_0x15c3f9(0x112)](Boolean),_0x541219=_0x5779b7[_0x15c3f9(0x109)]===_0x15c3f9(0x150),_0x131e4f=createWorldInfoEntry(_0x42adaf,_0x160839);Object['assign'](_0x131e4f,{'comment':_0x4c09b1,'content':INTRODUCTORY_TEXT+_0x15c3f9(0x11d)+_0x3df9ff,'key':_0x567c62,'constant':_0x541219,'position':_0x17ca00[_0x5779b7['insertionPosition']]??0x4,'depth':_0x5779b7[_0x15c3f9(0x137)],'disable':![]});}await saveWorldInfo(_0x42adaf,_0x160839,!![]),console['log'](_0x15c3f9(0x14f)+_0x42adaf+_0x15c3f9(0x120)),_0x1496e3&&(await refreshWorldbookListOnly(_0x42adaf),toastr[_0x15c3f9(0x11a)](_0x15c3f9(0x164)+_0x42adaf+'》!','Amily2号'));}catch(_0x43d8cc){console[_0x15c3f9(0x10c)](_0x15c3f9(0x130),_0x43d8cc),toastr[_0x15c3f9(0x10c)](_0x15c3f9(0x12e),_0x15c3f9(0x169));}finally{console['timeEnd']('总结写入总耗时'),console['groupEnd']();}}function _0x8a8a(_0x1a2181,_0x3c5264){const _0x1a2f5b=_0x1a2f();return _0x8a8a=function(_0x8a8ac1,_0x3f416a){_0x8a8ac1=_0x8a8ac1-0xf9;let _0x2e3dc2=_0x1a2f5b[_0x8a8ac1];return _0x2e3dc2;},_0x8a8a(_0x1a2181,_0x3c5264);}export async function getPlotOptimizedWorldbookContent(_0x1dd3db,_0x39da81){const _0x8aa659=_0x29db3e,_0x1be78d=$(_0x8aa659(0x132));let _0x2db7bc={};if(_0x1be78d['length']>0x0){_0x2db7bc[_0x8aa659(0x146)]=_0x1be78d[_0x8aa659(0x14b)]('#amily2_opt_worldbook_enabled')['is'](_0x8aa659(0x167)),_0x2db7bc['worldbookSource']=_0x1be78d[_0x8aa659(0x14b)](_0x8aa659(0x105))[_0x8aa659(0x126)]()||'character',_0x2db7bc[_0x8aa659(0x160)]=_0x1be78d['find'](_0x8aa659(0x131))[_0x8aa659(0x126)]()||[],_0x2db7bc['worldbookCharLimit']=parseInt(_0x1be78d[_0x8aa659(0x14b)](_0x8aa659(0x103))[_0x8aa659(0x126)](),0xa)||0xea60;let _0x2088ba={};_0x1be78d[_0x8aa659(0x14b)](_0x8aa659(0x142))['each'](function(){const _0x5498d1=_0x8aa659;if($(this)['is'](':checked')){const _0x1105b7=$(this)[_0x5498d1(0x107)]('book'),_0x34b8c7=parseInt($(this)['data'](_0x5498d1(0x15e)));!_0x2088ba[_0x1105b7]&&(_0x2088ba[_0x1105b7]=[]),_0x2088ba[_0x1105b7][_0x5498d1(0x10d)](_0x34b8c7);}}),_0x2db7bc[_0x8aa659(0x15b)]=_0x2088ba;}else console[_0x8aa659(0x123)]('[剧情优化大师]\x20未找到设置面板,世界书功能将回退到使用已保存的设置。'),_0x2db7bc={'worldbookEnabled':_0x39da81[_0x8aa659(0x146)],'worldbookSource':_0x39da81[_0x8aa659(0x11b)],'selectedWorldbooks':_0x39da81[_0x8aa659(0x160)],'worldbookCharLimit':_0x39da81['worldbookCharLimit'],'enabledWorldbookEntries':_0x39da81[_0x8aa659(0x15b)]};if(!_0x2db7bc[_0x8aa659(0x146)])return'';if(!window['TavernHelper']?.[_0x8aa659(0x119)]||!_0x1dd3db)return console[_0x8aa659(0x123)](_0x8aa659(0x12d)),'';try{let _0x4a12e1=[];if(_0x2db7bc[_0x8aa659(0x11b)]===_0x8aa659(0x153)){_0x4a12e1=_0x2db7bc[_0x8aa659(0x160)];if(_0x4a12e1[_0x8aa659(0x165)]===0x0)return'';}else{const _0x11b682=await window['TavernHelper'][_0x8aa659(0x12b)]({'type':_0x8aa659(0x143)});if(_0x11b682[_0x8aa659(0x151)])_0x4a12e1['push'](_0x11b682[_0x8aa659(0x151)]);if(_0x11b682['additional']?.['length'])_0x4a12e1[_0x8aa659(0x10d)](..._0x11b682['additional']);if(_0x4a12e1[_0x8aa659(0x165)]===0x0)return'';}let _0x462b4d=[];for(const _0x47acfe of _0x4a12e1){if(_0x47acfe){const _0x48cd5a=await window['TavernHelper'][_0x8aa659(0x119)](_0x47acfe);_0x48cd5a?.[_0x8aa659(0x165)]&&_0x48cd5a['forEach'](_0x3c7824=>_0x462b4d['push']({..._0x3c7824,'bookName':_0x47acfe}));}}if(_0x462b4d[_0x8aa659(0x165)]===0x0)return'';const _0x56ed61=_0x2db7bc[_0x8aa659(0x15b)]||{},_0x28b4dc=_0x462b4d['filter'](_0x285546=>{const _0x1f46bc=_0x8aa659;if(!_0x285546['enabled'])return![];const _0x13add6=_0x56ed61[_0x285546[_0x1f46bc(0x163)]];return _0x13add6?_0x13add6[_0x1f46bc(0x15d)](_0x285546['uid']):![];});if(_0x28b4dc[_0x8aa659(0x165)]===0x0)return'';const _0xf09378=_0x1dd3db[_0x8aa659(0x129)]['map'](_0x2df629=>_0x2df629[_0x8aa659(0x15f)])[_0x8aa659(0x101)]('\x0a')[_0x8aa659(0xff)](),_0xe27eda=_0x41ff9e=>[...new Set([..._0x41ff9e['key']||[],..._0x41ff9e['keys']||[]])]['map'](_0x1e08ec=>_0x1e08ec[_0x8aa659(0xff)]()),_0x25e8ba=_0x28b4dc[_0x8aa659(0x112)](_0x282fc0=>_0x282fc0[_0x8aa659(0x154)]==='constant');let _0x2f130b=_0x28b4dc[_0x8aa659(0x112)](_0x3bb603=>_0x3bb603['type']!==_0x8aa659(0x104));const _0x290233=new Set([..._0x25e8ba]);while(!![]){let _0x472b49=![];const _0x11f26c=Array['from'](_0x290233)[_0x8aa659(0x112)](_0x3c7856=>!_0x3c7856['prevent_recursion'])[_0x8aa659(0x12a)](_0x61527c=>_0x61527c[_0x8aa659(0x14d)])[_0x8aa659(0x101)]('\x0a')[_0x8aa659(0xff)](),_0x1ecccc=_0xf09378+'\x0a'+_0x11f26c,_0xb5ebdb=[];for(const _0x4c75f0 of _0x2f130b){const _0x1b54ee=_0xe27eda(_0x4c75f0);let _0x118940=_0x1b54ee[_0x8aa659(0x165)]>0x0&&_0x1b54ee[_0x8aa659(0x13b)](_0x4b33e7=>_0x4c75f0[_0x8aa659(0xfa)]?_0xf09378[_0x8aa659(0x15d)](_0x4b33e7):_0x1ecccc[_0x8aa659(0x15d)](_0x4b33e7));_0x118940?(_0x290233[_0x8aa659(0x138)](_0x4c75f0),_0x472b49=!![]):_0xb5ebdb[_0x8aa659(0x10d)](_0x4c75f0);}if(!_0x472b49)break;_0x2f130b=_0xb5ebdb;}const _0xadab9b=Array['from'](_0x290233)['map'](_0x322478=>_0x322478[_0x8aa659(0x14d)])[_0x8aa659(0x112)](Boolean);if(_0xadab9b[_0x8aa659(0x165)]===0x0)return'';const _0x31b577=_0xadab9b[_0x8aa659(0x101)](_0x8aa659(0x139)),_0x3cd49b=_0x2db7bc[_0x8aa659(0x157)];if(_0x31b577['length']>_0x3cd49b)return console[_0x8aa659(0x141)](_0x8aa659(0x14c)+_0x31b577[_0x8aa659(0x165)]+_0x8aa659(0x156)+_0x3cd49b+_0x8aa659(0x145)),_0x31b577[_0x8aa659(0x114)](0x0,_0x3cd49b);return _0x31b577;}catch(_0xb014f5){return console[_0x8aa659(0x10c)](_0x8aa659(0x144),_0xb014f5),'';}}
|