import https from 'https';
import http from 'http';

// 要测试的音频URL列表
const audioUrls = [
  {
    name: '歌曲3 - 曹操',
    url: 'https://www.soundhelix.com/examples/mp3/SoundHelix-Song-4.mp3'
  },
  {
    name: '歌曲4 - 她说',
    url: 'https://www.soundhelix.com/examples/mp3/SoundHelix-Song-3.mp3'
  },
  {
    name: '歌曲5 - 背对背拥抱',
    url: 'https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3'
  },
  {
    name: '歌曲6 - 一千年以后',
    url: 'https://www.soundhelix.com/examples/mp3/SoundHelix-Song-2.mp3'
  }
];

// 测试URL是否能正常访问
function testAudioUrl(url) {
  return new Promise((resolve, reject) => {
    const protocol = url.startsWith('https') ? https : http;
    
    protocol.get(url, (res) => {
      // 检查响应头中的Content-Type
      const contentType = res.headers['content-type'] || '';
      const contentLength = res.headers['content-length'] || 0;
      
      // 检查状态码和内容类型
      if (res.statusCode === 200 && contentType.includes('audio')) {
        resolve({
          success: true,
          message: `✓ ${url} 可以正常访问`,
          contentType: contentType,
          contentLength: `${(contentLength / 1024 / 1024).toFixed(2)} MB`
        });
      } else {
        resolve({
          success: false,
          message: `✗ ${url} 访问失败`,
          statusCode: res.statusCode,
          contentType: contentType
        });
      }
      
      // 关闭连接
      res.destroy();
    }).on('error', (err) => {
      reject({
        success: false,
        message: `✗ ${url} 发生错误: ${err.message}`
      });
    });
  });
}

// 运行所有测试
async function runTests() {
  console.log('开始测试音频URL...\n');
  
  for (const audio of audioUrls) {
    console.log(`测试 ${audio.name}:`);
    console.log(`URL: ${audio.url}`);
    
    try {
      const result = await testAudioUrl(audio.url);
      console.log(result.message);
      if (result.success) {
        console.log(`   内容类型: ${result.contentType}`);
        console.log(`   文件大小: ${result.contentLength}`);
      } else {
        if (result.statusCode) {
          console.log(`   状态码: ${result.statusCode}`);
        }
        if (result.contentType) {
          console.log(`   内容类型: ${result.contentType}`);
        }
      }
    } catch (error) {
      console.log(error.message);
    }
    
    console.log('');
  }
  
  console.log('测试完成！');
}

runTests();