#!/bin/bash
# 增强版：为uploads文件夹下的每个一级目录生成.torrent种子文件

# 配置参数
TRACKERS=(
  "http://1337.abcvg.info:80/announce"
  "http://bt.okmp3.ru:2710/announce"
  "http://nyaa.tracker.wf:7777/announce"
  "http://t.nyaatracker.com:80/announce"
  "http://taciturn-shadow.spb.ru:6969/announce"
)
WEB_SEED="https://files.ed29.com/uploads/"
PIECE_LENGTH=23  # 2^20 = 1MB分块
THREADS=$(nproc) # 使用所有CPU核心

# 主函数
main() {
  echo "========================================"
  echo "古籍资源批量种子生成器（增强版）"
  echo "========================================"
  
  local total=0
  local success=0
  local failed=0
  
  # 遍历当前目录下的所有一级目录
  for dir in */; do
    total=$((total + 1))
    dir_name="${dir%/}"
    torrent_file="${dir_name}.torrent"
    
    echo -e "\n[$total] 处理: $dir_name → $torrent_file"
    
    # 检查是否已存在.torrent文件
    if [ -f "$torrent_file" ]; then
      echo "   ⏭️ 跳过: $torrent_file 已存在"
      continue
    fi
    
    # 检查目录是否为空
    if [ ! -d "$dir_name" ] || [ -z "$(ls -A "$dir_name" 2>/dev/null)" ]; then
      echo "   ⚠️ 目录为空或不存在"
      failed=$((failed + 1))
      continue
    fi
    
    # 显示目录大小
    local size=$(du -sh "$dir_name" | cut -f1)
    echo "   目录大小: $size"
    
    # 构建mktorrent命令
    local tracker_opts=""
    for tracker in "${TRACKERS[@]}"; do
      tracker_opts="$tracker_opts -a $tracker"
    done
    
    # 执行生成
    echo "   正在生成种子..."
    mktorrent $tracker_opts \
      -w "$WEB_SEED$dir_name/" \
      -c "数字古籍资源: $dir_name" \
      -l $PIECE_LENGTH \
      -t $THREADS \
      -v \
      -o "$torrent_file" \
      "$dir_name"
    
    if [ $? -eq 0 ]; then
      echo "   ✅ 成功生成: $torrent_file"
      success=$((success + 1))
    else
      echo "   ❌ 生成失败"
      failed=$((failed + 1))
    fi
  done
  
  # 统计报告
  echo "========================================"
  echo "生成完成！"
  echo "========================================"
  echo "总目录数: $total"
  echo "成功生成: $success"
  echo "失败: $failed"
  echo "========================================"
}

# 运行主函数
main "$@"
