mirror of
https://github.com/SilenceLurker/ST-Amily2-Chat-Optimisation.git
synced 2026-06-06 14:45:51 +00:00
1 line
31 KiB
JavaScript
1 line
31 KiB
JavaScript
const _0x26d07d=_0x4c3b;(function(_0x31a92f,_0x533030){const _0x3ae2c6=_0x4c3b,_0x1435b3=_0x31a92f();while(!![]){try{const _0x77293b=-parseInt(_0x3ae2c6(0x243))/0x1*(parseInt(_0x3ae2c6(0x26c))/0x2)+parseInt(_0x3ae2c6(0x240))/0x3+parseInt(_0x3ae2c6(0x218))/0x4*(parseInt(_0x3ae2c6(0x1b9))/0x5)+-parseInt(_0x3ae2c6(0x1b0))/0x6+parseInt(_0x3ae2c6(0x262))/0x7+parseInt(_0x3ae2c6(0x232))/0x8*(parseInt(_0x3ae2c6(0x1f4))/0x9)+parseInt(_0x3ae2c6(0x1af))/0xa*(parseInt(_0x3ae2c6(0x23e))/0xb);if(_0x77293b===_0x533030)break;else _0x1435b3['push'](_0x1435b3['shift']());}catch(_0x37fe5d){_0x1435b3['push'](_0x1435b3['shift']());}}}(_0x1ea2,0x549aa));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=_0x26d07d(0x242);let currentTablesState=null;export function setMemoryState(_0x4c9c7e){currentTablesState=_0x4c9c7e;}export function getMemoryState(){return currentTablesState;}const defaultTemplate={'tables':[{'name':_0x26d07d(0x22f),'headers':['日期','时间',_0x26d07d(0x26f),'此地角色'],'note':_0x26d07d(0x1e1),'rule_add':_0x26d07d(0x207),'rule_delete':'当行数超过了1行时。','rule_update':'当日期、时间、地点、此地角色发生变化时。','rows':[]},{'name':_0x26d07d(0x209),'headers':[_0x26d07d(0x1e4),'身体特征','性格','职业','爱好',_0x26d07d(0x255),'住所',_0x26d07d(0x261)],'note':'·\x20角色天生或不易改变的特征csv表格,思考本轮有否有其中的角色,他应作出什么反应\x0a·\x20身体特征、性格要保持在三条及三条以内','rule_add':_0x26d07d(0x21b),'rule_delete':'允许','rule_update':_0x26d07d(0x257),'rows':[]},{'name':_0x26d07d(0x1db),'headers':[_0x26d07d(0x1e4),_0x26d07d(0x1f8),'对{{user}}态度(保持三条)'],'note':_0x26d07d(0x24c),'rule_add':_0x26d07d(0x264),'rule_delete':'·\x20当角色明确死亡时,应删除。','rule_update':_0x26d07d(0x23f),'rows':[]},{'name':_0x26d07d(0x214),'headers':[_0x26d07d(0x1bf),'类型','详情','执行者','状态','结果',_0x26d07d(0x228),_0x26d07d(0x1ce)],'note':_0x26d07d(0x23b),'rule_add':'当{{user}}或者角色确定执行某一个重要事情时,或者收到某件重要事情的执行命令或任务时。','rule_delete':_0x26d07d(0x227),'rule_update':_0x26d07d(0x233),'rows':[]},{'name':_0x26d07d(0x24a),'headers':[_0x26d07d(0x229),_0x26d07d(0x20c),'持有者',_0x26d07d(0x268)],'note':_0x26d07d(0x20b),'rule_add':_0x26d07d(0x1e7),'rule_delete':_0x26d07d(0x201),'rule_update':_0x26d07d(0x22c),'rows':[]},{'name':_0x26d07d(0x249),'headers':['名字',_0x26d07d(0x1d7)],'note':'仅作为用户对你的提示,不允许你擅自修改。','rule_add':_0x26d07d(0x237),'rule_delete':_0x26d07d(0x1c1),'rule_update':_0x26d07d(0x248),'rows':[]}]};function getDefaultTables(){const _0x3baae3=_0x26d07d;return log(_0x3baae3(0x211),_0x3baae3(0x1f2)),JSON[_0x3baae3(0x208)](JSON['stringify'](defaultTemplate['tables']));}export function loadTables(_0x185809=-0x1){const _0x2f810c=_0x26d07d,_0xc4e85a=getContext();if(!_0xc4e85a||!_0xc4e85a[_0x2f810c(0x1e3)]||_0xc4e85a[_0x2f810c(0x1e3)]['length']===0x0)return currentTablesState=getDefaultTables(),currentTablesState;const _0x23aca3=_0x185809===-0x1?_0xc4e85a[_0x2f810c(0x1e3)][_0x2f810c(0x1ed)]-0x1:_0x185809-0x1;if(_0x23aca3<0x0)return currentTablesState=getDefaultTables(),currentTablesState;for(let _0xa90326=_0x23aca3;_0xa90326>=0x0;_0xa90326--){const _0x2ec69c=_0xc4e85a[_0x2f810c(0x1e3)][_0xa90326];if(_0x2ec69c[_0x2f810c(0x20f)]&&_0x2ec69c['extra'][TABLE_DATA_KEY]){log(_0x2f810c(0x203)+_0xa90326+_0x2f810c(0x1fb),_0x2f810c(0x1f2));let _0x56753a=JSON[_0x2f810c(0x208)](JSON['stringify'](_0x2ec69c[_0x2f810c(0x20f)][TABLE_DATA_KEY]));return _0x56753a[_0x2f810c(0x222)](_0xe6eb07=>{const _0x25dd43=_0x2f810c;if(_0xe6eb07[_0x25dd43(0x226)]===undefined)_0xe6eb07[_0x25dd43(0x226)]='无';if(_0xe6eb07[_0x25dd43(0x1c9)]===undefined)_0xe6eb07['rule_add']='允许';if(_0xe6eb07[_0x25dd43(0x1eb)]===undefined)_0xe6eb07[_0x25dd43(0x1eb)]='允许';if(_0xe6eb07[_0x25dd43(0x26b)]===undefined)_0xe6eb07[_0x25dd43(0x26b)]='允许';}),currentTablesState=_0x56753a,currentTablesState;}}return log(_0x2f810c(0x1d3),_0x2f810c(0x1f2)),currentTablesState=getDefaultTables(),currentTablesState;}export function saveStateToMessage(_0x44f62a,_0x2380a5){const _0x2c2d12=_0x26d07d;if(!_0x44f62a||!_0x2380a5)return log(_0x2c2d12(0x1f1),_0x2c2d12(0x244)),![];return!_0x2380a5[_0x2c2d12(0x20f)]&&(_0x2380a5[_0x2c2d12(0x20f)]={}),_0x2380a5[_0x2c2d12(0x20f)][TABLE_DATA_KEY]=JSON[_0x2c2d12(0x208)](JSON[_0x2c2d12(0x22d)](_0x44f62a)),log('表格状态已准备写入消息\x20['+_0x2380a5[_0x2c2d12(0x224)][_0x2c2d12(0x1d5)](0x0,0x14)+_0x2c2d12(0x1d2),_0x2c2d12(0x1f2)),!![];}function _0x4c3b(_0x2f81a9,_0x3f454b){const _0x1ea2cb=_0x1ea2();return _0x4c3b=function(_0x4c3b7f,_0x450458){_0x4c3b7f=_0x4c3b7f-0x1af;let _0x32ff66=_0x1ea2cb[_0x4c3b7f];return _0x32ff66;},_0x4c3b(_0x2f81a9,_0x3f454b);}export function saveTables(_0x4169a4=_0x26d07d(0x20a)){const _0xd0ab9a=_0x26d07d;return log(_0xd0ab9a(0x1ca)+_0x4169a4+_0xd0ab9a(0x24f),_0xd0ab9a(0x1f2)),!![];}export function updateCell(_0x82166d,_0xeb14a0,_0x2ebb29,_0x2203ee){const _0xffee0e=_0x26d07d;if(!currentTablesState||!currentTablesState[_0x82166d]||!currentTablesState[_0x82166d][_0xffee0e(0x241)][_0xeb14a0])return;const _0xdfdb39=currentTablesState[_0x82166d]['name'],_0xbaa7cc=currentTablesState[_0x82166d][_0xffee0e(0x1b5)][_0x2ebb29];currentTablesState[_0x82166d]['rows'][_0xeb14a0][_0x2ebb29]=_0x2203ee;const _0x2d687f='表格\x20['+_0xdfdb39+_0xffee0e(0x265)+_0xbaa7cc+_0xffee0e(0x235)+(_0xeb14a0+0x1)+_0xffee0e(0x21f);log(_0x2d687f,_0xffee0e(0x1f2));const _0xb4f412=getContext();if(_0xb4f412[_0xffee0e(0x1e3)]&&_0xb4f412[_0xffee0e(0x1e3)][_0xffee0e(0x1ed)]>0x0){const _0x4b2b64=_0xb4f412[_0xffee0e(0x1e3)][_0xb4f412[_0xffee0e(0x1e3)][_0xffee0e(0x1ed)]-0x1];if(saveStateToMessage(currentTablesState,_0x4b2b64)){saveChat();return;}}saveChatDebounced();}export function addRow(_0x2036ac){const _0x5a22a7=_0x26d07d;if(!currentTablesState||!currentTablesState[_0x2036ac])return;const _0x4bb221=currentTablesState[_0x2036ac],_0x3ca03b=_0x4bb221['headers'][_0x5a22a7(0x1ed)],_0x2dab2e=Array(_0x3ca03b)[_0x5a22a7(0x1b3)]('');_0x4bb221[_0x5a22a7(0x241)][_0x5a22a7(0x267)](_0x2dab2e);const _0x4cce54='表格\x20['+_0x4bb221['name']+_0x5a22a7(0x1d6);log(_0x4cce54,_0x5a22a7(0x1f2));const _0x1150e9=getContext();if(_0x1150e9['chat']&&_0x1150e9[_0x5a22a7(0x1e3)][_0x5a22a7(0x1ed)]>0x0){const _0x3470f1=_0x1150e9[_0x5a22a7(0x1e3)][_0x1150e9[_0x5a22a7(0x1e3)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x3470f1)){saveChat();return;}}saveChatDebounced();}export function addColumn(_0x5df3b3){const _0x5e4130=_0x26d07d;if(!currentTablesState||!currentTablesState[_0x5df3b3])return;const _0x6c8052=currentTablesState[_0x5df3b3],_0x40b3aa='新列\x20'+(_0x6c8052['headers'][_0x5e4130(0x1ed)]+0x1);_0x6c8052[_0x5e4130(0x1b5)][_0x5e4130(0x267)](_0x40b3aa),_0x6c8052['rows'][_0x5e4130(0x222)](_0x420105=>_0x420105[_0x5e4130(0x267)](''));const _0x4938c0='表格\x20['+_0x6c8052[_0x5e4130(0x230)]+_0x5e4130(0x204);log(_0x4938c0,_0x5e4130(0x1f2));const _0x1b21b7=getContext();if(_0x1b21b7[_0x5e4130(0x1e3)]&&_0x1b21b7[_0x5e4130(0x1e3)][_0x5e4130(0x1ed)]>0x0){const _0x184881=_0x1b21b7[_0x5e4130(0x1e3)][_0x1b21b7[_0x5e4130(0x1e3)][_0x5e4130(0x1ed)]-0x1];if(saveStateToMessage(currentTablesState,_0x184881)){saveChat();return;}}saveChatDebounced();}export function updateHeader(_0x423a84,_0xbc21df,_0x5ecca8){const _0x297461=_0x26d07d;if(!currentTablesState||!currentTablesState[_0x423a84]||currentTablesState[_0x423a84][_0x297461(0x1b5)][_0xbc21df]===undefined)return;const _0x53fa79=currentTablesState[_0x423a84][_0x297461(0x230)],_0x2e94ff=currentTablesState[_0x423a84][_0x297461(0x1b5)][_0xbc21df];currentTablesState[_0x423a84][_0x297461(0x1b5)][_0xbc21df]=_0x5ecca8;const _0x32a354=_0x297461(0x21e)+_0x53fa79+_0x297461(0x246)+_0x2e94ff+_0x297461(0x225)+_0x5ecca8+'”。';log(_0x32a354,_0x297461(0x1f2));const _0x4b2a66=getContext();if(_0x4b2a66[_0x297461(0x1e3)]&&_0x4b2a66[_0x297461(0x1e3)][_0x297461(0x1ed)]>0x0){const _0x3a4e17=_0x4b2a66[_0x297461(0x1e3)][_0x4b2a66[_0x297461(0x1e3)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x3a4e17)){saveChat();return;}}saveChatDebounced();}export async function deleteRow(_0x35afa5,_0x1a72cf){const _0x10ca1a=_0x26d07d;if(!currentTablesState||!currentTablesState[_0x35afa5]||!currentTablesState[_0x35afa5][_0x10ca1a(0x241)][_0x1a72cf])return;const _0x3ee676=currentTablesState[_0x35afa5][_0x10ca1a(0x230)];currentTablesState[_0x35afa5]['rows'][_0x10ca1a(0x213)](_0x1a72cf,0x1);const _0x126d03=_0x10ca1a(0x21e)+_0x3ee676+']\x20的第\x20'+(_0x1a72cf+0x1)+_0x10ca1a(0x1fd);log(_0x126d03,'info');const _0x4187a2=getContext();if(_0x4187a2[_0x10ca1a(0x1e3)]&&_0x4187a2['chat'][_0x10ca1a(0x1ed)]>0x0){const _0x57b9d3=_0x4187a2[_0x10ca1a(0x1e3)][_0x4187a2['chat'][_0x10ca1a(0x1ed)]-0x1];if(saveStateToMessage(currentTablesState,_0x57b9d3)){await saveChat();return;}}await saveChatDebounced();}export function deleteColumn(_0x809e91,_0x588899){const _0x195636=_0x26d07d;if(!currentTablesState||!currentTablesState[_0x809e91]||currentTablesState[_0x809e91][_0x195636(0x1b5)][_0x588899]===undefined)return;const _0x2a16a4=currentTablesState[_0x809e91][_0x195636(0x230)],_0x3ca75f=currentTablesState[_0x809e91][_0x195636(0x1b5)][_0x588899];currentTablesState[_0x809e91][_0x195636(0x1b5)][_0x195636(0x213)](_0x588899,0x1),currentTablesState[_0x809e91]['rows'][_0x195636(0x222)](_0x586387=>{const _0x159a71=_0x195636;_0x586387[_0x159a71(0x213)](_0x588899,0x1);});const _0x1ca68f=_0x195636(0x21e)+_0x2a16a4+']\x20的列“'+_0x3ca75f+_0x195636(0x20e);log(_0x1ca68f,_0x195636(0x1f2));const _0x3bdc4d=getContext();if(_0x3bdc4d[_0x195636(0x1e3)]&&_0x3bdc4d['chat'][_0x195636(0x1ed)]>0x0){const _0x5639b6=_0x3bdc4d[_0x195636(0x1e3)][_0x3bdc4d[_0x195636(0x1e3)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x5639b6)){saveChat();return;}}saveChatDebounced();}export function deleteTable(_0x1f8fb9){const _0x44d7d5=_0x26d07d;if(!currentTablesState||!currentTablesState[_0x1f8fb9])return;const _0x107294=currentTablesState[_0x1f8fb9]['name'];currentTablesState[_0x44d7d5(0x213)](_0x1f8fb9,0x1);const _0x370c02=_0x44d7d5(0x21e)+_0x107294+_0x44d7d5(0x263);log(_0x370c02,_0x44d7d5(0x220));const _0xa410fe=getContext();if(_0xa410fe[_0x44d7d5(0x1e3)]&&_0xa410fe['chat'][_0x44d7d5(0x1ed)]>0x0){const _0xe1e9f1=_0xa410fe[_0x44d7d5(0x1e3)][_0xa410fe[_0x44d7d5(0x1e3)][_0x44d7d5(0x1ed)]-0x1];if(saveStateToMessage(currentTablesState,_0xe1e9f1)){saveChat(),log(_0x44d7d5(0x238),_0x44d7d5(0x220));return;}}log('无法找到可锚定的消息或保存失败,删除操作可能不会被持久化!','error'),saveChatDebounced();}export function addTable(_0xbf8af5){const _0x32db61=_0x26d07d;if(!_0xbf8af5||!_0xbf8af5[_0x32db61(0x1b2)]()){log(_0x32db61(0x22b),_0x32db61(0x244)),toastr['error'](_0x32db61(0x1e0),_0x32db61(0x217));return;}!currentTablesState&&loadTables();if(currentTablesState[_0x32db61(0x1da)](_0x104638=>_0x104638[_0x32db61(0x230)]===_0xbf8af5[_0x32db61(0x1b2)]())){log('无法创建表格:名为\x20\x22'+_0xbf8af5+'\x22\x20的表格已存在。',_0x32db61(0x244)),toastr['error'](_0x32db61(0x223)+_0xbf8af5+_0x32db61(0x215),_0x32db61(0x217));return;}const _0x307f50={'name':_0xbf8af5[_0x32db61(0x1b2)](),'headers':[_0x32db61(0x216)],'rows':[],'note':'这是一个新创建的表格。','rule_add':'允许','rule_delete':'允许','rule_update':'允许'};currentTablesState[_0x32db61(0x267)](_0x307f50);const _0x124159='已成功创建新表格:['+_0xbf8af5[_0x32db61(0x1b2)]()+']。';log(_0x124159,_0x32db61(0x220));const _0x472f2f=getContext();if(_0x472f2f['chat']&&_0x472f2f[_0x32db61(0x1e3)][_0x32db61(0x1ed)]>0x0){const _0x30044b=_0x472f2f['chat'][_0x472f2f['chat'][_0x32db61(0x1ed)]-0x1];if(saveStateToMessage(currentTablesState,_0x30044b)){saveChat(),log(_0x32db61(0x221),_0x32db61(0x220));return;}}log(_0x32db61(0x205),_0x32db61(0x244)),saveChatDebounced();}export function moveTable(_0x31d0b4,_0x24e6c7){const _0x251d15=_0x26d07d;if(!currentTablesState||!currentTablesState[_0x31d0b4])return;const _0x292a6c=_0x24e6c7==='up'?_0x31d0b4-0x1:_0x31d0b4+0x1;if(_0x292a6c<0x0||_0x292a6c>=currentTablesState[_0x251d15(0x1ed)]){log(_0x251d15(0x21c)+_0x31d0b4+_0x251d15(0x1e5),_0x251d15(0x1dd));return;}const _0x1cc796=currentTablesState[_0x31d0b4];currentTablesState[_0x31d0b4]=currentTablesState[_0x292a6c],currentTablesState[_0x292a6c]=_0x1cc796;const _0x3aedd2=_0x251d15(0x21e)+_0x1cc796['name']+']\x20的顺序已调整。';log(_0x3aedd2,_0x251d15(0x220));const _0x29530f=getContext();if(_0x29530f[_0x251d15(0x1e3)]&&_0x29530f[_0x251d15(0x1e3)]['length']>0x0){const _0x2247a7=_0x29530f[_0x251d15(0x1e3)][_0x29530f['chat'][_0x251d15(0x1ed)]-0x1];if(saveStateToMessage(currentTablesState,_0x2247a7)){saveChat(),log(_0x251d15(0x1c4),_0x251d15(0x220));return;}}log(_0x251d15(0x1bc),_0x251d15(0x244)),saveChatDebounced();}export function updateTableRules(_0x569e69,_0x49fde8){const _0x3b9dea=_0x26d07d;if(!currentTablesState||!currentTablesState[_0x569e69])return;const _0x4d729b=currentTablesState[_0x569e69];_0x4d729b['note']=_0x49fde8[_0x3b9dea(0x226)],_0x4d729b[_0x3b9dea(0x1c9)]=_0x49fde8['rule_add'],_0x4d729b[_0x3b9dea(0x1eb)]=_0x49fde8['rule_delete'],_0x4d729b[_0x3b9dea(0x26b)]=_0x49fde8[_0x3b9dea(0x26b)];const _0x586c80=_0x3b9dea(0x21e)+_0x4d729b[_0x3b9dea(0x230)]+']\x20的规则已更新。';log(_0x586c80,_0x3b9dea(0x1f2));const _0x257f38=getContext();if(_0x257f38[_0x3b9dea(0x1e3)]&&_0x257f38[_0x3b9dea(0x1e3)][_0x3b9dea(0x1ed)]>0x0){const _0x4217a1=_0x257f38[_0x3b9dea(0x1e3)][_0x257f38[_0x3b9dea(0x1e3)][_0x3b9dea(0x1ed)]-0x1];if(saveStateToMessage(currentTablesState,_0x4217a1)){saveChat();return;}}saveChatDebounced();}export function insertRow(_0x28188b,_0x205362){const _0x293638=_0x26d07d;if(!currentTablesState||!currentTablesState[_0x28188b]){log(_0x293638(0x251)+_0x28188b+_0x293638(0x219),_0x293638(0x244));return;}const _0x165c2f=currentTablesState[_0x28188b],_0x163e02=_0x165c2f[_0x293638(0x1b5)][_0x293638(0x1ed)],_0x136893=Array(_0x163e02)[_0x293638(0x1b3)]('');for(const _0x78491c in _0x205362){parseInt(_0x78491c,0xa)<_0x163e02&&(_0x136893[_0x78491c]=_0x205362[_0x78491c]);}_0x165c2f[_0x293638(0x241)][_0x293638(0x267)](_0x136893);const _0x5475e2=_0x293638(0x25a)+_0x165c2f[_0x293638(0x230)]+_0x293638(0x259);log(_0x5475e2,'info');const _0x3fb80a=getContext();if(_0x3fb80a[_0x293638(0x1e3)]&&_0x3fb80a[_0x293638(0x1e3)][_0x293638(0x1ed)]>0x0){const _0x29a038=_0x3fb80a[_0x293638(0x1e3)][_0x3fb80a[_0x293638(0x1e3)][_0x293638(0x1ed)]-0x1];if(saveStateToMessage(currentTablesState,_0x29a038)){saveChat();return;}}saveChatDebounced();}export function updateRow(_0x38cb94,_0x205e48,_0x269fe6){const _0x33994e=_0x26d07d;if(!currentTablesState||!currentTablesState[_0x38cb94]){log(_0x33994e(0x251)+_0x38cb94+_0x33994e(0x1ea),_0x33994e(0x244));return;}const _0x32b800=currentTablesState[_0x38cb94];if(_0x205e48>=_0x32b800['rows'][_0x33994e(0x1ed)]){log(_0x33994e(0x25b)+_0x205e48+'),已智能转换为在表格\x20['+_0x32b800[_0x33994e(0x230)]+_0x33994e(0x212),_0x33994e(0x1dd)),insertRow(_0x38cb94,_0x269fe6);return;}const _0x2b810f=_0x32b800[_0x33994e(0x241)][_0x205e48];for(const _0x336711 in _0x269fe6){parseInt(_0x336711,0xa)<_0x2b810f[_0x33994e(0x1ed)]&&(_0x2b810f[_0x336711]=_0x269fe6[_0x336711]);}const _0x33bde2=_0x33994e(0x25e)+_0x32b800[_0x33994e(0x230)]+_0x33994e(0x1be)+(_0x205e48+0x1)+_0x33994e(0x1d0);log(_0x33bde2,_0x33994e(0x1f2));const _0x29bcc9=getContext();if(_0x29bcc9[_0x33994e(0x1e3)]&&_0x29bcc9[_0x33994e(0x1e3)][_0x33994e(0x1ed)]>0x0){const _0x451cd4=_0x29bcc9['chat'][_0x29bcc9[_0x33994e(0x1e3)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x451cd4)){saveChat();return;}}saveChatDebounced();}export function clearAllTables(){const _0x10965b=_0x26d07d;if(!currentTablesState){log(_0x10965b(0x252),_0x10965b(0x244));return;}currentTablesState[_0x10965b(0x222)](_0x5c63b9=>{_0x5c63b9['rows']=[];}),log('所有表格的行数据已在内存中清空。',_0x10965b(0x1dd));const _0x2056da=getContext();if(_0x2056da[_0x10965b(0x1e3)]&&_0x2056da[_0x10965b(0x1e3)][_0x10965b(0x1ed)]>0x0){const _0x4ce097=_0x2056da['chat'][_0x2056da[_0x10965b(0x1e3)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x4ce097)){saveChat(),log(_0x10965b(0x1ff),_0x10965b(0x220)),toastr[_0x10965b(0x220)](_0x10965b(0x260),_0x10965b(0x269));return;}}log(_0x10965b(0x24e),_0x10965b(0x244)),saveChatDebounced();}export function convertTablesToCsvString(){const _0x5e7279=_0x26d07d;!currentTablesState&&loadTables();if(!currentTablesState)return'';let _0x5e8bca='';return currentTablesState[_0x5e7279(0x222)]((_0x3370ed,_0x105e05)=>{const _0x31db35=_0x5e7279;_0x5e8bca+=_0x31db35(0x1f7)+_0x105e05+':'+_0x3370ed['name']+'\x0a',_0x5e8bca+=_0x31db35(0x1fa)+(_0x3370ed['note']||'无')+'\x0a';const _0x27730c=_0x3370ed[_0x31db35(0x230)][_0x31db35(0x250)](/\s/g,'')+'内容';_0x5e8bca+='<'+_0x27730c+'>\x0a';const _0x1de4a4=_0x3370ed[_0x31db35(0x1b5)]['map']((_0x1bc137,_0x3c4b22)=>_0x3c4b22+':'+_0x1bc137)['join'](',');_0x5e8bca+=_0x31db35(0x23a)+_0x1de4a4+'\x0a',_0x3370ed[_0x31db35(0x241)][_0x31db35(0x222)]((_0x258919,_0x10b7ed)=>{const _0x2dad8f=_0x31db35;if(Array['isArray'](_0x258919)){const _0xcabef=_0x258919[_0x2dad8f(0x25d)](_0x5f38f9=>{const _0x3b044e=_0x2dad8f;return _0x5f38f9===null||_0x5f38f9===undefined||_0x5f38f9===''?'无':_0x5f38f9[_0x3b044e(0x253)]();})[_0x2dad8f(0x1d1)](',');_0x5e8bca+=_0x10b7ed+','+_0xcabef+'\x0a';}}),_0x5e8bca+='</'+_0x27730c+'>\x0a',_0x5e8bca+=_0x31db35(0x25f)+(_0x3370ed[_0x31db35(0x1c9)]||'允许')+'\x0a',_0x5e8bca+=_0x31db35(0x231)+(_0x3370ed[_0x31db35(0x1eb)]||'允许')+'\x0a',_0x5e8bca+=_0x31db35(0x1c6)+(_0x3370ed['rule_update']||'允许')+'\x0a',_0x105e05<currentTablesState[_0x31db35(0x1ed)]-0x1&&(_0x5e8bca+='\x0a---\x0a');}),_0x5e8bca;}loadTables();export function getBatchFillerRuleTemplate(){const _0x4bb637=_0x26d07d;return extension_settings[extensionName]?.[_0x4bb637(0x1b4)]??DEFAULT_AI_RULE_TEMPLATE;}export function saveBatchFillerRuleTemplate(_0x1000b2){const _0x47320f=_0x26d07d;extension_settings[extensionName][_0x47320f(0x1b4)]=_0x1000b2,saveSettingsDebounced();}export function getBatchFillerFlowTemplate(){const _0x1396ac=_0x26d07d;return extension_settings[extensionName]?.[_0x1396ac(0x1ba)]??DEFAULT_AI_FLOW_TEMPLATE;}export function saveBatchFillerFlowTemplate(_0xf4113f){const _0x247086=_0x26d07d;extension_settings[extensionName][_0x247086(0x1ba)]=_0xf4113f,saveSettingsDebounced();}export function getAiFlowTemplateForInjection(){return extension_settings[extensionName]?.['amily2_ai_template']??DEFAULT_AI_FLOW_TEMPLATE;}export function updateTableFromText(_0x4b45b4){const _0x29d2bf=_0x26d07d;if(!_0x4b45b4){log('AI返回内容为空,无法更新表格。','warn');return;}const _0x4ddde0=_0x4b45b4[_0x29d2bf(0x1e9)](/<Amily2Edit>([\s\S]*?)<\/Amily2Edit>/);if(!_0x4ddde0||!_0x4ddde0[0x1]){log(_0x29d2bf(0x1c8),_0x29d2bf(0x1dd));return;}let _0x4c0056=_0x4ddde0[0x1][_0x29d2bf(0x250)](/<!--|-->/g,'')[_0x29d2bf(0x1b2)]();if(!_0x4c0056){log(_0x29d2bf(0x1ec),_0x29d2bf(0x1f2));return;}const _0x216e75=_0x4c0056[_0x29d2bf(0x1b1)]('\x0a')['filter'](_0x15dd08=>_0x15dd08[_0x29d2bf(0x1b2)]()!=='');log(_0x29d2bf(0x1bd)+_0x216e75[_0x29d2bf(0x1ed)]+_0x29d2bf(0x1ef),_0x29d2bf(0x1f2));const _0x5b319f={'insertRow':(_0x4b9585,_0x368c20)=>{const _0x1b9394=_0x29d2bf;log(_0x1b9394(0x239)+_0x4b9585+_0x1b9394(0x20d)+JSON[_0x1b9394(0x22d)](_0x368c20)+')','info'),insertRow(_0x4b9585,_0x368c20);},'deleteRow':(_0x2d0e8a,_0x21a330)=>{const _0x95d1e0=_0x29d2bf;log(_0x95d1e0(0x202)+_0x2d0e8a+_0x95d1e0(0x256)+_0x21a330+')',_0x95d1e0(0x1f2)),deleteRow(_0x2d0e8a,_0x21a330);},'updateRow':(_0x4945ef,_0xcf91d3,_0x162365)=>{const _0x4ed902=_0x29d2bf;log(_0x4ed902(0x1b6)+_0x4945ef+',\x20rowIndex='+_0xcf91d3+_0x4ed902(0x20d)+JSON[_0x4ed902(0x22d)](_0x162365)+')','info'),updateRow(_0x4945ef,_0xcf91d3,_0x162365);}};try{const _0x1c241d=new Function(_0x29d2bf(0x26e),_0x29d2bf(0x22e)+_0x4c0056+_0x29d2bf(0x254));_0x1c241d(_0x5b319f),log(_0x29d2bf(0x1b7),'success'),toastr[_0x29d2bf(0x220)](_0x29d2bf(0x1df),_0x29d2bf(0x1c5)),saveChatDebounced();}catch(_0x34cf38){log(_0x29d2bf(0x258)+_0x34cf38[_0x29d2bf(0x21d)],'error'),toastr[_0x29d2bf(0x244)]('执行AI指令时出错:\x20'+_0x34cf38[_0x29d2bf(0x21d)],'执行失败');}}export function saveAiTemplate(_0xc7c062){const _0x26ef75=_0x26d07d;extension_settings[extensionName][_0x26ef75(0x1c0)]=_0xc7c062,saveSettingsDebounced();}export function getAiTemplate(){return getAiFlowTemplateForInjection();}function exportPresetBase(_0x32ab22=![]){const _0x5bb682=_0x26d07d;if(!currentTablesState){log('无法导出:当前表格状态为空。',_0x5bb682(0x244)),toastr['error'](_0x5bb682(0x1cd));return;}let _0x1b6a39,_0x21e964,_0x5c0746;_0x32ab22?(_0x1b6a39=JSON[_0x5bb682(0x208)](JSON['stringify'](currentTablesState)),_0x21e964=_0x5bb682(0x247),_0x5c0746=_0x5bb682(0x1cc)):(_0x1b6a39=currentTablesState[_0x5bb682(0x25d)](_0x1f6308=>({'name':_0x1f6308[_0x5bb682(0x230)],'headers':_0x1f6308['headers'],'note':_0x1f6308[_0x5bb682(0x226)],'rule_add':_0x1f6308[_0x5bb682(0x1c9)],'rule_delete':_0x1f6308[_0x5bb682(0x1eb)],'rule_update':_0x1f6308[_0x5bb682(0x26b)],'rows':[]})),_0x21e964=_0x5bb682(0x200),_0x5c0746=_0x5bb682(0x210));const _0x46ae07={'version':_0x5bb682(0x23c),'batchFillerRuleTemplate':getBatchFillerRuleTemplate(),'batchFillerFlowTemplate':getBatchFillerFlowTemplate(),'injectionFlowTemplate':getAiFlowTemplateForInjection(),'tables':_0x1b6a39},_0x55631b=new Blob([JSON[_0x5bb682(0x22d)](_0x46ae07,null,0x2)],{'type':'application/json'}),_0x5af8e6=URL[_0x5bb682(0x23d)](_0x55631b),_0x5b623a=document[_0x5bb682(0x1bb)]('a');_0x5b623a[_0x5bb682(0x1d8)]=_0x5af8e6,_0x5b623a['download']=_0x5bb682(0x1e2)+_0x5c0746+'-'+new Date()[_0x5bb682(0x1b8)]()[_0x5bb682(0x266)](0x0,0xa)+_0x5bb682(0x1c2),document[_0x5bb682(0x1fe)][_0x5bb682(0x206)](_0x5b623a),_0x5b623a[_0x5bb682(0x24b)](),document[_0x5bb682(0x1fe)]['removeChild'](_0x5b623a),URL['revokeObjectURL'](_0x5af8e6),log('【'+_0x5c0746+'】已成功导出。',_0x5bb682(0x220)),toastr[_0x5bb682(0x220)]('【'+_0x5c0746+_0x5bb682(0x22a),_0x5bb682(0x1f0));}export function exportPreset(){exportPresetBase(![]);}export function exportPresetFull(){exportPresetBase(!![]);}export function importPreset(_0x2fa89f){const _0x18cb6c=_0x26d07d,_0x5efaac=document['createElement']('input');_0x5efaac[_0x18cb6c(0x26a)]=_0x18cb6c(0x1c3),_0x5efaac[_0x18cb6c(0x1d4)]=_0x18cb6c(0x1c2),_0x5efaac[_0x18cb6c(0x234)]=_0x4015db=>{const _0x5bce8b=_0x18cb6c,_0x332a89=_0x4015db[_0x5bce8b(0x245)]['files'][0x0];if(!_0x332a89)return;const _0x3dbaea=new FileReader();_0x3dbaea['onload']=_0x246d5d=>{const _0x5adbc1=_0x5bce8b;try{const _0x2d5ec9=JSON[_0x5adbc1(0x208)](_0x246d5d[_0x5adbc1(0x245)][_0x5adbc1(0x236)]);if(!_0x2d5ec9[_0x5adbc1(0x21a)]||!Array['isArray'](_0x2d5ec9[_0x5adbc1(0x24d)]))throw new Error(_0x5adbc1(0x1ee));const _0x23caef=window['confirm'](_0x5adbc1(0x1f6));if(!_0x23caef){log(_0x5adbc1(0x1cb),_0x5adbc1(0x1f2)),toastr['info']('导入操作已取消。');return;}if(_0x2d5ec9['version']===_0x5adbc1(0x23c))saveBatchFillerRuleTemplate(_0x2d5ec9[_0x5adbc1(0x1f9)]),saveBatchFillerFlowTemplate(_0x2d5ec9[_0x5adbc1(0x1e8)]),saveAiTemplate(_0x2d5ec9['injectionFlowTemplate']);else{if(_0x2d5ec9[_0x5adbc1(0x26d)]!==undefined&&_0x2d5ec9[_0x5adbc1(0x1dc)]!==undefined)saveBatchFillerRuleTemplate(_0x2d5ec9[_0x5adbc1(0x26d)]),saveBatchFillerFlowTemplate(_0x2d5ec9[_0x5adbc1(0x1dc)]),saveAiTemplate(_0x2d5ec9['aiFlowTemplate']);else{if(_0x2d5ec9['aiTemplate'])saveBatchFillerRuleTemplate(''),saveBatchFillerFlowTemplate(_0x2d5ec9[_0x5adbc1(0x1e6)]),saveAiTemplate(_0x2d5ec9['aiTemplate']);else throw new Error(_0x5adbc1(0x1f5));}}const _0x177aec=_0x2d5ec9[_0x5adbc1(0x24d)];_0x177aec['forEach'](_0x5e3a68=>{const _0x250e15=_0x5adbc1;if(_0x5e3a68[_0x250e15(0x230)]===undefined||_0x5e3a68[_0x250e15(0x1b5)]===undefined||_0x5e3a68[_0x250e15(0x241)]===undefined)throw new Error(_0x250e15(0x25c)+JSON['stringify'](_0x5e3a68));if(_0x5e3a68[_0x250e15(0x226)]===undefined)_0x5e3a68[_0x250e15(0x226)]='无';if(_0x5e3a68[_0x250e15(0x1c9)]===undefined)_0x5e3a68[_0x250e15(0x1c9)]='允许';if(_0x5e3a68[_0x250e15(0x1eb)]===undefined)_0x5e3a68[_0x250e15(0x1eb)]='允许';if(_0x5e3a68['rule_update']===undefined)_0x5e3a68[_0x250e15(0x26b)]='允许';}),setMemoryState(_0x177aec);const _0x482018=getContext();if(_0x482018[_0x5adbc1(0x1e3)]&&_0x482018[_0x5adbc1(0x1e3)][_0x5adbc1(0x1ed)]>0x0){const _0x36deb7=_0x482018[_0x5adbc1(0x1e3)][_0x482018[_0x5adbc1(0x1e3)][_0x5adbc1(0x1ed)]-0x1];saveStateToMessage(getMemoryState(),_0x36deb7)&&(saveChat(),log(_0x5adbc1(0x1de),_0x5adbc1(0x220)));}else saveChatDebounced();log('预设已成功导入并应用。','success'),toastr['success'](_0x5adbc1(0x1c7),'导入成功'),typeof _0x2fa89f===_0x5adbc1(0x1d9)&&_0x2fa89f();}catch(_0x386b6f){log(_0x5adbc1(0x1cf)+_0x386b6f[_0x5adbc1(0x21d)],_0x5adbc1(0x244)),toastr[_0x5adbc1(0x244)](_0x5adbc1(0x1fc)+_0x386b6f[_0x5adbc1(0x21d)],'错误');}},_0x3dbaea[_0x5bce8b(0x1f3)](_0x332a89);},_0x5efaac['click']();}function _0x1ea2(){const _0x6847f8=['当日期、时间、地点、此地角色发生变化且1行都没有时。','parse','角色特征表格','未知操作','对某人很贵重或有特殊纪念意义的物品','物品描述',',\x20data=','”已删除。','extra','纯净预设','从预设模板生成默认表格...',']\x20末尾新增一行。','splice','“任务&命令&约定”表格','\x22\x20的表格已存在。','新列\x201','创建失败','744jrRRWB','\x20中插入行。','version','当本轮出现表中没有的新角色时,应插入','无法移动表格:索引\x20','message','表格\x20[','\x20行内容已更新。','success','新表格状态已强制写入最新消息并立即保存。','forEach','名为\x20\x22','mes','”已更新为“','note','冻结留存,不做任何删除操作。','开始时间','物品名称','】已开始下载。','无法创建表格:名称不能为空。','·\x20当物品发生变化时。\x0a·\x20当消耗品被使用却没有使用完时','stringify','\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','时空表格','name','【删除】:\x20','416264MBHKEM','·\x20当任务、约定有新的进展时\x0a·\x20任务或命令完成时\x0a·\x20任务,命令或约定被取消时。','onchange','”列的第\x20','result','当用户以剧情外的身份对你进行提示时、或者以括号的方式提醒你时。','废黜表格后的状态已强制写入最新消息并立即保存。','执行AI指令:\x20insertRow(tableIndex=','rowIndex,','记录已完成/进展中的任务、约定。','Amily2-Table-Preset-v3.0-separated_templates','createObjectURL','141779qwQSls','·\x20当角色和{{user}}的交互不再符合原有的记录时。\x0a·\x20当角色和{{user}}的关系改变时。','724110ilYwfi','rows','amily2_tables_data','25OhQRkl','error','target',']\x20的表头“','Amily2-Table-Preset-v2.0-full','当用户以括号的方式要求你进行修改时。','玩家提示','重要物品表格','click','·\x20思考如果有角色和{{user}}互动,应什么态度\x0a·\x20角色对{{user}}的态度保持在最突出的三条及三条以内','tables','无法找到可锚定的消息或保存失败,清空操作可能不会被持久化!','\x22\x20已更新内存状态。','replace','AI指令错误:尝试在不存在的表格索引\x20','无法清空:当前表格状态为空。','toString','\x0a\x20\x20\x20\x20\x20\x20\x20\x20','喜欢的人事物',',\x20rowIndex=','·\x20当角色的身体出现持久性变化时,例如伤痕。\x0a·\x20当角色有新的爱好,职业,喜欢的事物时\x0a·\x20当角色更换住所时\x0a·\x20当角色提到重要信息时。','执行AI指令时发生错误:\x20',']\x20中插入了一行。','AI\x20指令在表格\x20[','AI指令意图更新不存在的行\x20(rowIndex:\x20','导入的表格数据格式不正确:\x20','map','AI\x20指令更新了表格\x20[','【增加】:\x20','所有表格的剧情内容已清空。','其他重要信息','1672244tUcYYQ',']\x20已被成功废黜。','·\x20当本轮出现表中没有的新角色时,应新增。',']\x20中“','slice','push','重要原因','操作完成','type','rule_update','20766hryEMD','aiRuleTemplate','runner','地点(当前描写)','80PaKaqd','3815298zxCdqT','split','trim','fill','batch_filler_rule_template','headers','执行AI指令:\x20updateRow(tableIndex=','所有AI指令已成功执行完毕。','toISOString','6515nFVZAy','batch_filler_flow_template','createElement','无法找到可锚定的消息或保存失败,顺序调整可能不会被持久化!','准备执行从AI返回的\x20',']\x20的第\x20','任务名称','amily2_ai_template','除非用户要求,否则不允许删除。','.json','file','表格顺序调整后的状态已强制写入最新消息并立即保存。','填表完成','【修改】:\x20','预设已成功导入!','未在AI返回内容中找到有效的\x20<Amily2Edit>\x20指令块。','rule_add','UI操作\x20\x22','用户取消了导入操作。','完整备份','没有可导出的表格数据。','结束时间','导入预设失败:\x20','\x20行。','join','...]','未在聊天记录中找到表格数据,使用默认模板。','accept','substring',']\x20新增了一行。','重要提示','href','function','some','角色与{{user}}社交表格','aiFlowTemplate','warn','导入的预设已强制写入最新消息并立即保存。','已根据AI的指示成功更新表格!','表格名称不能为空。','·\x20记录时空信息的表格,应保持在一行\x0a·\x20日期一览记录当前的日期(如几年几月几日)\x0a·\x20时间一览记录当前时段,但需注意不存在次日清晨,若有次日清晨请自动更新日期,且将时段更新为清晨','Amily2-','chat','角色名','\x20已在边界。','aiTemplate','·\x20当某人获得了贵重或有特殊意义的物品时\x0a·\x20当某个已有物品有了特殊意义时','batchFillerFlowTemplate','match','\x20中操作。','rule_delete','AI指令块为空,无需执行任何操作。','length','文件格式无效或缺少版本号/表格数据。','\x20条表格操作指令...','导出成功','缺少状态或目标消息,无法保存。','info','readAsText','72ImVpKT','预设中缺少必要的指令模板字段。','【警告】\x0a\x0a导入操作将完全覆盖您当前的AI指令模板和所有表格(包括结构和内容)。\x0a\x0a此操作不可逆,是否确定要继续?','\x0a*\x20','对{{user}}关系','batchFillerRuleTemplate','【说明】:\x0a','\x20条消息中找到基准表格数据。','导入失败:','\x20行已删除。','body','清空行数据后的状态已强制写入最新消息并立即保存。','Amily2-Table-Preset-v2.0-clean','消耗性物品完全使用完,或一次性物品被使用后。','执行AI指令:\x20deleteRow(tableIndex=','在第\x20',']\x20新增了一列。','无法找到可锚定的消息或保存失败,新表格可能不会被持久化!','appendChild'];_0x1ea2=function(){return _0x6847f8;};return _0x1ea2();} |