/**
 * M3U 文件解析器
 * 支持标准 IPTV M3U 格式
 */

export function parseM3U(content) {
  const lines = content.split('\n')
  const channels = []
  let currentChannel = null
  let id = 1

  for (const line of lines) {
    const trimmed = line.trim()
    
    // 跳过空行和注释行（除了 #EXTINF）
    if (!trimmed || (trimmed.startsWith('#') && !trimmed.startsWith('#EXTINF'))) {
      continue
    }

    // 解析频道信息行
    if (trimmed.startsWith('#EXTINF')) {
      currentChannel = parseExtInf(trimmed, id++)
    }
    // 解析 URL 行
    else if (currentChannel && trimmed.startsWith('http')) {
      currentChannel.url = trimmed
      channels.push(currentChannel)
      currentChannel = null
    }
  }

  return channels
}

function parseExtInf(line, id) {
  const channel = {
    id,
    name: '',
    group: '默认分组',
    logo: '',
    url: ''
  }

  // 提取 tvg-name
  const tvgNameMatch = line.match(/tvg-name="([^"]+)"/)
  if (tvgNameMatch) channel.name = tvgNameMatch[1]

  // 提取 tvg-logo
  const tvgLogoMatch = line.match(/tvg-logo="([^"]+)"/)
  if (tvgLogoMatch) channel.logo = tvgLogoMatch[1]

  // 提取 group-title
  const groupMatch = line.match(/group-title="([^"]+)"/)
  if (groupMatch) channel.group = groupMatch[1]

  // 提取频道名称（逗号后的内容）
  const nameMatch = line.match(/,([^,]+)$/)
  if (nameMatch) {
    // 如果 tvg-name 为空，使用逗号后的名称
    if (!channel.name) channel.name = nameMatch[1].trim()
  }

  return channel
}
