mirror of
https://github.com/SilenceLurker/ST-Amily2-Chat-Optimisation.git
synced 2026-06-06 15:55:50 +00:00
2 lines
38 KiB
JavaScript
2 lines
38 KiB
JavaScript
const _0x16d82b=_0x4696;(function(_0x573089,_0x2d98b9){const _0x524c53=_0x4696,_0x5b8558=_0x573089();while(!![]){try{const _0x441728=parseInt(_0x524c53(0x244))/0x1+-parseInt(_0x524c53(0x26b))/0x2+parseInt(_0x524c53(0x1d6))/0x3*(-parseInt(_0x524c53(0x21a))/0x4)+-parseInt(_0x524c53(0x258))/0x5*(-parseInt(_0x524c53(0x1a5))/0x6)+parseInt(_0x524c53(0x265))/0x7*(parseInt(_0x524c53(0x268))/0x8)+-parseInt(_0x524c53(0x22b))/0x9*(parseInt(_0x524c53(0x1ea))/0xa)+-parseInt(_0x524c53(0x1e3))/0xb*(-parseInt(_0x524c53(0x266))/0xc);if(_0x441728===_0x2d98b9)break;else _0x5b8558['push'](_0x5b8558['shift']());}catch(_0x24a92b){_0x5b8558['push'](_0x5b8558['shift']());}}}(_0x3af9,0xa2532));import{getContext,extension_settings}from'/scripts/extensions.js';import{saveChat,saveSettingsDebounced}from'/script.js';import{log}from'./logger.js';import{getChatPiece,saveChatDebounced}from'../../utils/utils.js';import{extensionName}from'../../utils/settings.js';import{DEFAULT_AI_RULE_TEMPLATE,DEFAULT_AI_FLOW_TEMPLATE}from'./settings.js';const TABLE_DATA_KEY='amily2_tables_data';let currentTablesState=null,highlightedCells=new Set();export function addHighlight(_0x5bcaf8,_0xd184e2,_0x5c2ab8){const _0x4fc59b=_0x4696,_0x43d337=_0x5bcaf8+'-'+_0xd184e2+'-'+_0x5c2ab8;highlightedCells[_0x4fc59b(0x1e1)](_0x43d337);}export function getHighlights(){return highlightedCells;}export function clearHighlights(){const _0x4200b6=_0x4696;highlightedCells[_0x4200b6(0x1d1)]>0x0&&(highlightedCells[_0x4200b6(0x232)](),log(_0x4200b6(0x262),_0x4200b6(0x202)));}export function setMemoryState(_0x14f10d){currentTablesState=_0x14f10d;}export function getMemoryState(){return currentTablesState;}const defaultTemplate={'tables':[{'name':'时空栏','headers':['日期','时段','时间','地点',_0x16d82b(0x237)],'note':_0x16d82b(0x230),'rule_add':_0x16d82b(0x1cd),'rule_delete':_0x16d82b(0x23a),'rule_update':_0x16d82b(0x229),'rows':[]},{'name':'角色栏','headers':[_0x16d82b(0x1be),'外貌','身体','衣着','性格','身份','职业',_0x16d82b(0x240),_0x16d82b(0x216),'爱好','住所',_0x16d82b(0x1af)],'note':'角色的基础信息csv表格,思考本轮有否有其中的角色,他应作出什么反应/外貌指:五官、面容、肤色、发型等/身体指:体型、身材、肤色、罩杯等/衣着指:身上的穿戴、服装的式样等/身份指:出身、社会地位等/职业指职责、岗位等/与<user>关系指:角色与<user>的社会关系(如:父亲、母亲、姐姐、妻子等)/爱好指:拥有浓厚兴趣和喜爱的某种事物、人物、活动/住所指:经常居住地','rule_add':_0x16d82b(0x1bf),'rule_delete':_0x16d82b(0x201),'rule_update':_0x16d82b(0x24f),'rows':[]},{'name':_0x16d82b(0x21c),'headers':[_0x16d82b(0x1f5),'类型','详情','状态',_0x16d82b(0x259),'地点','结果','开始时间',_0x16d82b(0x1ab)],'note':'记录已完成或进展中重要、关键事情的任务、命令、约定/禁止记录不重要、不关键的事情/开始和结束时间应精确至具体日期、时段、时间','rule_add':_0x16d82b(0x248),'rule_delete':_0x16d82b(0x223),'rule_update':_0x16d82b(0x256),'rows':[]},{'name':_0x16d82b(0x1d4),'headers':[_0x16d82b(0x20a),'类型','详情','状态',_0x16d82b(0x22c),_0x16d82b(0x238)],'note':_0x16d82b(0x235),'rule_add':_0x16d82b(0x1a8),'rule_delete':'消耗品彻底使用完后/一次性物品被使用后','rule_update':_0x16d82b(0x246),'rows':[]},{'name':'公告栏','headers':['类型',_0x16d82b(0x25e)],'note':'上层叙事者留下的各种提示、要求、命令/禁止私自增、删、改','rule_add':'上层叙事者在第四面墙外对故事或游戏进行提示、要求、命令时/上层叙事者使用括号包裹提示、要求、命令时','rule_delete':'上层叙事者明确要求需要删除时','rule_update':'上层叙事者明确要求需要修改时','rows':[]}]};function getDefaultTables(){const _0x15aff2=_0x16d82b;return log(_0x15aff2(0x22f),_0x15aff2(0x202)),JSON['parse'](JSON[_0x15aff2(0x1c2)](defaultTemplate[_0x15aff2(0x1d0)]));}export function loadTables(_0xfd6cee=-0x1){const _0x21bbc0=_0x16d82b,_0x39b0b5=getContext();if(_0x39b0b5&&_0x39b0b5[_0x21bbc0(0x19c)]&&_0x39b0b5[_0x21bbc0(0x19c)]['length']>0x0){const _0x4b75b9=_0xfd6cee===-0x1?_0x39b0b5[_0x21bbc0(0x19c)]['length']-0x1:_0xfd6cee-0x1;for(let _0x34a727=_0x4b75b9;_0x34a727>=0x0;_0x34a727--){const _0x20524e=_0x39b0b5[_0x21bbc0(0x19c)][_0x34a727];if(_0x20524e[_0x21bbc0(0x1de)]&&_0x20524e['extra'][TABLE_DATA_KEY]){log(_0x21bbc0(0x1ef)+_0x34a727+_0x21bbc0(0x1fa),_0x21bbc0(0x202));let _0x73d864=JSON[_0x21bbc0(0x204)](JSON['stringify'](_0x20524e[_0x21bbc0(0x1de)][TABLE_DATA_KEY]));return _0x73d864['forEach'](_0x3de6c0=>{const _0x16eeb5=_0x21bbc0;if(_0x3de6c0[_0x16eeb5(0x1d2)]===undefined)_0x3de6c0[_0x16eeb5(0x1d2)]='无';if(_0x3de6c0['rule_add']===undefined)_0x3de6c0[_0x16eeb5(0x23e)]='允许';if(_0x3de6c0[_0x16eeb5(0x23b)]===undefined)_0x3de6c0['rule_delete']='允许';if(_0x3de6c0[_0x16eeb5(0x1b1)]===undefined)_0x3de6c0[_0x16eeb5(0x1b1)]='允许';}),currentTablesState=_0x73d864,currentTablesState;}}}if(extension_settings[extensionName]?.[_0x21bbc0(0x19a)]){log(_0x21bbc0(0x20e),_0x21bbc0(0x202));try{const _0x155b08=extension_settings[extensionName][_0x21bbc0(0x19a)];return currentTablesState=JSON[_0x21bbc0(0x204)](JSON[_0x21bbc0(0x1c2)](_0x155b08[_0x21bbc0(0x1d0)])),currentTablesState;}catch(_0x2fbe07){log(_0x21bbc0(0x1ca)+_0x2fbe07['message'],_0x21bbc0(0x1eb));}}return log(_0x21bbc0(0x198),_0x21bbc0(0x202)),currentTablesState=getDefaultTables(),currentTablesState;}export function saveStateToMessage(_0x1a5ab4,_0x6808a8){const _0x29b6db=_0x16d82b;if(!_0x1a5ab4||!_0x6808a8)return log(_0x29b6db(0x263),_0x29b6db(0x1eb)),![];return!_0x6808a8[_0x29b6db(0x1de)]&&(_0x6808a8[_0x29b6db(0x1de)]={}),_0x6808a8[_0x29b6db(0x1de)][TABLE_DATA_KEY]=JSON[_0x29b6db(0x204)](JSON[_0x29b6db(0x1c2)](_0x1a5ab4)),log(_0x29b6db(0x24a)+_0x6808a8[_0x29b6db(0x20c)]['substring'](0x0,0x14)+_0x29b6db(0x1a7),_0x29b6db(0x202)),!![];}export function saveTables(_0x5bd9e6='未知操作'){const _0x3149bb=_0x16d82b;return log(_0x3149bb(0x1c1)+_0x5bd9e6+_0x3149bb(0x1e7),_0x3149bb(0x202)),!![];}export function deleteColumn(_0x114ce0,_0x5602ae){const _0x3c9335=_0x16d82b,_0x2fb394=getMemoryState();if(!_0x2fb394[_0x114ce0]||_0x5602ae<0x0||_0x5602ae>=_0x2fb394[_0x114ce0]['headers'][_0x3c9335(0x19f)]){log(_0x3c9335(0x1cb)+_0x114ce0+_0x3c9335(0x24d)+_0x5602ae+'\x20的列。',_0x3c9335(0x1eb));return;}_0x2fb394[_0x114ce0][_0x3c9335(0x200)][_0x3c9335(0x1e0)](_0x5602ae,0x1),_0x2fb394[_0x114ce0][_0x3c9335(0x26d)][_0x3c9335(0x1a2)](_0x2e4ec6=>{const _0x49c2f8=_0x3c9335;_0x2e4ec6[_0x49c2f8(0x19f)]>_0x5602ae&&_0x2e4ec6[_0x49c2f8(0x1e0)](_0x5602ae,0x1);}),log(_0x3c9335(0x1a1)+_0x114ce0+_0x3c9335(0x234)+(_0x5602ae+0x1)+'\x20列。','success'),saveTables(_0x2fb394);}export function moveRow(_0x948c61,_0x5a7c19,_0x54f2a2){const _0x3d23ea=_0x16d82b,_0x5ab251=getMemoryState(),_0x52b5ac=_0x5ab251[_0x948c61];if(!_0x52b5ac||_0x5a7c19<0x0||_0x5a7c19>=_0x52b5ac[_0x3d23ea(0x26d)][_0x3d23ea(0x19f)])return;const _0x248c07=_0x54f2a2==='up'?_0x5a7c19-0x1:_0x5a7c19+0x1;if(_0x248c07<0x0||_0x248c07>=_0x52b5ac['rows']['length'])return;const [_0x524e85]=_0x52b5ac['rows']['splice'](_0x5a7c19,0x1);_0x52b5ac[_0x3d23ea(0x26d)][_0x3d23ea(0x1e0)](_0x248c07,0x0,_0x524e85),log('成功将表格\x20'+_0x948c61+_0x3d23ea(0x234)+(_0x5a7c19+0x1)+'\x20行移动到第\x20'+(_0x248c07+0x1)+_0x3d23ea(0x207),_0x3d23ea(0x264)),saveTables(_0x5ab251);}export function insertRow(_0x14d34b,_0x3b54c7,_0x26f8f7=_0x16d82b(0x1f2)){const _0x5686ac=_0x16d82b,_0x24376a=getMemoryState(),_0x16cef5=_0x24376a[_0x14d34b];if(!_0x16cef5){log(_0x5686ac(0x260)+_0x14d34b+_0x5686ac(0x19b),_0x5686ac(0x1eb));return;}let _0x3ede41;typeof _0x3b54c7===_0x5686ac(0x214)?_0x3ede41=_0x26f8f7==='above'?_0x3b54c7:_0x3b54c7+0x1:_0x3ede41=_0x16cef5[_0x5686ac(0x26d)][_0x5686ac(0x19f)];if(_0x3ede41<0x0)_0x3ede41=0x0;if(_0x3ede41>_0x16cef5[_0x5686ac(0x26d)][_0x5686ac(0x19f)])_0x3ede41=_0x16cef5[_0x5686ac(0x26d)][_0x5686ac(0x19f)];const _0x43eb8b=new Array(_0x16cef5['headers'][_0x5686ac(0x19f)])['fill']('');if(typeof _0x3b54c7==='object'&&_0x3b54c7!==null)for(const _0x340b16 in _0x3b54c7){const _0x19e6d8=parseInt(_0x340b16,0xa);!isNaN(_0x19e6d8)&&_0x19e6d8<_0x43eb8b[_0x5686ac(0x19f)]&&(_0x43eb8b[_0x19e6d8]=_0x3b54c7[_0x340b16],addHighlight(_0x14d34b,_0x3ede41,_0x19e6d8));}_0x16cef5[_0x5686ac(0x26d)][_0x5686ac(0x1e0)](_0x3ede41,0x0,_0x43eb8b),log('成功在表格\x20'+_0x16cef5[_0x5686ac(0x220)]+_0x5686ac(0x1a0)+_0x14d34b+_0x5686ac(0x226)+(_0x3ede41+0x1)+_0x5686ac(0x25c),_0x5686ac(0x264));const _0x246de4=getContext();if(_0x246de4[_0x5686ac(0x19c)]&&_0x246de4[_0x5686ac(0x19c)][_0x5686ac(0x19f)]>0x0){const _0x4b848c=_0x246de4['chat'][_0x246de4[_0x5686ac(0x19c)]['length']-0x1];if(saveStateToMessage(_0x24376a,_0x4b848c)){saveChat();return;}}saveChatDebounced();}export function addRow(_0x4ac3b3){const _0x42bebc=_0x16d82b;if(!currentTablesState||!currentTablesState[_0x4ac3b3])return;const _0x2c4bf2=currentTablesState[_0x4ac3b3],_0x4c2aea=_0x2c4bf2[_0x42bebc(0x200)][_0x42bebc(0x19f)],_0x42fa6e=Array(_0x4c2aea)[_0x42bebc(0x1ce)]('');_0x2c4bf2[_0x42bebc(0x26d)][_0x42bebc(0x21e)](_0x42fa6e);const _0x50e9f6=_0x42bebc(0x22e)+_0x2c4bf2['name']+_0x42bebc(0x1c4);log(_0x50e9f6,_0x42bebc(0x202));const _0x4a122d=getContext();if(_0x4a122d[_0x42bebc(0x19c)]&&_0x4a122d[_0x42bebc(0x19c)][_0x42bebc(0x19f)]>0x0){const _0x228968=_0x4a122d[_0x42bebc(0x19c)][_0x4a122d[_0x42bebc(0x19c)][_0x42bebc(0x19f)]-0x1];if(saveStateToMessage(currentTablesState,_0x228968)){saveChat();return;}}saveChatDebounced();}export function addColumn(_0x4c3c8b){const _0x1b2ec0=_0x16d82b;if(!currentTablesState||!currentTablesState[_0x4c3c8b])return;const _0x4eb83c=currentTablesState[_0x4c3c8b],_0x3c911e=_0x1b2ec0(0x206)+(_0x4eb83c[_0x1b2ec0(0x200)][_0x1b2ec0(0x19f)]+0x1);_0x4eb83c[_0x1b2ec0(0x200)][_0x1b2ec0(0x21e)](_0x3c911e),_0x4eb83c[_0x1b2ec0(0x26d)][_0x1b2ec0(0x1a2)](_0x491b3a=>_0x491b3a[_0x1b2ec0(0x21e)](''));const _0x3a649e=_0x1b2ec0(0x22e)+_0x4eb83c[_0x1b2ec0(0x220)]+']\x20新增了一列。';log(_0x3a649e,_0x1b2ec0(0x202));const _0xd09ab1=getContext();if(_0xd09ab1[_0x1b2ec0(0x19c)]&&_0xd09ab1[_0x1b2ec0(0x19c)]['length']>0x0){const _0x433057=_0xd09ab1['chat'][_0xd09ab1[_0x1b2ec0(0x19c)][_0x1b2ec0(0x19f)]-0x1];if(saveStateToMessage(currentTablesState,_0x433057)){saveChat();return;}}saveChatDebounced();}export function updateHeader(_0xc3cfac,_0x25cee8,_0x22d4f2){const _0x5a62ec=_0x16d82b;if(!currentTablesState||!currentTablesState[_0xc3cfac]||currentTablesState[_0xc3cfac][_0x5a62ec(0x200)][_0x25cee8]===undefined)return;const _0x103429=currentTablesState[_0xc3cfac][_0x5a62ec(0x220)],_0x580a4d=currentTablesState[_0xc3cfac][_0x5a62ec(0x200)][_0x25cee8];currentTablesState[_0xc3cfac][_0x5a62ec(0x200)][_0x25cee8]=_0x22d4f2;const _0x3d6769=_0x5a62ec(0x22e)+_0x103429+_0x5a62ec(0x1b5)+_0x580a4d+_0x5a62ec(0x26c)+_0x22d4f2+'”。';log(_0x3d6769,_0x5a62ec(0x202));const _0x12d661=getContext();if(_0x12d661[_0x5a62ec(0x19c)]&&_0x12d661[_0x5a62ec(0x19c)][_0x5a62ec(0x19f)]>0x0){const _0x3793ab=_0x12d661[_0x5a62ec(0x19c)][_0x12d661[_0x5a62ec(0x19c)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x3793ab)){saveChat();return;}}saveChatDebounced();}export async function deleteRow(_0x3c6a04,_0x1e9082){const _0x7a2e03=_0x16d82b;if(!currentTablesState||!currentTablesState[_0x3c6a04]||!currentTablesState[_0x3c6a04][_0x7a2e03(0x26d)][_0x1e9082])return;const _0x4f8a82=currentTablesState[_0x3c6a04][_0x7a2e03(0x220)];currentTablesState[_0x3c6a04]['rows'][_0x7a2e03(0x1e0)](_0x1e9082,0x1);const _0x5f3315=_0x7a2e03(0x22e)+_0x4f8a82+']\x20的第\x20'+(_0x1e9082+0x1)+_0x7a2e03(0x253);log(_0x5f3315,_0x7a2e03(0x202));const _0x5f1b5d=getContext();if(_0x5f1b5d[_0x7a2e03(0x19c)]&&_0x5f1b5d[_0x7a2e03(0x19c)][_0x7a2e03(0x19f)]>0x0){const _0xf75991=_0x5f1b5d[_0x7a2e03(0x19c)][_0x5f1b5d['chat']['length']-0x1];if(saveStateToMessage(currentTablesState,_0xf75991)){await saveChat();return;}}await saveChatDebounced();}export function insertColumn(_0x4865eb,_0xb6d7d5,_0x56d963){const _0xa52bb0=_0x16d82b;if(!currentTablesState||!currentTablesState[_0x4865eb])return;const _0x23921c=currentTablesState[_0x4865eb],_0x4a2493=_0x56d963===_0xa52bb0(0x1ed)?_0xb6d7d5:_0xb6d7d5+0x1,_0x48b1b2='新列';_0x23921c[_0xa52bb0(0x200)][_0xa52bb0(0x1e0)](_0x4a2493,0x0,_0x48b1b2),_0x23921c[_0xa52bb0(0x26d)][_0xa52bb0(0x1a2)](_0x4cc54d=>_0x4cc54d['splice'](_0x4a2493,0x0,''));const _0x500199=_0xa52bb0(0x22e)+_0x23921c[_0xa52bb0(0x220)]+_0xa52bb0(0x25d)+(_0xb6d7d5+0x1)+'\x20列的'+(_0x56d963===_0xa52bb0(0x1ed)?'左侧':'右侧')+_0xa52bb0(0x24b);log(_0x500199,_0xa52bb0(0x202));const _0x1a3def=getContext();if(_0x1a3def[_0xa52bb0(0x19c)]&&_0x1a3def[_0xa52bb0(0x19c)][_0xa52bb0(0x19f)]>0x0){const _0x5dde8f=_0x1a3def[_0xa52bb0(0x19c)][_0x1a3def[_0xa52bb0(0x19c)][_0xa52bb0(0x19f)]-0x1];if(saveStateToMessage(currentTablesState,_0x5dde8f)){saveChat();return;}}saveChatDebounced();}export function moveColumn(_0x24909c,_0x3d6045,_0x37cc09){const _0x488044=_0x16d82b;if(!currentTablesState||!currentTablesState[_0x24909c])return;const _0x2d0e52=currentTablesState[_0x24909c],_0x3190df=_0x2d0e52[_0x488044(0x200)],_0x3e737c=_0x2d0e52[_0x488044(0x26d)],_0x3356f8=_0x37cc09===_0x488044(0x1ed)?_0x3d6045-0x1:_0x3d6045+0x1;if(_0x3356f8<0x0||_0x3356f8>=_0x3190df['length']){log(_0x488044(0x241)+_0x3d6045+_0x488044(0x261),_0x488044(0x26a));return;}const [_0x203832]=_0x3190df['splice'](_0x3d6045,0x1);_0x3190df[_0x488044(0x1e0)](_0x3356f8,0x0,_0x203832),_0x3e737c[_0x488044(0x1a2)](_0x4ed154=>{const _0x26372c=_0x488044,[_0x344f0f]=_0x4ed154[_0x26372c(0x1e0)](_0x3d6045,0x1);_0x4ed154['splice'](_0x3356f8,0x0,_0x344f0f);});const _0x33acab='表格\x20['+_0x2d0e52[_0x488044(0x220)]+_0x488044(0x1e5)+_0x203832+_0x488044(0x22d)+(_0x37cc09===_0x488044(0x1ed)?'左':'右')+_0x488044(0x1f0);log(_0x33acab,_0x488044(0x202));const _0x17232b=getContext();if(_0x17232b[_0x488044(0x19c)]&&_0x17232b[_0x488044(0x19c)][_0x488044(0x19f)]>0x0){const _0x308896=_0x17232b['chat'][_0x17232b[_0x488044(0x19c)][_0x488044(0x19f)]-0x1];if(saveStateToMessage(currentTablesState,_0x308896)){saveChat();return;}}saveChatDebounced();}export function deleteTable(_0x198b9d){const _0x4254ae=_0x16d82b;if(!currentTablesState||!currentTablesState[_0x198b9d])return;const _0xbebc7b=currentTablesState[_0x198b9d][_0x4254ae(0x220)];currentTablesState[_0x4254ae(0x1e0)](_0x198b9d,0x1);const _0x222ae1=_0x4254ae(0x22e)+_0xbebc7b+_0x4254ae(0x257);log(_0x222ae1,_0x4254ae(0x264));const _0x81ccad=getContext();if(_0x81ccad[_0x4254ae(0x19c)]&&_0x81ccad[_0x4254ae(0x19c)]['length']>0x0){const _0x1af2c8=_0x81ccad[_0x4254ae(0x19c)][_0x81ccad[_0x4254ae(0x19c)][_0x4254ae(0x19f)]-0x1];if(saveStateToMessage(currentTablesState,_0x1af2c8)){saveChat(),log('废黜表格后的状态已强制写入最新消息并立即保存。','success');return;}}log('无法找到可锚定的消息或保存失败,删除操作可能不会被持久化!',_0x4254ae(0x1eb)),saveChatDebounced();}export function addTable(_0x49cc8a){const _0xa251b1=_0x16d82b;if(!_0x49cc8a||!_0x49cc8a[_0xa251b1(0x25b)]()){log('无法创建表格:名称不能为空。',_0xa251b1(0x1eb)),toastr[_0xa251b1(0x1eb)](_0xa251b1(0x1fb),_0xa251b1(0x1c8));return;}!currentTablesState&&loadTables();if(currentTablesState[_0xa251b1(0x1a9)](_0x10315e=>_0x10315e[_0xa251b1(0x220)]===_0x49cc8a[_0xa251b1(0x25b)]())){log('无法创建表格:名为\x20\x22'+_0x49cc8a+_0xa251b1(0x1fe),_0xa251b1(0x1eb)),toastr['error'](_0xa251b1(0x1d3)+_0x49cc8a+'\x22\x20的表格已存在。',_0xa251b1(0x1c8));return;}const _0xa32cd3={'name':_0x49cc8a[_0xa251b1(0x25b)](),'headers':[_0xa251b1(0x211)],'rows':[],'note':'这是一个新创建的表格。','rule_add':'允许','rule_delete':'允许','rule_update':'允许'};currentTablesState['push'](_0xa32cd3);const _0x133339=_0xa251b1(0x1dd)+_0x49cc8a[_0xa251b1(0x25b)]()+']。';log(_0x133339,'success');const _0x2fd449=getContext();if(_0x2fd449[_0xa251b1(0x19c)]&&_0x2fd449['chat'][_0xa251b1(0x19f)]>0x0){const _0x2ff0aa=_0x2fd449['chat'][_0x2fd449[_0xa251b1(0x19c)][_0xa251b1(0x19f)]-0x1];if(saveStateToMessage(currentTablesState,_0x2ff0aa)){saveChat(),log(_0xa251b1(0x215),'success');return;}}log('无法找到可锚定的消息或保存失败,新表格可能不会被持久化!',_0xa251b1(0x1eb)),saveChatDebounced();}export function moveTable(_0x40ad9e,_0x419528){const _0x3c7093=_0x16d82b;if(!currentTablesState||!currentTablesState[_0x40ad9e])return;const _0x51fb7a=_0x419528==='up'?_0x40ad9e-0x1:_0x40ad9e+0x1;if(_0x51fb7a<0x0||_0x51fb7a>=currentTablesState['length']){log('无法移动表格:索引\x20'+_0x40ad9e+_0x3c7093(0x261),_0x3c7093(0x26a));return;}const _0x4fc411=currentTablesState[_0x40ad9e];currentTablesState[_0x40ad9e]=currentTablesState[_0x51fb7a],currentTablesState[_0x51fb7a]=_0x4fc411;const _0x260c0a=_0x3c7093(0x22e)+_0x4fc411[_0x3c7093(0x220)]+_0x3c7093(0x1db);log(_0x260c0a,_0x3c7093(0x264));const _0x7ada72=getContext();if(_0x7ada72[_0x3c7093(0x19c)]&&_0x7ada72[_0x3c7093(0x19c)][_0x3c7093(0x19f)]>0x0){const _0x2eee80=_0x7ada72[_0x3c7093(0x19c)][_0x7ada72['chat'][_0x3c7093(0x19f)]-0x1];if(saveStateToMessage(currentTablesState,_0x2eee80)){saveChat(),log(_0x3c7093(0x20f),'success');return;}}log('无法找到可锚定的消息或保存失败,顺序调整可能不会被持久化!','error'),saveChatDebounced();}export function updateTableRules(_0x20029e,_0x104be){const _0x4dfdb7=_0x16d82b;if(!currentTablesState||!currentTablesState[_0x20029e])return;const _0x22fc67=currentTablesState[_0x20029e];_0x22fc67['note']=_0x104be[_0x4dfdb7(0x1d2)],_0x22fc67[_0x4dfdb7(0x23e)]=_0x104be[_0x4dfdb7(0x23e)],_0x22fc67['rule_delete']=_0x104be[_0x4dfdb7(0x23b)],_0x22fc67[_0x4dfdb7(0x1b1)]=_0x104be[_0x4dfdb7(0x1b1)];const _0x32e26f=_0x4dfdb7(0x22e)+_0x22fc67[_0x4dfdb7(0x220)]+']\x20的规则已更新。';log(_0x32e26f,_0x4dfdb7(0x202));const _0x5eece7=getContext();if(_0x5eece7[_0x4dfdb7(0x19c)]&&_0x5eece7[_0x4dfdb7(0x19c)]['length']>0x0){const _0x3f4784=_0x5eece7[_0x4dfdb7(0x19c)][_0x5eece7[_0x4dfdb7(0x19c)][_0x4dfdb7(0x19f)]-0x1];if(saveStateToMessage(currentTablesState,_0x3f4784)){saveChat();return;}}saveChatDebounced();}export function updateRow(_0x1e3769,_0x5c62e8,_0x20d9f8){const _0x56f9df=_0x16d82b;if(!currentTablesState||!currentTablesState[_0x1e3769]){log(_0x56f9df(0x1ec)+_0x1e3769+_0x56f9df(0x23d),_0x56f9df(0x1eb));return;}const _0x2371f0=currentTablesState[_0x1e3769];if(_0x5c62e8>=_0x2371f0['rows']['length']){log(_0x56f9df(0x1f8)+_0x5c62e8+_0x56f9df(0x1b7)+_0x2371f0[_0x56f9df(0x220)]+_0x56f9df(0x243),_0x56f9df(0x26a)),insertRow(_0x1e3769,_0x20d9f8);return;}const _0x263a87=_0x2371f0[_0x56f9df(0x26d)][_0x5c62e8];for(const _0x420c54 in _0x20d9f8){const _0x46fe9e=parseInt(_0x420c54,0xa);_0x46fe9e<_0x263a87[_0x56f9df(0x19f)]&&(_0x263a87[_0x46fe9e]=_0x20d9f8[_0x46fe9e],addHighlight(_0x1e3769,_0x5c62e8,_0x46fe9e));}const _0x16c471=_0x56f9df(0x1dc)+_0x2371f0[_0x56f9df(0x220)]+']\x20的第\x20'+(_0x5c62e8+0x1)+_0x56f9df(0x207);log(_0x16c471,'info');const _0x45de6b=getContext();if(_0x45de6b['chat']&&_0x45de6b[_0x56f9df(0x19c)][_0x56f9df(0x19f)]>0x0){const _0x2c07bd=_0x45de6b['chat'][_0x45de6b['chat'][_0x56f9df(0x19f)]-0x1];if(saveStateToMessage(currentTablesState,_0x2c07bd)){saveChat();return;}}saveChatDebounced();}export function clearAllTables(){const _0x48eca8=_0x16d82b;if(!currentTablesState){log(_0x48eca8(0x212),'error');return;}currentTablesState[_0x48eca8(0x1a2)](_0x6d1e6b=>{const _0x519a4f=_0x48eca8;_0x6d1e6b[_0x519a4f(0x26d)]=[];}),log(_0x48eca8(0x254),_0x48eca8(0x26a));const _0x3d0d33=getContext();if(_0x3d0d33[_0x48eca8(0x19c)]&&_0x3d0d33['chat'][_0x48eca8(0x19f)]>0x0){const _0x2b69fa=_0x3d0d33['chat'][_0x3d0d33[_0x48eca8(0x19c)][_0x48eca8(0x19f)]-0x1];if(saveStateToMessage(currentTablesState,_0x2b69fa)){saveChat(),log(_0x48eca8(0x210),_0x48eca8(0x264)),toastr['success'](_0x48eca8(0x221),'操作完成');return;}}log('无法找到可锚定的消息或保存失败,清空操作可能不会被持久化!','error'),saveChatDebounced();}export function convertTablesToCsvString(){const _0x47ea07=_0x16d82b;!currentTablesState&&loadTables();if(!currentTablesState)return'';let _0x587f30='';return currentTablesState[_0x47ea07(0x1a2)]((_0x30a98b,_0x3fc50a)=>{const _0x8a640d=_0x47ea07;_0x587f30+='\x0a*\x20'+_0x3fc50a+':'+_0x30a98b[_0x8a640d(0x220)]+'\x0a',_0x587f30+=_0x8a640d(0x1b3)+(_0x30a98b[_0x8a640d(0x1d2)]||'无')+'\x0a';const _0x2d935b=_0x30a98b['name'][_0x8a640d(0x1c9)](/\s/g,'')+'内容';_0x587f30+='<'+_0x2d935b+'>\x0a';const _0x5eef68=_0x30a98b[_0x8a640d(0x200)]['map']((_0x1991b1,_0x168ee3)=>_0x168ee3+':'+_0x1991b1)[_0x8a640d(0x236)](',');_0x587f30+=_0x8a640d(0x1e8)+_0x5eef68+'\x0a',_0x30a98b[_0x8a640d(0x26d)][_0x8a640d(0x1a2)]((_0x33d9c5,_0x35a2d3)=>{const _0x1f01a8=_0x8a640d;if(Array[_0x1f01a8(0x1cc)](_0x33d9c5)){const _0x5bee12=_0x33d9c5[_0x1f01a8(0x1bb)](_0x297e46=>{const _0x530057=_0x1f01a8;return _0x297e46===null||_0x297e46===undefined||_0x297e46===''?'未知':_0x297e46[_0x530057(0x227)]();})['join'](',');_0x587f30+=_0x35a2d3+','+_0x5bee12+'\x0a';}}),_0x587f30+='</'+_0x2d935b+'>\x0a',_0x587f30+=_0x8a640d(0x1b6)+(_0x30a98b[_0x8a640d(0x23e)]||'允许')+'\x0a',_0x587f30+=_0x8a640d(0x24c)+(_0x30a98b['rule_delete']||'允许')+'\x0a',_0x587f30+=_0x8a640d(0x199)+(_0x30a98b[_0x8a640d(0x1b1)]||'允许')+'\x0a',_0x3fc50a<currentTablesState[_0x8a640d(0x19f)]-0x1&&(_0x587f30+=_0x8a640d(0x1da));}),_0x587f30;}function _0x3af9(){const _0x1483d1=['every','AI指令意图更新不存在的行\x20(rowIndex:\x20','batch_filler_flow_template','\x20条消息中找到基准表格数据。','表格名称不能为空。','】已开始下载。','完整备份','\x22\x20的表格已存在。','batch_filler_rule_template','headers','角色明确死亡且以后绝不会再出场时','info','用户取消了导入操作。','parse',',\x20data=','新列\x20','\x20行。','纯净预设','onchange','物品名','导入的表格数据格式不正确:\x20','mes','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20{\x20insertRow,\x20deleteRow,\x20updateRow\x20}\x20=\x20runner;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','未在聊天记录中找到表格,正在加载全局预设...','表格顺序调整后的状态已强制写入最新消息并立即保存。','清空行数据后的状态已强制写入最新消息并立即保存。','新列\x201','无法清空:当前表格状态为空。','Amily2-Table-Preset-v3.0-separated_templates','number','新表格状态已强制写入最新消息并立即保存。','对<user>态度','全局预设已成功导入并保存到扩展设置中。','slice','removeChild','6148xGQtlN','Amily2-Table-Preset-v2.0-clean','任务栏','导入预设失败:\x20','push','导入失败:','name','所有表格的剧情内容已清空。','【警告】\x0a\x0a导入操作将完全覆盖您当前的AI指令模板和所有表格(包括结构和内容)。\x0a\x0a此操作不可逆,是否确定要继续?','冻结留存/禁止删除','createElement','导入全局预设失败:\x20',')\x20的第\x20','toString','AI指令块为空,无需执行任何操作。','当叙述的场景、时间、人物变更时','aiFlowTemplate','27qtlisD','拥有者','”已向','表格\x20[','从预设模板生成默认表格...','记录时空信息的表格,应保持在一行/日期信息应精确到至几年几月几日(如果日期未知,应随便胡编一个日期)/时段规定(凌晨:0时至5时;早晨:5时至8时;上午:8时至11时;中午:11时至13时;下午:13时至16时;傍晚:16时至19时;晚上:19时至24时)/时间信息应精确至几时几分(如果时间未知,应随便胡编一个时间)/地点应为当前叙述的地点,且约精确越好','readAsText','clear','createObjectURL','\x20的第\x20','对某人很贵重或有特殊纪念意义的物品','join','此地角色','重要原因','files','此表大于一行时应删除多余行','rule_delete','】已成功导出。','\x20中操作。','rule_add','执行失败','与<user>关系','无法移动列:索引\x20','【清除全局预设】\x0a\x0a您确定要清除已设置的全局预设吗?\x0a\x0a清除后,新聊天将恢复使用扩展内置的默认表格模板。',']\x20末尾新增一行。','1296373YzLhDO','split','物品发生变化时/消耗品产生损耗时','预设已成功导入!','当特定时间约定一起去做某件重要、关键的事时/某角色收到做某件重要、关键事情的命令或任务时/某角色确定执行某件重要、关键的事时',',\x20rowIndex=','表格状态已准备写入消息\x20[','插入了新列。','【删除】:\x20','\x20中找不到索引为\x20','\x20条表格操作指令...','当角色的外貌、身体、衣着出现持久性变化时(如:五官长开、伤痕、减肥、染发、更衣、衣物破损等)/当角色有新的身份、职业、爱好时/当角色和<user>的关系改变时/当角色更换住所时/当角色提到重要信息时','Amily2-','导入操作已取消。','function','\x20行已删除。','所有表格的行数据已在内存中清空。','无法导出:当前表格状态为空。','当大家赴约时/任务或命令有进展、完成、失败时/任务、命令、约定被取消时',']\x20已被成功废黜。','4790lkMxyh','执行者','type','trim','\x20行位置插入了新行。',']\x20在第\x20','具体描述','result','插入行失败:找不到索引为\x20','\x20已在边界。','已清除所有单元格高亮标记。','缺少状态或目标消息,无法保存。','success','14nRgiLF','1801356McTmoi','revokeObjectURL','334216SiggNM','message','warn','702212AcJMGo','”已更新为“','rows','未找到任何表格数据或全局预设,使用默认模板。','【修改】:\x20','global_table_preset','\x20的表格。','chat','预设中缺少必要的指令模板字段。','click','length','\x20(索引\x20','成功删除了表格\x20','forEach','toISOString','file','1308pAHnlY','match','...]','当某人获得贵重或含有特殊意义的物品时/当某个已有物品获得特殊意义时','some','accept','结束时间','fromCharCode','aiTemplate','input','其他重要信息','target','rule_update','confirm','【说明】:\x0a','导入成功',']\x20的表头“','【增加】:\x20','),已智能转换为在表格\x20[','aiRuleTemplate','amily2_ai_template','文件格式无效或缺少版本号/表格数据。','map','application/json','batchFillerFlowTemplate','角色名','当本轮出现表中没有的新角色时,应插入','onload','UI操作\x20\x22','stringify','constructor',']\x20新增了一行。','batchFillerRuleTemplate','Amily2-Table-Preset-v2.0-full','download','创建失败','replace','加载全局预设失败:\x20','删除列失败:在表格\x20','isArray','此表不存在任何一行时','fill','用户取消了全局预设导入操作。','tables','size','note','名为\x20\x22','物品栏','AI返回内容为空,无法更新表格。','3MmMyvY','body','没有可导出的表格数据。','getPrototypeOf','\x0a---\x0a',']\x20的顺序已调整。','AI\x20指令更新了表格\x20[','已成功创建新表格:[','extra','version','splice','add','用户取消了清除全局预设的操作。','11XFxVRK','\x0a\x20\x20\x20\x20\x20\x20\x20\x20',']\x20的列“','【全局预设导入】\x0a\x0a这将把选定的预设设置为所有新聊天的默认表格。\x0a\x0a此操作将覆盖任何已存在的全局预设,是否确定?','\x22\x20已更新内存状态。','rowIndex,','执行AI指令时出错:\x20','2404530xzbmzf','error','AI指令错误:尝试在不存在的表格索引\x20','left','准备执行从AI返回的\x20','在第\x20','移动。','导入的预设已强制写入最新消息并立即保存。','below','injectionFlowTemplate','当前没有设置全局预设。','任务名','执行AI指令时发生错误:\x20'];_0x3af9=function(){return _0x1483d1;};return _0x3af9();}export function convertTablesToCsvStringForContentOnly(){const _0x6ef71e=_0x16d82b,_0x82a72f=getMemoryState();if(!_0x82a72f||_0x82a72f[_0x6ef71e(0x19f)]===0x0)return'';let _0x2cfd36='';return _0x82a72f[_0x6ef71e(0x1a2)](_0x11ece5=>{const _0x48aae9=_0x6ef71e;_0x2cfd36+='\x0a<'+_0x11ece5[_0x48aae9(0x220)]+'>\x0a';const _0x3c912d=_0x11ece5['headers'][_0x48aae9(0x1bb)]((_0x4ae8b1,_0x34e909)=>String[_0x48aae9(0x1ac)](0x41+_0x34e909)+':'+_0x4ae8b1)['join'](',');_0x2cfd36+=_0x3c912d+'\x0a',Array[_0x48aae9(0x1cc)](_0x11ece5[_0x48aae9(0x26d)])&&_0x11ece5[_0x48aae9(0x26d)][_0x48aae9(0x1a2)]((_0x359c19,_0x20f97c)=>{const _0x349982=_0x48aae9;if(Array[_0x349982(0x1cc)](_0x359c19)){const _0x387ca5=_0x359c19[_0x349982(0x236)](',');_0x2cfd36+=_0x20f97c+0x1+':'+_0x387ca5+'\x0a';}}),_0x2cfd36+='</'+_0x11ece5['name']+'>\x0a';}),_0x2cfd36['trim']();}loadTables();export function getBatchFillerRuleTemplate(){const _0x308051=_0x16d82b;return extension_settings[extensionName]?.[_0x308051(0x1ff)]??DEFAULT_AI_RULE_TEMPLATE;}export function saveBatchFillerRuleTemplate(_0x1e0782){const _0x1ede00=_0x16d82b;extension_settings[extensionName][_0x1ede00(0x1ff)]=_0x1e0782,saveSettingsDebounced();}export function getBatchFillerFlowTemplate(){const _0x48bc9f=_0x16d82b;return extension_settings[extensionName]?.[_0x48bc9f(0x1f9)]??DEFAULT_AI_FLOW_TEMPLATE;}export function saveBatchFillerFlowTemplate(_0x2f1735){const _0x3f5058=_0x16d82b;extension_settings[extensionName][_0x3f5058(0x1f9)]=_0x2f1735,saveSettingsDebounced();}export function getAiFlowTemplateForInjection(){const _0x3da17d=_0x16d82b;return extension_settings[extensionName]?.[_0x3da17d(0x1b9)]??DEFAULT_AI_FLOW_TEMPLATE;}export async function updateTableFromText(_0x37ce28){const _0x1ee5be=_0x16d82b;if(!_0x37ce28){log(_0x1ee5be(0x1d5),_0x1ee5be(0x26a));return;}const _0xb35af9=_0x37ce28[_0x1ee5be(0x1a6)](/<Amily2Edit>([\s\S]*?)<\/Amily2Edit>/);if(!_0xb35af9||!_0xb35af9[0x1]){log('未在AI返回内容中找到有效的\x20<Amily2Edit>\x20指令块。','warn');return;}let _0x9c75bb=_0xb35af9[0x1][_0x1ee5be(0x1c9)](/<!--|-->/g,'')[_0x1ee5be(0x25b)]();if(!_0x9c75bb){log(_0x1ee5be(0x228),_0x1ee5be(0x202));return;}const _0xa4f700=_0x9c75bb[_0x1ee5be(0x245)]('\x0a')['filter'](_0x4b2062=>_0x4b2062[_0x1ee5be(0x25b)]()!=='');log(_0x1ee5be(0x1ee)+_0xa4f700[_0x1ee5be(0x19f)]+_0x1ee5be(0x24e),_0x1ee5be(0x202));const _0x198fea={'insertRow':(_0x104290,_0x154344)=>{const _0x28b17b=_0x1ee5be;log('执行AI指令:\x20insertRow(tableIndex='+_0x104290+_0x28b17b(0x205)+JSON[_0x28b17b(0x1c2)](_0x154344)+')',_0x28b17b(0x202)),insertRow(_0x104290,_0x154344);},'deleteRow':(_0x40fa97,_0x27d8a9)=>{const _0x52019f=_0x1ee5be;log('执行AI指令:\x20deleteRow(tableIndex='+_0x40fa97+_0x52019f(0x249)+_0x27d8a9+')',_0x52019f(0x202)),deleteRow(_0x40fa97,_0x27d8a9);},'updateRow':(_0xe314,_0x7f62da,_0x472ca0)=>{const _0x2f961b=_0x1ee5be;log('执行AI指令:\x20updateRow(tableIndex='+_0xe314+_0x2f961b(0x249)+_0x7f62da+',\x20data='+JSON[_0x2f961b(0x1c2)](_0x472ca0)+')',_0x2f961b(0x202)),updateRow(_0xe314,_0x7f62da,_0x472ca0);}};try{const _0x3915ac=Object[_0x1ee5be(0x1d9)](async function(){})[_0x1ee5be(0x1c3)],_0x3df6b7=new _0x3915ac('runner',_0x1ee5be(0x20d)+_0x9c75bb+_0x1ee5be(0x1e4));await _0x3df6b7(_0x198fea),log('所有AI指令已成功执行完毕。','success'),toastr['success']('已根据AI的指示成功更新表格!','填表完成'),document['dispatchEvent'](new CustomEvent('amily2-force-ui-reload'));}catch(_0x142247){log(_0x1ee5be(0x1f6)+_0x142247['message'],_0x1ee5be(0x1eb)),toastr[_0x1ee5be(0x1eb)](_0x1ee5be(0x1e9)+_0x142247['message'],_0x1ee5be(0x23f));}}export function saveAiTemplate(_0x7aafcd){const _0x1b4b9f=_0x16d82b;extension_settings[extensionName][_0x1b4b9f(0x1b9)]=_0x7aafcd,saveSettingsDebounced();}export function getAiTemplate(){return getAiFlowTemplateForInjection();}function exportPresetBase(_0x2e1880=![]){const _0x3c961b=_0x16d82b;if(!currentTablesState){log(_0x3c961b(0x255),_0x3c961b(0x1eb)),toastr[_0x3c961b(0x1eb)](_0x3c961b(0x1d8));return;}let _0x852910,_0x234cd1,_0x146300;_0x2e1880?(_0x852910=JSON[_0x3c961b(0x204)](JSON[_0x3c961b(0x1c2)](currentTablesState)),_0x234cd1=_0x3c961b(0x1c6),_0x146300=_0x3c961b(0x1fd)):(_0x852910=currentTablesState[_0x3c961b(0x1bb)](_0x4563cf=>({'name':_0x4563cf['name'],'headers':_0x4563cf['headers'],'note':_0x4563cf['note'],'rule_add':_0x4563cf[_0x3c961b(0x23e)],'rule_delete':_0x4563cf[_0x3c961b(0x23b)],'rule_update':_0x4563cf[_0x3c961b(0x1b1)],'rows':[]})),_0x234cd1=_0x3c961b(0x21b),_0x146300=_0x3c961b(0x208));const _0x2e0578={'version':'Amily2-Table-Preset-v3.0-separated_templates','batchFillerRuleTemplate':getBatchFillerRuleTemplate(),'batchFillerFlowTemplate':getBatchFillerFlowTemplate(),'injectionFlowTemplate':getAiFlowTemplateForInjection(),'tables':_0x852910},_0x1d9bb3=new Blob([JSON['stringify'](_0x2e0578,null,0x2)],{'type':_0x3c961b(0x1bc)}),_0x4d2f6b=URL[_0x3c961b(0x233)](_0x1d9bb3),_0x5497b1=document[_0x3c961b(0x224)]('a');_0x5497b1['href']=_0x4d2f6b,_0x5497b1[_0x3c961b(0x1c7)]=_0x3c961b(0x250)+_0x146300+'-'+new Date()[_0x3c961b(0x1a3)]()[_0x3c961b(0x218)](0x0,0xa)+'.json',document[_0x3c961b(0x1d7)]['appendChild'](_0x5497b1),_0x5497b1[_0x3c961b(0x19e)](),document[_0x3c961b(0x1d7)][_0x3c961b(0x219)](_0x5497b1),URL[_0x3c961b(0x267)](_0x4d2f6b),log('【'+_0x146300+_0x3c961b(0x23c),_0x3c961b(0x264)),toastr['success']('【'+_0x146300+_0x3c961b(0x1fc),'导出成功');}export function exportPreset(){exportPresetBase(![]);}export function exportPresetFull(){exportPresetBase(!![]);}export function importPreset(_0x587208){const _0x45b860=_0x16d82b,_0x311ce7=document[_0x45b860(0x224)](_0x45b860(0x1ae));_0x311ce7['type']='file',_0x311ce7[_0x45b860(0x1aa)]='.json',_0x311ce7[_0x45b860(0x209)]=_0x8f4da7=>{const _0x18223c=_0x45b860,_0x27c060=_0x8f4da7[_0x18223c(0x1b0)][_0x18223c(0x239)][0x0];if(!_0x27c060)return;const _0x35f601=new FileReader();_0x35f601[_0x18223c(0x1c0)]=_0x2c9a82=>{const _0x1969c1=_0x18223c;try{const _0x1dcaeb=JSON['parse'](_0x2c9a82[_0x1969c1(0x1b0)][_0x1969c1(0x25f)]);if(!_0x1dcaeb[_0x1969c1(0x1df)]||!Array[_0x1969c1(0x1cc)](_0x1dcaeb[_0x1969c1(0x1d0)]))throw new Error('文件格式无效或缺少版本号/表格数据。');const _0x2f2f30=window[_0x1969c1(0x1b2)](_0x1969c1(0x222));if(!_0x2f2f30){log(_0x1969c1(0x203),_0x1969c1(0x202)),toastr['info'](_0x1969c1(0x251));return;}if(_0x1dcaeb['version']===_0x1969c1(0x213))saveBatchFillerRuleTemplate(_0x1dcaeb[_0x1969c1(0x1c5)]),saveBatchFillerFlowTemplate(_0x1dcaeb[_0x1969c1(0x1bd)]),saveAiTemplate(_0x1dcaeb['injectionFlowTemplate']);else{if(_0x1dcaeb[_0x1969c1(0x1b8)]!==undefined&&_0x1dcaeb[_0x1969c1(0x22a)]!==undefined)saveBatchFillerRuleTemplate(_0x1dcaeb[_0x1969c1(0x1b8)]),saveBatchFillerFlowTemplate(_0x1dcaeb[_0x1969c1(0x22a)]),saveAiTemplate(_0x1dcaeb[_0x1969c1(0x22a)]);else{if(_0x1dcaeb[_0x1969c1(0x1ad)])saveBatchFillerRuleTemplate(''),saveBatchFillerFlowTemplate(_0x1dcaeb[_0x1969c1(0x1ad)]),saveAiTemplate(_0x1dcaeb['aiTemplate']);else throw new Error(_0x1969c1(0x19d));}}const _0x14846e=_0x1dcaeb[_0x1969c1(0x1d0)];_0x14846e[_0x1969c1(0x1a2)](_0x3ba55a=>{const _0x1750fd=_0x1969c1;if(_0x3ba55a[_0x1750fd(0x220)]===undefined||_0x3ba55a[_0x1750fd(0x200)]===undefined||_0x3ba55a[_0x1750fd(0x26d)]===undefined)throw new Error(_0x1750fd(0x20b)+JSON[_0x1750fd(0x1c2)](_0x3ba55a));if(_0x3ba55a[_0x1750fd(0x1d2)]===undefined)_0x3ba55a[_0x1750fd(0x1d2)]='无';if(_0x3ba55a[_0x1750fd(0x23e)]===undefined)_0x3ba55a[_0x1750fd(0x23e)]='允许';if(_0x3ba55a['rule_delete']===undefined)_0x3ba55a[_0x1750fd(0x23b)]='允许';if(_0x3ba55a['rule_update']===undefined)_0x3ba55a['rule_update']='允许';}),setMemoryState(_0x14846e);const _0xe51d1f=getContext();if(_0xe51d1f[_0x1969c1(0x19c)]&&_0xe51d1f[_0x1969c1(0x19c)][_0x1969c1(0x19f)]>0x0){const _0x1c63a7=_0xe51d1f['chat'][_0xe51d1f['chat']['length']-0x1];saveStateToMessage(getMemoryState(),_0x1c63a7)&&(saveChat(),log(_0x1969c1(0x1f1),_0x1969c1(0x264)));}else saveChatDebounced();log('预设已成功导入并应用。',_0x1969c1(0x264)),toastr['success'](_0x1969c1(0x247),_0x1969c1(0x1b4)),typeof _0x587208===_0x1969c1(0x252)&&_0x587208();}catch(_0x551436){log(_0x1969c1(0x21d)+_0x551436[_0x1969c1(0x269)],_0x1969c1(0x1eb)),toastr[_0x1969c1(0x1eb)](_0x1969c1(0x21f)+_0x551436[_0x1969c1(0x269)],'错误');}},_0x35f601[_0x18223c(0x231)](_0x27c060);},_0x311ce7[_0x45b860(0x19e)]();}export function isCurrentTablesEmpty(){const _0x3f75d8=_0x16d82b,_0x5e6d2e=getMemoryState();if(!_0x5e6d2e||_0x5e6d2e[_0x3f75d8(0x19f)]===0x0)return!![];return _0x5e6d2e[_0x3f75d8(0x1f7)](_0xa28c1e=>!_0xa28c1e[_0x3f75d8(0x26d)]||_0xa28c1e[_0x3f75d8(0x26d)][_0x3f75d8(0x19f)]===0x0);}function _0x4696(_0x423c08,_0x554313){const _0x3af949=_0x3af9();return _0x4696=function(_0x469625,_0x2ac74b){_0x469625=_0x469625-0x198;let _0x4a36de=_0x3af949[_0x469625];return _0x4a36de;},_0x4696(_0x423c08,_0x554313);}export function clearGlobalPreset(){const _0x142c86=_0x16d82b;if(extension_settings[extensionName]&&extension_settings[extensionName][_0x142c86(0x19a)]){const _0x5bc15b=window['confirm'](_0x142c86(0x242));_0x5bc15b?(delete extension_settings[extensionName][_0x142c86(0x19a)],saveSettingsDebounced(),log('全局预设已被清除。',_0x142c86(0x264)),toastr['success']('全局预设已清除,新聊天将使用默认模板。','操作成功')):(log(_0x142c86(0x1e2),_0x142c86(0x202)),toastr[_0x142c86(0x202)]('操作已取消。'));}else log('无需清除,当前未设置任何全局预设。','info'),toastr[_0x142c86(0x202)](_0x142c86(0x1f4),'提示');}export function importGlobalPreset(_0x467cf9){const _0x24f7cd=_0x16d82b,_0x2c5659=document['createElement'](_0x24f7cd(0x1ae));_0x2c5659[_0x24f7cd(0x25a)]=_0x24f7cd(0x1a4),_0x2c5659[_0x24f7cd(0x1aa)]='.json',_0x2c5659['onchange']=_0x15d2f9=>{const _0x11b619=_0x24f7cd,_0x18c8ae=_0x15d2f9[_0x11b619(0x1b0)][_0x11b619(0x239)][0x0];if(!_0x18c8ae)return;const _0x2c9dda=new FileReader();_0x2c9dda[_0x11b619(0x1c0)]=_0x9f20f=>{const _0x51f9ef=_0x11b619;try{const _0x4c9e92=JSON['parse'](_0x9f20f[_0x51f9ef(0x1b0)][_0x51f9ef(0x25f)]);if(!_0x4c9e92[_0x51f9ef(0x1df)]||!Array[_0x51f9ef(0x1cc)](_0x4c9e92[_0x51f9ef(0x1d0)]))throw new Error(_0x51f9ef(0x1ba));const _0x28966f=window[_0x51f9ef(0x1b2)](_0x51f9ef(0x1e6));if(!_0x28966f){log(_0x51f9ef(0x1cf),_0x51f9ef(0x202)),toastr[_0x51f9ef(0x202)]('操作已取消。');return;}const _0x4594ae=_0x4c9e92['tables']['map'](_0x27bffa=>({'name':_0x27bffa[_0x51f9ef(0x220)],'headers':_0x27bffa[_0x51f9ef(0x200)],'note':_0x27bffa['note'],'rule_add':_0x27bffa[_0x51f9ef(0x23e)],'rule_delete':_0x27bffa[_0x51f9ef(0x23b)],'rule_update':_0x27bffa[_0x51f9ef(0x1b1)],'rows':[]}));!extension_settings[extensionName]&&(extension_settings[extensionName]={}),extension_settings[extensionName][_0x51f9ef(0x19a)]={'version':_0x4c9e92[_0x51f9ef(0x1df)],'tables':_0x4594ae,'batchFillerRuleTemplate':_0x4c9e92['batchFillerRuleTemplate'],'batchFillerFlowTemplate':_0x4c9e92[_0x51f9ef(0x1bd)],'injectionFlowTemplate':_0x4c9e92[_0x51f9ef(0x1f3)]},saveSettingsDebounced(),log(_0x51f9ef(0x217),'success'),toastr[_0x51f9ef(0x264)]('全局预设已设置!新聊天将默认使用此预设。','设置成功'),typeof _0x467cf9==='function'&&_0x467cf9();}catch(_0x1de3e4){log(_0x51f9ef(0x225)+_0x1de3e4[_0x51f9ef(0x269)],_0x51f9ef(0x1eb)),toastr[_0x51f9ef(0x1eb)](_0x51f9ef(0x21f)+_0x1de3e4[_0x51f9ef(0x269)],'错误');}},_0x2c9dda[_0x11b619(0x231)](_0x18c8ae);},_0x2c5659[_0x24f7cd(0x19e)]();}
|