Files
ST-Amily2-Chat-Optimisation…/core/table-system/executor.js
2025-08-13 00:55:38 +08:00

2 lines
5.9 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
(function(_0x2b1dd0,_0x2cb771){const _0x5974f=_0x1140,_0xd42c4d=_0x2b1dd0();while(!![]){try{const _0x5e0023=parseInt(_0x5974f(0xdf))/0x1+parseInt(_0x5974f(0xb8))/0x2+-parseInt(_0x5974f(0xc1))/0x3*(parseInt(_0x5974f(0xc6))/0x4)+-parseInt(_0x5974f(0xbc))/0x5*(-parseInt(_0x5974f(0xb1))/0x6)+-parseInt(_0x5974f(0xb2))/0x7*(-parseInt(_0x5974f(0xda))/0x8)+parseInt(_0x5974f(0xdd))/0x9*(-parseInt(_0x5974f(0xc3))/0xa)+parseInt(_0x5974f(0xc2))/0xb*(-parseInt(_0x5974f(0xb0))/0xc);if(_0x5e0023===_0x2cb771)break;else _0xd42c4d['push'](_0xd42c4d['shift']());}catch(_0x310336){_0xd42c4d['push'](_0xd42c4d['shift']());}}}(_0x5e22,0x8abee));import{log}from'./logger.js';function _0x1140(_0x277865,_0x58e9f3){const _0x5e22b5=_0x5e22();return _0x1140=function(_0x114003,_0x1c4fc0){_0x114003=_0x114003-0xaf;let _0x352a3e=_0x5e22b5[_0x114003];return _0x352a3e;},_0x1140(_0x277865,_0x58e9f3);}function insertRow(_0x3b8a00,_0x483031,_0x57c71c){const _0x3dce36=_0x1140;if(!_0x3b8a00[_0x483031])return log(_0x3dce36(0xd9)+_0x483031+_0x3dce36(0xde),'error'),{'state':_0x3b8a00,'changes':[]};const _0x16e29e=_0x3b8a00[_0x483031],_0x235dca=_0x16e29e[_0x3dce36(0xc4)][_0x3dce36(0xd7)],_0x12a217=Array(_0x235dca)[_0x3dce36(0xd2)](''),_0x242f10=[],_0x253f52=_0x16e29e['rows'][_0x3dce36(0xd7)];for(const _0xba2838 in _0x57c71c){const _0x3b302e=parseInt(_0xba2838,0xa);_0x3b302e<_0x235dca&&(_0x12a217[_0x3b302e]=_0x57c71c[_0xba2838],_0x242f10['push']({'type':_0x3dce36(0xaf),'tableIndex':_0x483031,'rowIndex':_0x253f52,'colIndex':_0x3b302e}));}return _0x16e29e[_0x3dce36(0xc5)][_0x3dce36(0xca)](_0x12a217),{'state':_0x3b8a00,'changes':_0x242f10};}function _0x5e22(){const _0x1a1f94=['99876vaDHak','6oZDQMC','21yzKzQF','AI指令错误尝试更新不存在的表格\x20','forEach','\x22\x20的参数时出错:\x20','stringify','updateRow(','1386562hUtLPw','info','推演指令\x20\x22','changes','3559895xXJjcp','指令格式错误,无法解析:\x20\x22','deleteRow(','replace','检测到AI指令块开始推演...','3dyaTfe','671ZAClKH','10MGvrLy','headers','rows','2893880aaQITS','state','splice','parse','push','args','name','AI指令错误尝试删除不存在的表格\x20','trim','\x20或行\x20','insertRow(','成功推演指令:\x20','fill','解析函数\x20\x22','error','\x22。已阻止执行。','filter','length','\x22\x20时发生运行时错误:\x20','AI指令错误尝试在不存在的表格索引\x20','2031832FZgnvg','\x20超出范围自动转换为\x20insertRow。','match','9892710GdYChe','\x20中插入行。','731468OVMKJD','split','startsWith','update'];_0x5e22=function(){return _0x1a1f94;};return _0x5e22();}function updateRow(_0x1cd88e,_0x219933,_0x6bad1a,_0x8d0feb){const _0x33f887=_0x1140;if(!_0x1cd88e[_0x219933])return log(_0x33f887(0xb3)+_0x219933+'。','error'),{'state':_0x1cd88e,'changes':[]};const _0x43c33b=_0x1cd88e[_0x219933];if(_0x6bad1a>=_0x43c33b[_0x33f887(0xc5)]['length'])return log('AI指令修正updateRow\x20的行索引\x20'+_0x6bad1a+_0x33f887(0xdb),'warn'),insertRow(_0x1cd88e,_0x219933,_0x8d0feb);const _0x16c8d4=_0x43c33b[_0x33f887(0xc5)][_0x6bad1a],_0x194d7e=[];for(const _0x51506e in _0x8d0feb){const _0x32220b=parseInt(_0x51506e,0xa);_0x32220b<_0x16c8d4[_0x33f887(0xd7)]&&(_0x16c8d4[_0x32220b]=_0x8d0feb[_0x51506e],_0x194d7e['push']({'type':_0x33f887(0xaf),'tableIndex':_0x219933,'rowIndex':_0x6bad1a,'colIndex':_0x32220b}));}return{'state':_0x1cd88e,'changes':_0x194d7e};}function deleteRow(_0x42729c,_0x1ae91a,_0x3aaba8){const _0x3e2463=_0x1140;if(!_0x42729c[_0x1ae91a]||!_0x42729c[_0x1ae91a][_0x3e2463(0xc5)][_0x3aaba8])return log(_0x3e2463(0xcd)+_0x1ae91a+_0x3e2463(0xcf)+_0x3aaba8+'。','error'),{'state':_0x42729c,'changes':[]};return _0x42729c[_0x1ae91a][_0x3e2463(0xc5)][_0x3e2463(0xc8)](_0x3aaba8,0x1),{'state':_0x42729c,'changes':[]};}const allowedFunctions={'insertRow':insertRow,'updateRow':updateRow,'deleteRow':deleteRow};function parseFunctionCall(_0x50bff7){const _0xafbf74=_0x1140,_0x2f054c=_0x50bff7['trim']()[_0xafbf74(0xdc)](/(\w+)\((.*)\)/);if(!_0x2f054c)return log(_0xafbf74(0xbd)+_0x50bff7+'\x22',_0xafbf74(0xd4)),null;const _0x5727f2=_0x2f054c[0x1],_0x4bc4ef=_0x2f054c[0x2];if(!allowedFunctions[_0x5727f2])return log('检测到非法函数调用:\x20\x22'+_0x5727f2+_0xafbf74(0xd5),'error'),null;try{const _0x42f4ef=new Function('return\x20['+_0x4bc4ef+']')();return{'name':_0x5727f2,'args':_0x42f4ef};}catch(_0xf12983){return log(_0xafbf74(0xd3)+_0x5727f2+_0xafbf74(0xb5)+_0xf12983['message'],_0xafbf74(0xd4)),null;}}export function executeCommands(_0x1a4acf,_0x2dc07f){const _0x298a47=_0x1140,_0x4b1a9b=/<Amily2Edit>([\s\S]*?)<\/Amily2Edit>/,_0x471b75=_0x1a4acf['match'](_0x4b1a9b);if(!_0x471b75)return{'finalState':_0x2dc07f,'hasChanges':![],'changes':[]};log(_0x298a47(0xc0),_0x298a47(0xb9));const _0x37fb40=_0x471b75[0x1][_0x298a47(0xbf)](/<!--|-->/g,'')['trim']();if(!_0x37fb40)return{'finalState':_0x2dc07f,'hasChanges':![],'changes':[]};const _0x12110a=_0x37fb40[_0x298a47(0xe0)]('\x0a')[_0x298a47(0xd6)](_0x44f924=>_0x44f924[_0x298a47(0xce)]()!=='');if(_0x12110a['length']===0x0)return{'finalState':_0x2dc07f,'hasChanges':![],'changes':[]};let _0x471045=JSON[_0x298a47(0xc9)](JSON[_0x298a47(0xb6)](_0x2dc07f)),_0x5dfc50=[];_0x12110a[_0x298a47(0xb4)](_0x27fdf7=>{const _0x548fd9=_0x298a47,_0x4bab69=_0x27fdf7[_0x548fd9(0xce)]();if(_0x4bab69['startsWith'](_0x548fd9(0xd0))||_0x4bab69[_0x548fd9(0xe1)](_0x548fd9(0xbe))||_0x4bab69[_0x548fd9(0xe1)](_0x548fd9(0xb7))){const _0x5aedd7=parseFunctionCall(_0x4bab69);if(_0x5aedd7)try{const _0x4d48bb=allowedFunctions[_0x5aedd7[_0x548fd9(0xcc)]](_0x471045,..._0x5aedd7[_0x548fd9(0xcb)]);_0x471045=_0x4d48bb[_0x548fd9(0xc7)],_0x4d48bb[_0x548fd9(0xbb)]&&_0x4d48bb[_0x548fd9(0xbb)][_0x548fd9(0xd7)]>0x0&&(_0x5dfc50=_0x5dfc50['concat'](_0x4d48bb['changes'])),log(_0x548fd9(0xd1)+_0x27fdf7,'success');}catch(_0x3225ba){log(_0x548fd9(0xba)+_0x27fdf7+_0x548fd9(0xd8)+_0x3225ba['message'],_0x548fd9(0xd4));}}});const _0x431375=_0x5dfc50['length']>0x0;return{'finalState':_0x471045,'hasChanges':_0x431375,'changes':_0x5dfc50};}