#!/usr/bin/env node require('dotenv').config(); const SubscriptionManager = require('./src/core/subscriptionManager'); const logger = require('./src/utils/logger'); async function testSubscription() { console.log('🧪 ęµ‹čÆ•č®¢é˜…åŠŸčƒ½...\n'); try { const subscriptionManager = new SubscriptionManager(); console.log('šŸ“‹ č®¢é˜…é…ē½®äæ”ęÆ:'); console.log(` č®¢é˜…åœ°å€: ${subscriptionManager.subscriptionUrl}`); console.log(` ꛓꖰ闓隔: ${subscriptionManager.updateInterval / 1000}ē§’\n`); console.log('šŸ”„ å¼€å§‹čŽ·å–č®¢é˜…é…ē½®...'); const config = await subscriptionManager.fetchSubscription(); console.log('āœ… č®¢é˜…é…ē½®čŽ·å–ęˆåŠŸ!'); console.log(` čŠ‚ē‚¹ę•°é‡: ${config.proxies.length}`); console.log('\nšŸ“Š čŠ‚ē‚¹ē±»åž‹ē»Ÿč®”:'); const typeStats = {}; config.proxies.forEach(proxy => { typeStats[proxy.type] = (typeStats[proxy.type] || 0) + 1; }); Object.entries(typeStats).forEach(([type, count]) => { console.log(` ${type}: ${count}äøŖ`); }); console.log('\nšŸ” 前5äøŖčŠ‚ē‚¹äæ”ęÆ:'); config.proxies.slice(0, 5).forEach((proxy, index) => { console.log(` ${index + 1}. ${proxy.name} (${proxy.type}) - ${proxy.server}:${proxy.port}`); }); console.log('\nšŸ”„ å¼€å§‹ę›“ę–°čŠ‚ē‚¹åˆ—č”Ø...'); const result = await subscriptionManager.updateNodes(); console.log('āœ… čŠ‚ē‚¹åˆ—č”Øę›“ę–°å®Œęˆ!'); console.log(` ę€»čŠ‚ē‚¹ę•°: ${result.updated}`); console.log(` ę–°å¢žčŠ‚ē‚¹: ${result.added}`); console.log(` ę›“ę–°čŠ‚ē‚¹: ${result.updated - result.added}`); console.log(` ē§»é™¤čŠ‚ē‚¹: ${result.removed}`); console.log('\nšŸŽ‰ č®¢é˜…åŠŸčƒ½ęµ‹čÆ•å®Œęˆ!'); } catch (error) { console.error('āŒ č®¢é˜…ęµ‹čÆ•å¤±č“„:', error.message); console.error(' 详细错误:', error); process.exit(1); } } // å¦‚ęžœē›“ęŽ„čæč”Œę­¤ę–‡ä»¶ if (require.main === module) { testSubscription(); } module.exports = { testSubscription };