Spaces:
Running
Running
github-actions[bot]
Sync from GitHub Viciy2023/Qwen2API-A@ae093476e9bc5b0a599620b5925df3a20057038e
f120063 | /** | |
| * SSXMOD Cookie 管理器 | |
| * 负责生成和定时刷新 ssxmod_itna 和 ssxmod_itna2 Cookie | |
| */ | |
| const { generateCookies } = require('./cookie-generator'); | |
| const { logger } = require('./logger'); | |
| // 全局 Cookie 存储 | |
| let currentCookies = { | |
| ssxmod_itna: '', | |
| ssxmod_itna2: '', | |
| timestamp: 0 | |
| }; | |
| // 刷新间隔 (15分钟) | |
| const REFRESH_INTERVAL = 15 * 60 * 1000; | |
| // 定时器引用 | |
| let refreshTimer = null; | |
| /** | |
| * 刷新 SSXMOD Cookie | |
| */ | |
| function refreshCookies() { | |
| try { | |
| const result = generateCookies(); | |
| currentCookies = { | |
| ssxmod_itna: result.ssxmod_itna, | |
| ssxmod_itna2: result.ssxmod_itna2, | |
| timestamp: result.timestamp | |
| }; | |
| logger.info(`SSXMOD Cookie 已刷新`, 'SSXMOD'); | |
| } catch (error) { | |
| logger.error('SSXMOD Cookie 刷新失败', 'SSXMOD', '', error.message); | |
| } | |
| } | |
| /** | |
| * 初始化 SSXMOD 管理器 | |
| * 启动时生成一次 Cookie,并设置定时刷新 | |
| */ | |
| function initSsxmodManager() { | |
| // 立即生成一次 | |
| refreshCookies(); | |
| // 设置定时刷新 (每15分钟) | |
| if (refreshTimer) { | |
| clearInterval(refreshTimer); | |
| } | |
| refreshTimer = setInterval(refreshCookies, REFRESH_INTERVAL); | |
| logger.info(`SSXMOD 管理器已启动,刷新间隔: ${REFRESH_INTERVAL / 1000 / 60} 分钟`, 'SSXMOD'); | |
| } | |
| /** | |
| * 获取当前 ssxmod_itna | |
| * @returns {string} ssxmod_itna 值 | |
| */ | |
| function getSsxmodItna() { | |
| return currentCookies.ssxmod_itna; | |
| } | |
| /** | |
| * 获取当前 ssxmod_itna2 | |
| * @returns {string} ssxmod_itna2 值 | |
| */ | |
| function getSsxmodItna2() { | |
| return currentCookies.ssxmod_itna2; | |
| } | |
| /** | |
| * 获取完整的 Cookie 对象 | |
| * @returns {Object} 包含 ssxmod_itna 和 ssxmod_itna2 的对象 | |
| */ | |
| function getCookies() { | |
| return { ...currentCookies }; | |
| } | |
| /** | |
| * 停止定时刷新 | |
| */ | |
| function stopRefresh() { | |
| if (refreshTimer) { | |
| clearInterval(refreshTimer); | |
| refreshTimer = null; | |
| logger.info('SSXMOD 定时刷新已停止', 'SSXMOD'); | |
| } | |
| } | |
| module.exports = { | |
| initSsxmodManager, | |
| getSsxmodItna, | |
| getSsxmodItna2, | |
| getCookies, | |
| refreshCookies, | |
| stopRefresh | |
| }; | |