mirror of
https://github.com/Wx-2025/ST-Amily2-Chat-Optimisation.git
synced 2026-06-17 11:15:50 +00:00
### 新功能 - **填表记录 · 版本恢复**(填表设置面板「回退重填」旁新增「填表记录」按钮):针对"模型填表前把整张表删空 / 误删大量内容"的反馈,提供一键找回。 - **零新存储**:直接复用各楼层 `extra.amily2_tables_data` 里逐轮继承的表格快照——历史本就在聊天中,无需另建存储或元数据 - 点开列出所有带快照的楼层(最新在上),可**展开预览**每一版的表格内容(CSV)后再决定 - **恢复某版本**:把该楼层快照设为当前状态,并清除其**之后**所有楼层的快照与填表标记 hash——使该版本成为最新有效状态,后续楼层下轮自动重填会从恢复点往前重建(赌模型不再抽风) - 「回退重填」按钮保留,但版本恢复是更安全的找回路径 ### 重构 - 抽出 `_normalizeTableState` 共用旧存档字段归一逻辑,`loadTables` 与"恢复快照"复用,消除重复 ---
1 line
10 KiB
JavaScript
1 line
10 KiB
JavaScript
(function(_0x4f799f,_0x56aa00){const _0x24cd64=a0_0x5dac,_0x3d23ed=_0x4f799f();while(!![]){try{const _0x597d4f=parseInt(_0x24cd64(0x19e,'(M[J'))/0x1*(parseInt(_0x24cd64(0x160,'05t*'))/0x2)+parseInt(_0x24cd64(0x1cc,'Tp4H'))/0x3+-parseInt(_0x24cd64(0x1c6,'qt4Z'))/0x4*(-parseInt(_0x24cd64(0x18e,'o8H['))/0x5)+parseInt(_0x24cd64(0x194,'gtlR'))/0x6+-parseInt(_0x24cd64(0x181,'NBDq'))/0x7+-parseInt(_0x24cd64(0x1d1,'o8H['))/0x8+-parseInt(_0x24cd64(0x1ad,'EU@S'))/0x9;if(_0x597d4f===_0x56aa00)break;else _0x3d23ed['push'](_0x3d23ed['shift']());}catch(_0x4f6b79){_0x3d23ed['push'](_0x3d23ed['shift']());}}}(a0_0x50bd,0x73877));export async function generateKeyPair(){const _0x14b99f=a0_0x5dac,_0x305937={};_0x305937[_0x14b99f(0x19f,'F(hu')]=_0x14b99f(0x169,'C[yQ'),_0x305937[_0x14b99f(0x16e,'U7P]')]=_0x14b99f(0x1c4,'NsE['),_0x305937[_0x14b99f(0x166,'qt4Z')]=_0x14b99f(0x1d4,'NBDq'),_0x305937[_0x14b99f(0x170,'Tp4H')]=_0x14b99f(0x1a7,'p0Bp');const _0x4701b1=_0x305937;return crypto[_0x14b99f(0x1ba,')E4w')][_0x14b99f(0x197,'K1x!')]({'name':_0x4701b1[_0x14b99f(0x16c,'qt4Z')],'modulusLength':0x800,'publicExponent':new Uint8Array([0x1,0x0,0x1]),'hash':_0x4701b1[_0x14b99f(0x1b1,'A*)*')]},!![],[_0x4701b1[_0x14b99f(0x175,'(M[J')],_0x4701b1[_0x14b99f(0x1a5,'a&Z0')]]);}function a0_0x50bd(){const _0x6088ad=['W5HFcCkUiG','WPyHW5JcGZvnWOFcJfm','iSk2hgJdOXO','rCk1p1RdH3pdI1a','qwdcHSk5WR8','tXmFEmkz','W4jGeCkMeq','EmoIr8k5lW','W6Gll8kkfG','WRT6iSo5tJhcSW','WOaAmSkrEG','ySovymkX','rg8OWPRcLSoaW5/cOq','W5DJW5/cH8oj','qgZcKCkoWOtcPq','umk5wd56','W7yOiCklcG','sSoztILk','Eh7cTmoHWOnJwCoNW5FdOW','ymoYsYRcUeHetZddPtBcJq','rCkowHpdOM0','m2dcPSkNla','ASoQW6OCWQ3dRM7cKZm','W5LQWQzCpgi','dNe5WQiL','d8oggSoGsW','s8ousqnZW4yOW5ldQa','aIRdH8okW57dTCkcbdrzW6tdNmkQ','W7yGW4K9WQvNW6a','f3FcOG','v3ZcKmkvWOZcPq','mG0yz8oj','hmkqWQ3dL8oSpSoOBG7dRW','W7qHW6HMWOq','W7muWOLhWRq','vmo8gmoIqG','qvddIq','W6LFW4NcPfW','h8odWQdcM8k7qCosjvO','BseSjSkZhmoBrG','W6qQB8oMavajWPBdSW','gCoCWOhcGmkc','W4eDkCoexLS','jCkfcwNdVa','C8kNhcxdGa','WRCBxCoLW5G','tmkpmCoMouldQsv4W4nPW4pcMG','uCouW5TEWPddM2dcPG','WPFcRmki','a8oLbSoQvCkwW7i/W6xdOmoB','W6DYWObdiW','WQXWpmk3WQPff8ocWO/dQ8kXc3O','jSoxrKtcSqBcTZhcU8ozWQHszSoy','WRq/x8ooW68','WR0tCvZcM8o0pa','WOyhA8o2Aa','dSoIc08PW5bPpZNcOIOY','g8oMwxe/','ASogySk5omocW4pdISk7jmokW74','W4DsemkEiG','W6nYW7XmjG','uCkEW5ueW4alvCkrWR4','cSoqsuGqWPhcGq','lG/cTMBcGq','WPCrtmo9DdhdKKnFW69B','W5v0W7JcJCoChSo8','qxJcHa','WPK4qqpcPCohbq','qCorhSotvKa1W5iKcCoSbmo+k8k2','W4WQfCkpFgRdPq','nIVcR3BcOdu','WQXYmmk0WQvegSkCWPRdTmkxaLjN','cSojzSkLzHe','d2hcVG','W5lcK8kJW6fXBmoztCoQ','CveaW4tcNW','WOiav8oADh3dOv8AWRTBvca','CmotW64uWPu','ahJcTSk0d1BcJq','WQ4ct8oLW7q','W40VWRddGCk1','ySktW7uHW7a','WOavumoRyW','WR4pvLBcJG','W5SHW7yJW5qS','W4jKW7NcI8ojcW','WPqrqCoQFYddKG','ktVcO2xcUdG','C1ikW4xcOmoXW64','FCkrfq','W4zef8o+CHNdKgXM','eti8xq','WOCUj8ksq1K','BCoMW7Cw','C8kOEfhcTd0S','s8ovwr5XW4q','WOyku8ouDrJcNgyXWQPY','tayFySksoSo3Cfa','DCo8k8kSbrTN','p8kIe3K','WRuCW7VdGM4BW7O','W7KcASovW5q','W4vQCmoqgaVdNcNdHmkXjaG','pSkXWOxcJmocc8oiDq','smovb8oK','rwWNW5RcIq','iKelwmoil0S','W6mJB8k4qIHnWOBdRhOUwbu','ymo0rI7cUuTYDWNdSctcIG','FwyMW5RcOa','vNFcKmkiWPhcSmoc','W41+WQHPna','BgHtgSoG','t8ozgSoUrvOAW5GW','pCknomoStmkBWPddOSkvi8oKW41M','BSovAYbF','cSoOCmk2qa','W4DqWPXfka','pCo1WOtcUCkF','e8kinHOSWPe','ACkYlNxdNcL9','vc/dPmo/rhxcSmkKWPSIWQm','hmoeDmk+EadcLJzo','cCkqjaeYWOdcSCkfW4q','nCkMhw7dTG9J','D8obW60gWQW'];a0_0x50bd=function(){return _0x6088ad;};return a0_0x50bd();}function a0_0x5dac(_0x1ad23b,_0x1b431b){_0x1ad23b=_0x1ad23b-0x157;const _0x50bda4=a0_0x50bd();let _0x5dac30=_0x50bda4[_0x1ad23b];if(a0_0x5dac['UjohfA']===undefined){var _0x3c1e0a=function(_0x13e06c){const _0xa8d983='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3be72a='',_0x456f33='';for(let _0x3d7aa5=0x0,_0x54b0f3,_0x17ebad,_0x5bd091=0x0;_0x17ebad=_0x13e06c['charAt'](_0x5bd091++);~_0x17ebad&&(_0x54b0f3=_0x3d7aa5%0x4?_0x54b0f3*0x40+_0x17ebad:_0x17ebad,_0x3d7aa5++%0x4)?_0x3be72a+=String['fromCharCode'](0xff&_0x54b0f3>>(-0x2*_0x3d7aa5&0x6)):0x0){_0x17ebad=_0xa8d983['indexOf'](_0x17ebad);}for(let _0x3a768f=0x0,_0x504eb3=_0x3be72a['length'];_0x3a768f<_0x504eb3;_0x3a768f++){_0x456f33+='%'+('00'+_0x3be72a['charCodeAt'](_0x3a768f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x456f33);};const _0x26fac5=function(_0x2dffb5,_0x3b5b60){let _0x37a526=[],_0x2ff717=0x0,_0x26dbcc,_0x4a9623='';_0x2dffb5=_0x3c1e0a(_0x2dffb5);let _0x36f425;for(_0x36f425=0x0;_0x36f425<0x100;_0x36f425++){_0x37a526[_0x36f425]=_0x36f425;}for(_0x36f425=0x0;_0x36f425<0x100;_0x36f425++){_0x2ff717=(_0x2ff717+_0x37a526[_0x36f425]+_0x3b5b60['charCodeAt'](_0x36f425%_0x3b5b60['length']))%0x100,_0x26dbcc=_0x37a526[_0x36f425],_0x37a526[_0x36f425]=_0x37a526[_0x2ff717],_0x37a526[_0x2ff717]=_0x26dbcc;}_0x36f425=0x0,_0x2ff717=0x0;for(let _0x1e959c=0x0;_0x1e959c<_0x2dffb5['length'];_0x1e959c++){_0x36f425=(_0x36f425+0x1)%0x100,_0x2ff717=(_0x2ff717+_0x37a526[_0x36f425])%0x100,_0x26dbcc=_0x37a526[_0x36f425],_0x37a526[_0x36f425]=_0x37a526[_0x2ff717],_0x37a526[_0x2ff717]=_0x26dbcc,_0x4a9623+=String['fromCharCode'](_0x2dffb5['charCodeAt'](_0x1e959c)^_0x37a526[(_0x37a526[_0x36f425]+_0x37a526[_0x2ff717])%0x100]);}return _0x4a9623;};a0_0x5dac['YShhRY']=_0x26fac5,a0_0x5dac['JNAASk']={},a0_0x5dac['UjohfA']=!![];}const _0x13bd0a=_0x50bda4[0x0],_0x76f330=_0x1ad23b+_0x13bd0a,_0x9a1d4=a0_0x5dac['JNAASk'][_0x76f330];return!_0x9a1d4?(a0_0x5dac['CsYgYg']===undefined&&(a0_0x5dac['CsYgYg']=!![]),_0x5dac30=a0_0x5dac['YShhRY'](_0x5dac30,_0x1b431b),a0_0x5dac['JNAASk'][_0x76f330]=_0x5dac30):_0x5dac30=_0x9a1d4,_0x5dac30;}export async function serializeKeyPair(_0x40141f){const _0x5a10d2=a0_0x5dac,_0x23c059={};_0x23c059[_0x5a10d2(0x165,'gLA)')]=_0x5a10d2(0x196,'QgMK');const _0x4b6e6d=_0x23c059,[_0x5a2938,_0x47de3d]=await Promise[_0x5a10d2(0x18a,'6pbV')]([crypto[_0x5a10d2(0x15f,'NlW9')][_0x5a10d2(0x162,'gtlR')](_0x4b6e6d[_0x5a10d2(0x191,'05t*')],_0x40141f[_0x5a10d2(0x167,'MIyK')]),crypto[_0x5a10d2(0x1bb,'p0Bp')][_0x5a10d2(0x1a3,'w*ig')](_0x4b6e6d[_0x5a10d2(0x165,'gLA)')],_0x40141f[_0x5a10d2(0x186,'nqPS')])]);return{'publicJwk':JSON[_0x5a10d2(0x1b0,'$B1A')](_0x5a2938),'privateJwk':JSON[_0x5a10d2(0x1c7,'H7JL')](_0x47de3d)};}export async function importPublicKey(_0x1a520b){const _0x4d4191=a0_0x5dac,_0xdabb34={};_0xdabb34[_0x4d4191(0x173,'p0Bp')]=_0x4d4191(0x1af,'5@L7'),_0xdabb34[_0x4d4191(0x1d3,'A*)*')]=_0x4d4191(0x1cd,'nqPS'),_0xdabb34[_0x4d4191(0x185,'AB4U')]=_0x4d4191(0x1ca,'MIyK'),_0xdabb34[_0x4d4191(0x1cb,'EU@S')]=_0x4d4191(0x16f,'PN@C');const _0xd5596a=_0xdabb34;return crypto[_0x4d4191(0x17d,'hOv3')][_0x4d4191(0x159,'cPe(')](_0xd5596a[_0x4d4191(0x1b9,'F7bG')],JSON[_0x4d4191(0x16b,'H7JL')](_0x1a520b),{'name':_0xd5596a[_0x4d4191(0x158,'l5hK')],'hash':_0xd5596a[_0x4d4191(0x17e,'Ea$p')]},![],[_0xd5596a[_0x4d4191(0x192,'C[yQ')]]);}export async function importPrivateKey(_0x562689){const _0x15763a=a0_0x5dac,_0x520ed7={};_0x520ed7[_0x15763a(0x1b6,'njH@')]=_0x15763a(0x1bf,'C[yQ'),_0x520ed7[_0x15763a(0x16a,'NBDq')]=_0x15763a(0x172,'A*)*'),_0x520ed7[_0x15763a(0x16d,'L]tS')]=_0x15763a(0x1c8,'cPe('),_0x520ed7[_0x15763a(0x188,'&Zk3')]=_0x15763a(0x164,'05t*');const _0x1edd65=_0x520ed7;return crypto[_0x15763a(0x174,'NBDq')][_0x15763a(0x17c,'gLA)')](_0x1edd65[_0x15763a(0x17b,'5@L7')],JSON[_0x15763a(0x1a1,'qt4Z')](_0x562689),{'name':_0x1edd65[_0x15763a(0x177,'Wd7b')],'hash':_0x1edd65[_0x15763a(0x1b5,'&#y]')]},![],[_0x1edd65[_0x15763a(0x15e,'U0S[')]]);}export async function encrypt(_0x67206f,_0x12ba19){const _0x180c3c=a0_0x5dac,_0x162fb9={'VuPJB':_0x180c3c(0x1a9,'F7bG'),'MmDks':_0x180c3c(0x1b4,'5@L7'),'yNgrZ':_0x180c3c(0x1a8,'NBDq'),'vsInn':_0x180c3c(0x195,'gLA)'),'sTtgJ':function(_0x17ec4b,_0x2ac2b3){return _0x17ec4b(_0x2ac2b3);}},_0x18e34e={};_0x18e34e[_0x180c3c(0x1ce,'cPe(')]=_0x162fb9[_0x180c3c(0x15b,'Wd7b')],_0x18e34e[_0x180c3c(0x1ac,'a&Z0')]=0x100;const _0x45b00f=await crypto[_0x180c3c(0x1ae,'gtlR')][_0x180c3c(0x1a6,'P0@B')](_0x18e34e,!![],[_0x162fb9[_0x180c3c(0x198,'hOv3')]]),_0x32e443=crypto[_0x180c3c(0x1aa,'cPe(')](new Uint8Array(0xc)),_0x55d758=new TextEncoder()[_0x180c3c(0x17a,'NsE[')](_0x12ba19),_0x185d10={};_0x185d10[_0x180c3c(0x1c9,'05t*')]=_0x162fb9[_0x180c3c(0x1b7,'w*ig')],_0x185d10['iv']=_0x32e443;const _0x512490=await crypto[_0x180c3c(0x1bd,'a&Z0')][_0x180c3c(0x1be,'A*)*')](_0x185d10,_0x45b00f,_0x55d758),_0x409a40=await crypto[_0x180c3c(0x1c2,'Tp4H')][_0x180c3c(0x18c,'U0S[')](_0x162fb9[_0x180c3c(0x176,'U7P]')],_0x45b00f),_0x22fec6={};_0x22fec6[_0x180c3c(0x1c3,'gLA)')]=_0x162fb9[_0x180c3c(0x19d,'P0@B')];const _0x54dc6c=await crypto[_0x180c3c(0x15f,'NlW9')][_0x180c3c(0x19c,'F7bG')](_0x22fec6,_0x67206f,_0x409a40);return JSON[_0x180c3c(0x180,'Wd7b')]({'wrappedKey':_0x162fb9[_0x180c3c(0x1b3,'gLA)')](a0_0x17d7f7,_0x54dc6c),'iv':_0x162fb9[_0x180c3c(0x1a2,'kMIM')](a0_0x17d7f7,_0x32e443),'ciphertext':_0x162fb9[_0x180c3c(0x15c,'gtlR')](a0_0x17d7f7,_0x512490)});}export async function decrypt(_0x204468,_0x50305c){const _0x2c53bb=a0_0x5dac,_0x3907bf={'nkZFO':_0x2c53bb(0x18d,'H7JL'),'rHrcu':function(_0x1274bf,_0x3a2a88){return _0x1274bf(_0x3a2a88);},'CDrvf':_0x2c53bb(0x183,'5@L7'),'mOXmx':_0x2c53bb(0x182,'6Axw'),'SPNmP':_0x2c53bb(0x1d0,'l#9X'),'galAd':function(_0x29f26b,_0x108f39){return _0x29f26b(_0x108f39);}},{wrappedKey:_0xae74a8,iv:_0x3f53f6,ciphertext:_0x1e69e7}=JSON[_0x2c53bb(0x1b8,'P0@B')](_0x50305c),_0x22bb29={};_0x22bb29[_0x2c53bb(0x171,'L]tS')]=_0x3907bf[_0x2c53bb(0x19b,'&#y]')];const _0x1d625c=await crypto[_0x2c53bb(0x1c5,'Wd7b')][_0x2c53bb(0x1bc,'P0@B')](_0x22bb29,_0x204468,_0x3907bf[_0x2c53bb(0x18b,'k(jN')](a0_0x1fa4b1,_0xae74a8)),_0x45db4e=await crypto[_0x2c53bb(0x168,'05t*')][_0x2c53bb(0x163,'NlW9')](_0x3907bf[_0x2c53bb(0x187,'6Axw')],_0x1d625c,{'name':_0x3907bf[_0x2c53bb(0x15d,'hOv3')]},![],[_0x3907bf[_0x2c53bb(0x1cf,'A*)*')]]),_0x113406=await crypto[_0x2c53bb(0x190,'5(k)')][_0x2c53bb(0x1a4,'F(hu')]({'name':_0x3907bf[_0x2c53bb(0x193,'&#y]')],'iv':_0x3907bf[_0x2c53bb(0x157,'hOv3')](a0_0x1fa4b1,_0x3f53f6)},_0x45db4e,_0x3907bf[_0x2c53bb(0x189,'cPe(')](a0_0x1fa4b1,_0x1e69e7));return new TextDecoder()[_0x2c53bb(0x184,'NBDq')](_0x113406);}function a0_0x17d7f7(_0x1a4da4){const _0x23678f=a0_0x5dac,_0x3c70fe={'cgQtK':function(_0x2856e4,_0x4b9a22){return _0x2856e4(_0x4b9a22);}};return _0x3c70fe[_0x23678f(0x18f,'U0S[')](btoa,String[_0x23678f(0x1a0,'L]tS')](...new Uint8Array(_0x1a4da4)));}function a0_0x1fa4b1(_0x54ecf4){const _0x47cd7e=a0_0x5dac,_0x424a1={'kFrol':function(_0x55e13f,_0x92e30e){return _0x55e13f(_0x92e30e);}};return Uint8Array[_0x47cd7e(0x1c1,'AB4U')](_0x424a1[_0x47cd7e(0x17f,'K1x!')](atob,_0x54ecf4),_0x48a1b9=>_0x48a1b9[_0x47cd7e(0x178,'nQEJ')](0x0));} |