验证码系统入口模块

全功能验证码处理系统入口点

此脚本不应直接安装,它是一个供其他脚本使用的外部库。如果您需要使用该库,请在脚本元属性加入:// @require https://update.gf.qytechs.cn/scripts/530645/1558607/%E9%AA%8C%E8%AF%81%E7%A0%81%E7%B3%BB%E7%BB%9F%E5%85%A5%E5%8F%A3%E6%A8%A1%E5%9D%97.js

// ==UserScript==
// @name         验证码系统入口模块
// @namespace    http://your-namespace.com
// @version      6.0
// @description  全功能验证码处理系统入口点
// @match        *://*/*
// @grant        GM_setValue
// @grant        GM_getValue
// @grant        GM_xmlhttpRequest
// @grant        GM_registerMenuCommand
// @require      https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.0/jquery.min.js
// @require      https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js
// ==/UserScript==

class SystemBootstrapper {
  constructor() {
    this.initStageLog = [];
    this.systemComponents = {};
  }

  // █████ 主初始化流程 █████
  async initialize() {
    try {
      await this.runInitSequence();
      this.registerDebugTools();
      this.logSystemStatus();
    } catch (error) {
      this.handleCriticalError(error);
    }
  }

  async runInitSequence() {
    // 阶段1:配置初始化
    await this.initConfiguration();
    
    // 阶段2:核心模块初始化
    await this.initCoreModules();
    
    // 阶段3:用户界面初始化
    await this.initUserInterface();
    
    // 阶段4:后台服务启动
    await this.startBackgroundServices();
  }

  // █████ 初始化阶段实现 █████
  async initConfiguration() {
    this.log('正在加载系统配置...');
    
    // 加载持久化配置
    this.systemComponents.config = {
      ...DefaultConfig,
      ...GM_getValue('system_config', {})
    };

    // 验证配置完整性
    ConfigValidator.validate(this.systemComponents.config);
    
    // 注入环境变量
    this.injectEnvironment();
    
    this.log('配置加载完成');
  }

  async initCoreModules() {
    this.log('正在初始化核心模块...');
    
    // 工具模块初始化
    this.systemComponents.utils = new CaptchaUtils();
    
    // API服务初始化
    this.systemComponents.api = new CaptchaAPI(
      this.systemComponents.config.API,
      this.systemComponents.utils.Security
    );
    
    // 核心服务初始化
    this.systemComponents.core = new CaptchaCore({
      config: this.systemComponents.config,
      api: this.systemComponents.api,
      utils: this.systemComponents.utils
    });
    
    this.log('核心模块就绪');
  }

  async initUserInterface() {
    this.log('正在初始化用户界面...');
    
    // UI服务初始化
    this.systemComponents.ui = new CaptchaUI({
      core: this.systemComponents.core,
      config: this.systemComponents.config.UI
    });
    
    // 注册(不可用)系统菜单
    this.registerSystemMenu();
    
    this.log('用户界面就绪');
  }

  async startBackgroundServices() {
    this.log('正在启动后台服务...');
    
    // 启动自动检测服务
    this.systemComponents.core.enableAutoDetection();
    
    // 启动心跳监测
    this.startHeartbeat();
    
    // 启动性能监控
    this.startPerformanceMonitor();
    
    this.log('后台服务运行中');
  }

  // █████ 辅助方法 █████
  injectEnvironment() {
    window._captchaSystem = {
      config: this.systemComponents.config,
      utils: this.systemComponents.utils,
      core: this.systemComponents.core,
      api: this.systemComponents.api,
      ui: this.systemComponents.ui
    };
  }

  registerSystemMenu() {
    GM_registerMenuCommand('🛠️ 系统仪表盘', () => 
      this.systemComponents.ui.showDashboard());
    
    GM_registerMenuCommand('📊 运行统计', () => 
      this.systemComponents.core.showStatistics());
    
    GM_registerMenuCommand('⚙️ 高级设置', () => 
      this.systemComponents.ui.openSettings());
  }

  registerDebugTools() {
    window.debugCaptchaSystem = {
      reload: () => this.softRestart(),
      getConfig: () => this.systemComponents.config,
      runDiagnostics: () => this.runDiagnostics(),
      overrideConfig: (newConfig) => 
        Object.assign(this.systemComponents.config, newConfig)
    };
  }

  // █████ 系统监控功能 █████
  startHeartbeat() {
    setInterval(() => {
      this.systemComponents.api.healthCheck()
        .then(status => this.handleHeartbeat(status))
        .catch(error => this.handleSystemError(error));
    }, 60000);
  }

  startPerformanceMonitor() {
    const monitor = new PerformanceMonitor({
      samplingInterval: 5000,
      metrics: ['cpu', 'memory', 'network']
    });
    
    monitor.on('threshold', data => 
      this.handlePerformanceAlert(data));
  }

  // █████ 错误处理系统 █████
  handleCriticalError(error) {
    const errorData = {
      message: error.message,
      stack: error.stack,
      systemState: this.getSystemState()
    };
    
    this.systemComponents.ui.showEmergencyDialog(errorData);
    GM_setValue('last_crash', errorData);
  }

  getSystemState() {
    return {
      config: this.systemComponents.config,
      coreStatus: this.systemComponents.core.getStatus(),
      uiStatus: this.systemComponents.ui.getStatus(),
      loadTime: performance.now()
    };
  }

  // █████ 工具方法 █████
  log(message) {
    const entry = `[${new Date().toISOString()}] ${message}`;
    this.initStageLog.push(entry);
    console.log(entry);
  }

  logSystemStatus() {
    console.table({
      '配置版本': this.systemComponents.config.version,
      '核心服务': this.systemComponents.core.status,
      'API端点': this.systemComponents.api.endpoint,
      'UI就绪': this.systemComponents.ui.isReady,
      '后台服务': this.systemComponents.backgroundServices.state
    });
  }
}

// █████ 系统启动流程 █████
(function() {
  'use strict';

  // 防止重复初始化
  if (window._captchaSystemBooted) return;
  window._captchaSystemBooted = true;

  // 启动系统
  const bootstrapper = new SystemBootstrapper();
  bootstrapper.initialize()
    .then(() => {
      console.log('验证码系统初始化完成');
      window.dispatchEvent(new Event('captchaSystemReady'));
    })
    .catch(error => {
      console.error('系统启动失败:', error);
      GM_setValue('boot_failure', error.stack);
    });

  // 兼容性处理
  if (window.top === window.self) {
    window.addEventListener('load', () => {
      bootstrapper.systemComponents.ui.injectLoader();
    });
  }
})();

/* 备用加载策略 */
if (document.readyState === 'loading') {
  document.addEventListener('DOMContentLoaded', () => {
    window._captchaSystem?.core?.enableAutoDetection();
  });
} else {
  window._captchaSystem?.core?.enableAutoDetection();
}

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址