From adffed40beb3138856a5cbc54ae89cedb38fb71c Mon Sep 17 00:00:00 2001 From: Wx-2025 <351320169@qq.com> Date: Tue, 5 Aug 2025 06:30:12 +0800 Subject: [PATCH] Update drawer.js --- ui/drawer.js | 200 +-------------------------------------------------- 1 file changed, 1 insertion(+), 199 deletions(-) diff --git a/ui/drawer.js b/ui/drawer.js index 0ff9d5d..5d9855b 100644 --- a/ui/drawer.js +++ b/ui/drawer.js @@ -1,199 +1 @@ -import { getSlideToggleOptions } from '/script.js'; -import { slideToggle } from '/lib.js'; -import { extension_settings } from "/scripts/extensions.js"; -import { extensionName, defaultSettings } from "../utils/settings.js"; -import { - checkAuthorization, - displayExpiryInfo, - pluginAuthStatus, -} from "../utils/auth.js"; -import { - updateUI, - setAvailableModels, - populateModelDropdown, - applyUpdateIndicator, -} from "./state.js"; -import { bindModalEvents } from "./bindings.js"; -import { fetchSupportedModels } from "../core/api.js"; -import { bindHistoriographyEvents } from "./historiography-bindings.js"; -import { bindHanlinyuanEvents } from "./hanlinyuan-bindings.js"; -import { showContentModal } from "./page-window.js"; -const extensionFolderPath = `scripts/extensions/third-party/${extensionName}`; - - -async function loadSettings() { - extension_settings[extensionName] = { - ...defaultSettings, - ...(extension_settings[extensionName] || {}), - }; - - - checkAuthorization(); - - - const autoLogin = localStorage.getItem("plugin_auto_login") === "true"; - console.log( - `[Amily2-调试] 授权状态: ${pluginAuthStatus.authorized}, 自动登录标志: ${autoLogin}`, - ); - if (autoLogin && pluginAuthStatus.authorized) { - console.log("[Amily2号] 检测到有效授权,将执行自动UI更新。"); - } - - $("#expiry_info").html(displayExpiryInfo()); - updateUI(); - - if (pluginAuthStatus.authorized && extension_settings[extensionName].apiUrl) { - const cachedModels = localStorage.getItem("cached_models_amily2"); - if (cachedModels) { - const models = JSON.parse(cachedModels); - console.log(`[Amily2号] 从缓存加载模型列表 (${models.length}个)`); - setAvailableModels(models); - populateModelDropdown(); - } else { - toastr.info("正在自动加载模型列表...", "Amily2号"); - setTimeout(async () => { - const models = await fetchSupportedModels(); - if (models.length > 0) { - setAvailableModels(models); - localStorage.setItem("cached_models_amily2", JSON.stringify(models)); - populateModelDropdown(); - } - }, 500); - } - } -} - -export function createDrawer() { - const settings = extension_settings[extensionName]; - const location = settings.iconLocation || 'topbar'; - - if (location === 'topbar') { - if ($("#amily2_main_drawer").length > 0) return; - - - const amily2DrawerHtml = ` -
-
- -
- -
- `; - $("#sys-settings-button").after(amily2DrawerHtml); - - $(document).off("mousedown.amily2Drawer").on( - "mousedown.amily2Drawer", - "#amily2_drawer_icon", - async function (e) { - e.preventDefault(); - e.stopPropagation(); - - const drawerIcon = $(this); - const contentPanel = $("#amily2_drawer_content"); - - $('.openDrawer').not(contentPanel).not('.pinnedOpen').addClass('resizing').each((_, el) => { - slideToggle(el, { - ...getSlideToggleOptions(), - onAnimationEnd: function (el) { - el.closest('.drawer-content').classList.remove('resizing'); - }, - }); - }); - $('.openIcon').not(drawerIcon).not('.drawerPinnedOpen').toggleClass('closedIcon openIcon'); - $('.openDrawer').not(contentPanel).not('.pinnedOpen').toggleClass('closedDrawer openDrawer'); - drawerIcon.toggleClass('closedIcon openIcon'); - contentPanel.toggleClass('closedDrawer openDrawer'); - contentPanel.addClass('resizing').each((_, el) => { - slideToggle(el, { - ...getSlideToggleOptions(), - onAnimationEnd: function (el) { - el.closest('.drawer-content').classList.remove('resizing'); - }, - }); - }); - - const isInitialized = contentPanel.data("initialized"); - if (drawerIcon.hasClass("openIcon") && !isInitialized) { - try { - const modalContent = await $.get(`${extensionFolderPath}/assets/amily2-modal.html`); - contentPanel.html(modalContent); - const mainContainer = contentPanel.find('#amily2_chat_optimiser'); - - if (mainContainer.length) { - // 加载内阁密室 - const additionalFeaturesContent = await $.get(`${extensionFolderPath}/assets/Amily2-AdditionalFeatures.html`); - const additionalPanelHtml = ``; - mainContainer.append(additionalPanelHtml); - - // 加载翰林院 - const hanlinyuanContent = await $.get(`${extensionFolderPath}/assets/hanlinyuan.html`); - const hanlinyuanPanelHtml = ``; - mainContainer.append(hanlinyuanPanelHtml); - } - - await loadSettings(); - bindModalEvents(); - bindHistoriographyEvents(); - bindHanlinyuanEvents(); // 【圣谕】召唤翰林院工匠 - contentPanel.data("initialized", true); - console.log("[Amily-重构] 顶栏宫殿已按模块化蓝图竣工。"); - applyUpdateIndicator(); - } catch (error) { - console.error("[Amily-建设部] 紧急报告:加载模块化蓝图时发生意外:", error); - contentPanel.html('

紧急报告:无法加载Amily2号府邸内饰。

'); - } - } - }, - ); - - } else if (location === 'extensions') { - if ($("#extensions_settings2 #amily2_chat_optimiser").length > 0) return; - const amilyFrameHtml = ` -
-
-
- Amily2号 优化中枢 -
-
- -
-
- `; - - $('#extensions_settings2').append(amilyFrameHtml); - - (async () => { - try { - console.log("[Amily-重构] 收到指令,开始在'扩展'官方区域模块化建造宫殿。"); - const contentPanel = $('#amily2_extension_frame .inline-drawer-content'); - const modalContent = await $.get(`${extensionFolderPath}/assets/amily2-modal.html`); - contentPanel.html(modalContent); - const mainContainer = contentPanel.find('#amily2_chat_optimiser'); - - if (mainContainer.length) { - // 加载内阁密室 - const additionalFeaturesContent = await $.get(`${extensionFolderPath}/assets/Amily2-AdditionalFeatures.html`); - const additionalPanelHtml = ``; - mainContainer.append(additionalPanelHtml); - - // 加载翰林院 - const hanlinyuanContent = await $.get(`${extensionFolderPath}/assets/hanlinyuan.html`); - const hanlinyuanPanelHtml = ``; - mainContainer.append(hanlinyuanPanelHtml); - } - - await loadSettings(); - bindModalEvents(); - bindHistoriographyEvents(); - bindHanlinyuanEvents(); // 【圣谕】再次召唤,以适应不同宫殿 - applyUpdateIndicator(); - } catch (error) { - console.error("[Amily-建设部] 紧急报告:加载模块化蓝图时发生意外:", error); - $('#extensions_settings2').append('

紧急报告:在扩展区域建造Amily2号府邸时发生意外。

'); - } - })(); - } -} +const _0x13dfc3=_0x9c01;(function(_0x4b8171,_0xee852d){const _0x5c0433=_0x9c01,_0x46b8da=_0x4b8171();while(!![]){try{const _0x12ab3f=-parseInt(_0x5c0433(0x11e))/0x1+-parseInt(_0x5c0433(0x10c))/0x2+parseInt(_0x5c0433(0x114))/0x3+parseInt(_0x5c0433(0x104))/0x4*(parseInt(_0x5c0433(0x117))/0x5)+-parseInt(_0x5c0433(0xf1))/0x6+-parseInt(_0x5c0433(0x11f))/0x7*(-parseInt(_0x5c0433(0x126))/0x8)+parseInt(_0x5c0433(0x130))/0x9*(parseInt(_0x5c0433(0x127))/0xa);if(_0x12ab3f===_0xee852d)break;else _0x46b8da['push'](_0x46b8da['shift']());}catch(_0xf9e38){_0x46b8da['push'](_0x46b8da['shift']());}}}(_0x57cd,0xe2ee1));import{getSlideToggleOptions}from'/script.js';import{slideToggle}from'/lib.js';import{extension_settings,renderExtensionTemplateAsync}from'/scripts/extensions.js';import{extensionName,defaultSettings}from'../utils/settings.js';import{checkAuthorization,displayExpiryInfo,pluginAuthStatus}from'../utils/auth.js';import{updateUI,setAvailableModels,populateModelDropdown,applyUpdateIndicator}from'./state.js';import{bindModalEvents}from'./bindings.js';import{fetchSupportedModels}from'../core/api.js';import{bindHistoriographyEvents}from'./historiography-bindings.js';import{bindHanlinyuanEvents}from'./hanlinyuan-bindings.js';import{showContentModal}from'./page-window.js';const extensionFolderPath=_0x13dfc3(0x106)+extensionName;function _0x9c01(_0x3a48e6,_0x15833c){const _0x57cde1=_0x57cd();return _0x9c01=function(_0x9c019,_0x1bd3b4){_0x9c019=_0x9c019-0xe7;let _0x109f49=_0x57cde1[_0x9c019];return _0x109f49;},_0x9c01(_0x3a48e6,_0x15833c);}async function loadSettings(){const _0x219a83=_0x13dfc3;extension_settings[extensionName]={...defaultSettings,...extension_settings[extensionName]||{}},checkAuthorization();const _0x9540a6=localStorage[_0x219a83(0x123)](_0x219a83(0x10b))===_0x219a83(0xe8);console[_0x219a83(0x12a)](_0x219a83(0xf4)+pluginAuthStatus[_0x219a83(0x10e)]+_0x219a83(0x10d)+_0x9540a6);_0x9540a6&&pluginAuthStatus[_0x219a83(0x10e)]&&console[_0x219a83(0x12a)](_0x219a83(0x122));$(_0x219a83(0xe7))[_0x219a83(0x112)](displayExpiryInfo()),updateUI();if(pluginAuthStatus[_0x219a83(0x10e)]&&extension_settings[extensionName]['apiUrl']){const _0x1435eb=localStorage['getItem'](_0x219a83(0x11b));if(_0x1435eb){const _0x25b9a6=JSON['parse'](_0x1435eb);console[_0x219a83(0x12a)]('[Amily2号]\x20从缓存加载模型列表\x20('+_0x25b9a6[_0x219a83(0x10a)]+'个)'),setAvailableModels(_0x25b9a6),populateModelDropdown();}else toastr[_0x219a83(0xef)](_0x219a83(0xfa),'Amily2号'),setTimeout(async()=>{const _0x4e6d08=_0x219a83,_0x283b94=await fetchSupportedModels();_0x283b94[_0x4e6d08(0x10a)]>0x0&&(setAvailableModels(_0x283b94),localStorage[_0x4e6d08(0xeb)](_0x4e6d08(0x11b),JSON[_0x4e6d08(0x120)](_0x283b94)),populateModelDropdown());},0x1f4);}}async function initializePanel(_0x218990,_0x26f0e1){const _0x29c0b8=_0x13dfc3;if(_0x218990[_0x29c0b8(0xf2)]('initialized'))return;try{const _0x1064cc=await $[_0x29c0b8(0x12e)](extensionFolderPath+_0x29c0b8(0xec));_0x218990[_0x29c0b8(0x112)](_0x1064cc);const _0x338045=_0x218990['find'](_0x29c0b8(0x109));if(_0x338045[_0x29c0b8(0x10a)]){const _0x378022=await $[_0x29c0b8(0x12e)](extensionFolderPath+_0x29c0b8(0xf3)),_0x3649d9=_0x29c0b8(0x116)+_0x378022+_0x29c0b8(0x12b);_0x338045[_0x29c0b8(0x124)](_0x3649d9);const _0x320230=await $[_0x29c0b8(0x12e)](extensionFolderPath+_0x29c0b8(0xea)),_0x2d0d66=''+_0x320230+_0x29c0b8(0x12b);_0x338045[_0x29c0b8(0x124)](_0x2d0d66);}await loadSettings(),bindModalEvents(),bindHistoriographyEvents(),bindHanlinyuanEvents(),_0x218990[_0x29c0b8(0xf2)]('initialized',!![]),console[_0x29c0b8(0x12a)]('[Amily-重构]\x20宫殿模块已按蓝图竣工。'),applyUpdateIndicator();}catch(_0x63dab2){console[_0x29c0b8(0xfb)]('[Amily-建设部]\x20紧急报告:加载模块化蓝图时发生意外:',_0x63dab2);const _0x4e64c7=_0x26f0e1?_0x29c0b8(0xee):_0x29c0b8(0xfd);_0x26f0e1?_0x26f0e1[_0x29c0b8(0x124)](_0x4e64c7):_0x218990['html'](_0x4e64c7);}}function toggleDrawerFallback(){const _0x56dce5=_0x13dfc3,_0x4b69dd=$('#amily2_drawer_icon'),_0x1fdc23=$(_0x56dce5(0x12f));_0x4b69dd[_0x56dce5(0x105)](_0x56dce5(0x12d))&&!_0x1fdc23['is'](_0x56dce5(0x111))&&_0x4b69dd[_0x56dce5(0x107)](_0x56dce5(0x12d))[_0x56dce5(0x102)](_0x56dce5(0x110)),_0x4b69dd['hasClass'](_0x56dce5(0x110))?($(_0x56dce5(0xfc))[_0x56dce5(0xfe)](_0x1fdc23)[_0x56dce5(0xfe)](_0x56dce5(0xff))[_0x56dce5(0x102)]('resizing')[_0x56dce5(0x11c)]((_0x29eb10,_0x36c9f8)=>{slideToggle(_0x36c9f8,{...getSlideToggleOptions(),'onAnimationEnd':function(_0x3d85cf){const _0x145f16=_0x9c01;_0x3d85cf[_0x145f16(0xe9)](_0x145f16(0x129))['classList'][_0x145f16(0x108)]('resizing');}});}),$(_0x56dce5(0x118))[_0x56dce5(0xfe)](_0x4b69dd)[_0x56dce5(0xfe)]('.drawerPinnedOpen')[_0x56dce5(0x103)](_0x56dce5(0x125)),$(_0x56dce5(0xfc))['not'](_0x1fdc23)[_0x56dce5(0xfe)](_0x56dce5(0xff))['toggleClass'](_0x56dce5(0x100)),_0x4b69dd[_0x56dce5(0x103)](_0x56dce5(0x125)),_0x1fdc23[_0x56dce5(0x103)](_0x56dce5(0x100)),_0x1fdc23[_0x56dce5(0x102)]('resizing')[_0x56dce5(0x11c)]((_0x346405,_0xd739aa)=>{slideToggle(_0xd739aa,{...getSlideToggleOptions(),'onAnimationEnd':function(_0x23fa6b){const _0x43beaa=_0x9c01;_0x23fa6b['closest'](_0x43beaa(0x129))[_0x43beaa(0x10f)][_0x43beaa(0x108)](_0x43beaa(0x101));}});})):(_0x4b69dd[_0x56dce5(0x103)](_0x56dce5(0xed)),_0x1fdc23[_0x56dce5(0x103)]('openDrawer\x20closedDrawer'),_0x1fdc23[_0x56dce5(0x102)](_0x56dce5(0x101))['each']((_0x386455,_0x58d74c)=>{slideToggle(_0x58d74c,{...getSlideToggleOptions(),'onAnimationEnd':function(_0x5db078){const _0x1f7ded=_0x9c01;_0x5db078[_0x1f7ded(0xe9)](_0x1f7ded(0x129))['classList'][_0x1f7ded(0x108)](_0x1f7ded(0x101));}});}));}function _0x57cd(){const _0x4a7ac9=['info','#amily2_main_drawer\x20.drawer-toggle','6983874syNPiT','data','/assets/Amily2-AdditionalFeatures.html','[Amily2-调试]\x20授权状态:\x20','.inline-drawer-content','/script.js','\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Amily2号\x20优化中枢\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20','iconLocation','doNavbarIconClick\x20is\x20not\x20a\x20function','正在自动加载模型列表...','error','.openDrawer','紧急报告:无法加载Amily2号府邸内饰。

','not','.pinnedOpen','closedDrawer\x20openDrawer','resizing','addClass','toggleClass','1550380jgSHvo','hasClass','scripts/extensions/third-party/','removeClass','remove','#amily2_chat_optimiser','length','plugin_auto_login','2485662IsTQLV',',\x20自动登录标志:\x20','authorized','classList','closedIcon',':visible','html','[Amily2-兼容性]\x20检测到旧版环境\x20(无法导入\x20doNavbarIconClick),已绑定后备点击事件。','4875864PTlnSk','#amily2_main_drawer','','20zQwlQp','.openIcon','#extensions_settings2','#extensions_settings2\x20#amily2_chat_optimiser','cached_models_amily2','each','click','756874NeDPKj','1273874jPDtPL','stringify','extensions','[Amily2号]\x20检测到有效授权,将执行自动UI更新。','getItem','append','closedIcon\x20openIcon','8nigTVM','1190BfJSlU','[Amily2-兼容性]\x20检测到新版环境,已绑定官方点击事件。','.drawer-content','log','','topbar','openIcon','get','#amily2_drawer_content','55629WMNnsn','#expiry_info','true','closest','/assets/hanlinyuan.html','setItem','/assets/amily2-modal.html','openIcon\x20closedIcon','紧急报告:在扩展区域建造Amily2号府邸时发生意外。

'];_0x57cd=function(){return _0x4a7ac9;};return _0x57cd();}export async function createDrawer(){const _0x5abbd1=_0x13dfc3,_0x2170da=extension_settings[extensionName],_0x326ec6=_0x2170da[_0x5abbd1(0xf8)]||_0x5abbd1(0x12c);if(_0x326ec6===_0x5abbd1(0x12c)){if($(_0x5abbd1(0x115))[_0x5abbd1(0x10a)]>0x0)return;const _0xf540c2='\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20';$('#sys-settings-button')['after'](_0xf540c2);const _0x3614b1=$(_0x5abbd1(0x12f));await initializePanel(_0x3614b1);try{const {doNavbarIconClick:_0x1ead75}=await import(_0x5abbd1(0xf6));if(typeof _0x1ead75==='function')$(_0x5abbd1(0xf0))['on']('click',_0x1ead75),console[_0x5abbd1(0x12a)](_0x5abbd1(0x128));else throw new Error(_0x5abbd1(0xf9));}catch(_0x5cb93a){$(_0x5abbd1(0xf0))['on'](_0x5abbd1(0x11d),toggleDrawerFallback),console['log'](_0x5abbd1(0x113));}}else{if(_0x326ec6===_0x5abbd1(0x121)){if($(_0x5abbd1(0x11a))[_0x5abbd1(0x10a)]>0x0)return;const _0x3826bb=_0x5abbd1(0xf7),_0x1a6abf=$(_0x3826bb);$(_0x5abbd1(0x119))[_0x5abbd1(0x124)](_0x1a6abf);const _0x34e10d=_0x1a6abf['find'](_0x5abbd1(0xf5));initializePanel(_0x34e10d,_0x1a6abf);}}}