Files
ST-Amily2-Chat-Optimisation/core/table-system/executor.js
2025-10-23 22:03:49 +08:00

2 lines
6.2 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(_0xe3abef,_0xd086cd){const _0x3442eb=_0x2901,_0x33dea1=_0xe3abef();while(!![]){try{const _0x24e7eb=-parseInt(_0x3442eb(0x122))/0x1+parseInt(_0x3442eb(0x107))/0x2*(parseInt(_0x3442eb(0xf7))/0x3)+parseInt(_0x3442eb(0xfa))/0x4+parseInt(_0x3442eb(0x110))/0x5*(-parseInt(_0x3442eb(0xf9))/0x6)+-parseInt(_0x3442eb(0x102))/0x7+-parseInt(_0x3442eb(0xfd))/0x8+parseInt(_0x3442eb(0x111))/0x9;if(_0x24e7eb===_0xd086cd)break;else _0x33dea1['push'](_0x33dea1['shift']());}catch(_0x48e8a8){_0x33dea1['push'](_0x33dea1['shift']());}}}(_0x1e36,0xe14ef));import{log}from'./logger.js';function _0x1e36(){const _0x1230cb=['updateRow(','replace','stringify','info','insertRow(','split','update','success','startsWith','deleteRow(','forEach','message','推演指令\x20\x22','1250929sUIykP','args','changes','6393gwvnzE','rows','3245676SLwLCL','6244944GEsIGP','warn','concat','7981600lUpBvu','match','检测到AI指令块开始推演...','rowStatuses','pending-deletion','5189982eddZWR','AI指令错误尝试删除不存在的表格\x20','trim','AI指令错误尝试在不存在的表格索引\x20','\x22\x20时发生运行时错误:\x20','1662eDcvjO','length','\x22。已阻止执行。','headers','AI指令错误尝试更新不存在的表格\x20','delete','error','\x22\x20的参数时出错:\x20','push','10qyacDU','14964417dzThLp','normal','检测到非法函数调用:\x20\x22','fill'];_0x1e36=function(){return _0x1230cb;};return _0x1e36();}function insertRow(_0x2d0e8a,_0x4a4c83,_0x1f2eee){const _0x516a39=_0x2901;if(!_0x2d0e8a[_0x4a4c83])return log(_0x516a39(0x105)+_0x4a4c83+'\x20中插入行。',_0x516a39(0x10d)),{'state':_0x2d0e8a,'changes':[]};const _0x5d1bab=_0x2d0e8a[_0x4a4c83],_0x332490=_0x5d1bab[_0x516a39(0x10a)][_0x516a39(0x108)],_0xfbd250=Array(_0x332490)[_0x516a39(0x114)](''),_0x228568=[],_0x210287=_0x5d1bab['rows']['length'];for(const _0x176933 in _0x1f2eee){const _0x906c0c=parseInt(_0x176933,0xa);_0x906c0c<_0x332490&&(_0xfbd250[_0x906c0c]=_0x1f2eee[_0x176933],_0x228568[_0x516a39(0x10f)]({'type':_0x516a39(0x11b),'tableIndex':_0x4a4c83,'rowIndex':_0x210287,'colIndex':_0x906c0c}));}return _0x5d1bab[_0x516a39(0xf8)][_0x516a39(0x10f)](_0xfbd250),{'state':_0x2d0e8a,'changes':_0x228568};}function updateRow(_0x267e8c,_0x5a9b66,_0x2cb94a,_0x412a41){const _0x1b3329=_0x2901;if(!_0x267e8c[_0x5a9b66])return log(_0x1b3329(0x10b)+_0x5a9b66+'。',_0x1b3329(0x10d)),{'state':_0x267e8c,'changes':[]};const _0x575311=_0x267e8c[_0x5a9b66];if(_0x2cb94a>=_0x575311['rows'][_0x1b3329(0x108)])return log('AI指令修正updateRow\x20的行索引\x20'+_0x2cb94a+'\x20超出范围自动转换为\x20insertRow。',_0x1b3329(0xfb)),insertRow(_0x267e8c,_0x5a9b66,_0x412a41);const _0x219432=_0x575311['rows'][_0x2cb94a],_0x3f38d0=[];for(const _0xd80b23 in _0x412a41){const _0xfdbb83=parseInt(_0xd80b23,0xa);_0xfdbb83<_0x219432[_0x1b3329(0x108)]&&(_0x219432[_0xfdbb83]=_0x412a41[_0xd80b23],_0x3f38d0[_0x1b3329(0x10f)]({'type':_0x1b3329(0x11b),'tableIndex':_0x5a9b66,'rowIndex':_0x2cb94a,'colIndex':_0xfdbb83}));}return{'state':_0x267e8c,'changes':_0x3f38d0};}function deleteRow(_0x54a174,_0x113aca,_0x3c4736){const _0x197b8f=_0x2901,_0x3f0cb3=_0x54a174[_0x113aca];if(!_0x3f0cb3||!_0x3f0cb3[_0x197b8f(0xf8)][_0x3c4736])return log(_0x197b8f(0x103)+_0x113aca+'\x20或行\x20'+_0x3c4736+'。',_0x197b8f(0x10d)),{'state':_0x54a174,'changes':[]};!_0x3f0cb3[_0x197b8f(0x100)]&&(_0x3f0cb3[_0x197b8f(0x100)]=Array(_0x3f0cb3['rows'][_0x197b8f(0x108)])[_0x197b8f(0x114)](_0x197b8f(0x112)));if(_0x3f0cb3[_0x197b8f(0x100)][_0x3c4736]!==_0x197b8f(0x101)){_0x3f0cb3[_0x197b8f(0x100)][_0x3c4736]='pending-deletion';const _0x533d8c=[{'type':_0x197b8f(0x10c),'tableIndex':_0x113aca,'rowIndex':_0x3c4736}];return{'state':_0x54a174,'changes':_0x533d8c};}return{'state':_0x54a174,'changes':[]};}const allowedFunctions={'insertRow':insertRow,'updateRow':updateRow,'deleteRow':deleteRow};function _0x2901(_0x529a58,_0x5b6b90){const _0x1e3688=_0x1e36();return _0x2901=function(_0x2901c9,_0x41eb10){_0x2901c9=_0x2901c9-0xf7;let _0x4729a4=_0x1e3688[_0x2901c9];return _0x4729a4;},_0x2901(_0x529a58,_0x5b6b90);}function parseFunctionCall(_0x1b1720){const _0x37769d=_0x2901,_0x4a58ae=_0x1b1720[_0x37769d(0x104)]()[_0x37769d(0xfe)](/(\w+)\((.*)\)/);if(!_0x4a58ae)return log('指令格式错误,无法解析:\x20\x22'+_0x1b1720+'\x22','error'),null;const _0x33abc5=_0x4a58ae[0x1],_0x4a9349=_0x4a58ae[0x2];if(!allowedFunctions[_0x33abc5])return log(_0x37769d(0x113)+_0x33abc5+_0x37769d(0x109),_0x37769d(0x10d)),null;try{const _0x51002f=new Function('return\x20['+_0x4a9349+']')();return{'name':_0x33abc5,'args':_0x51002f};}catch(_0x533dd8){return log('解析函数\x20\x22'+_0x33abc5+_0x37769d(0x10e)+_0x533dd8[_0x37769d(0x120)],_0x37769d(0x10d)),null;}}export function executeCommands(_0x3198f0,_0xfa713f){const _0x53c98d=_0x2901,_0x46f422=/<Amily2Edit>([\s\S]*?)<\/Amily2Edit>/,_0x3c8bc1=_0x3198f0[_0x53c98d(0xfe)](_0x46f422);if(!_0x3c8bc1)return{'finalState':_0xfa713f,'hasChanges':![],'changes':[]};log(_0x53c98d(0xff),_0x53c98d(0x118));const _0x2b2110=_0x3c8bc1[0x1][_0x53c98d(0x116)](/<!--|-->/g,'')[_0x53c98d(0x104)]();if(!_0x2b2110)return{'finalState':_0xfa713f,'hasChanges':![],'changes':[]};const _0x179900=_0x2b2110[_0x53c98d(0x11a)]('\x0a')['filter'](_0x20638c=>_0x20638c[_0x53c98d(0x104)]()!=='');if(_0x179900[_0x53c98d(0x108)]===0x0)return{'finalState':_0xfa713f,'hasChanges':![],'changes':[]};let _0x51c825=JSON['parse'](JSON[_0x53c98d(0x117)](_0xfa713f)),_0x213103=[];_0x179900[_0x53c98d(0x11f)](_0x3d6c11=>{const _0x4c2fa5=_0x53c98d,_0x4c4cca=_0x3d6c11[_0x4c2fa5(0x104)]();if(_0x4c4cca[_0x4c2fa5(0x11d)](_0x4c2fa5(0x119))||_0x4c4cca[_0x4c2fa5(0x11d)](_0x4c2fa5(0x11e))||_0x4c4cca[_0x4c2fa5(0x11d)](_0x4c2fa5(0x115))){const _0x5a50e5=parseFunctionCall(_0x4c4cca);if(_0x5a50e5)try{const _0x3edeec=allowedFunctions[_0x5a50e5['name']](_0x51c825,..._0x5a50e5[_0x4c2fa5(0x123)]);_0x51c825=_0x3edeec['state'],_0x3edeec[_0x4c2fa5(0x124)]&&_0x3edeec['changes'][_0x4c2fa5(0x108)]>0x0&&(_0x213103=_0x213103[_0x4c2fa5(0xfc)](_0x3edeec[_0x4c2fa5(0x124)])),log('成功推演指令:\x20'+_0x3d6c11,_0x4c2fa5(0x11c));}catch(_0x22d10d){log(_0x4c2fa5(0x121)+_0x3d6c11+_0x4c2fa5(0x106)+_0x22d10d[_0x4c2fa5(0x120)],_0x4c2fa5(0x10d));}}});const _0x205b4d=_0x213103[_0x53c98d(0x108)]>0x0;return{'finalState':_0x51c825,'hasChanges':_0x205b4d,'changes':_0x213103};}