// ==UserScript==
// @name Aizex增强插件
// @namespace https://www.klaio.top/
// @version 1.0.2
// @description Aizex Booster 是一款专门为 Aizex 镜像站 开发的浏览器扩展插件。它提供了一系列实用的增强功能,包括实时积分显示、界面元素的显示与隐藏控制、整体界面布局优化及自定义头像等。这些功能能够有效提升用户的浏览体验,让界面使用更加流畅、高效且富有个性化特色。
// @author NianBroken
// @match *://*.mana-x.aizex.net/*
// @match *://*.arc-x.aizex.me/*
// @match *://*.leopard-x.memofun.net/*
// @grant GM_setValue
// @grant GM_getValue
// @grant GM_addStyle
// @grant GM_xmlhttpRequest
// @connect aizex.me
// @run-at document-start
// @icon https://aizex.me/favicon.ico
// @homepageURL https://github.com/NianBroken/Aizex-Booster
// @supportURL https://github.com/NianBroken/Aizex-Booster/issues
// @copyright Copyright © 2025 NianBroken. All rights reserved.
// @license Apache-2.0 license
// @downloadURL none
// ==/UserScript==
(function () {
'use strict';
// ===================================================================================
// === 全局配置 (CONSTANTS & CONFIGURATION) ===
// ===================================================================================
// 本区域集中了所有用户将来可能需要调整的参数。
// 修改前请务必理解各参数的含义及其对脚本功能的影响。
// ===================================================================================
const CONFIG = {
// --- 脚本基础信息 ---
SCRIPT_NAME: 'Aizex增强插件', // 脚本名称,用于日志输出等场合,方便识别。
SCRIPT_VERSION: '1.0.2', // 脚本版本号,用于日志输出和问题追踪。
// --- 目标元素选择器 (CSS Selectors) ---
// 这些选择器用于在目标网页上定位特定的HTML元素。
// !! 警告:如果目标网站的HTML结构发生变化,导致这些选择器失效,脚本的相应功能将无法正常工作。!!
// !! 在不完全理解其作用前,请勿随意修改这些路径,以免导致功能异常。!!
SELECTORS: {
// “高级设置”按钮将被注入到此选择器指向的容器的起始位置。
ADVANCED_SETTINGS_BUTTON_TARGET_CONTAINER: "#conversation-header-actions",
// “高级设置”按钮将尝试复制此选择器指向的按钮的样式。
ADVANCED_SETTINGS_BUTTON_STYLE_REFERENCE: "#conversation-header-actions .btn-secondary",
// “积分显示”面板将被注入到此选择器指向的容器的末尾。
POINTS_PANEL_TARGET_CONTAINER: "body > div.flex.h-full.w-full.flex-col > div > div.relative.flex.h-full.w-full.flex-row.overflow-hidden > div.bg-token-sidebar-surface-primary.z-21.shrink-0.overflow-x-hidden.\\[view-transition-name\\:var\\(--sidebar-slideover\\)\\].max-md\\:w-0\\! > div > div > div > nav",
// “隐藏侧边工具栏入口”功能将尝试移除此选择器指向的按钮。
SIDEBAR_TOGGLE_BUTTON: "#toggleButton",
// “隐藏侧边工具栏入口”功能还将尝试移除此选择器指向的状态侧边栏元素。
STATUS_SIDEBAR: "#StatusSidebar", // 新增:状态侧边栏的选择器
// “隐藏滚动至末尾按钮”功能将尝试移除此选择器指向的按钮。
SCROLL_TO_END_BUTTON: "#thread > div > div.flex.shrink.basis-auto.flex-col.overflow-hidden.-mb-\\(--composer-overlap-px\\).\\[--composer-overlap-px\\:24px\\].grow > div > div > div.\\@thread-xl\\/thread\\:pt-header-height.mt-1\\.5.flex.flex-col.text-sm.md\\:pb-9 > div:nth-child(5) > button",
// “优化界面”功能将尝试移除此选择器指向的元素,并用一个占位符替换。
OPTIMIZE_UI_TARGET_ELEMENT: "#thread-bottom-container > div.text-token-text-secondary.relative.mt-auto.flex.min-h-8.w-full.items-center.justify-center.p-2.text-center.text-xs.md\\:px-\\[60px\\]",
// “自定义头像”功能将修改此选择器指向的
元素的src属性。
// 使用 data-testid 和 alt 属性进行定位,期望能比动态ID更稳定。
CUSTOM_AVATAR_IMAGE: 'button[data-testid="profile-button"] img[alt="User"]',
},
// --- 脚本创建元素的ID ---
// 为脚本动态创建的DOM元素分配的ID,用于后续的查找、修改或移除操作。
// 保持这些ID的独特性,以避免与页面原有元素的ID冲突。
ELEMENT_IDS: {
ADVANCED_SETTINGS_BUTTON: 'aizex-enhancer-adv-settings-btn',
SETTINGS_PANEL: 'aizex-enhancer-settings-panel',
SCROLLABLE_CONTENT_AREA: 'aizex-enhancer-scrollable-content',
OVERLAY: 'aizex-enhancer-overlay',
QUOTA_PANEL_CONTAINER: 'aizex-enhancer-quota-panel',
OPTIMIZE_UI_PLACEHOLDER: 'aizex-enhancer-optimize-ui-placeholder',
HIDE_SIDEBAR_STYLE_TAG: 'aizex-enhancer-hide-sidebar-style', // 新增:用于隐藏侧边栏的