#!/usr/bin/env bash
set -euo pipefail

if [ $# -lt 2 ]; then
    echo "用法: bash download.sh urls.txt 存放目录"
    exit 1
fi

URL_LIST="$1"
DEST_DIR="$2"
LOG_FILE="$(pwd)/aria2_$(date +%Y%m%d_%H%M%S).log"

mkdir -p "${DEST_DIR}"

run_and_notify() {
    aria2c \
      --input-file="${URL_LIST}" \
      --dir="${DEST_DIR}" \
      --max-connection-per-server=16 \
      --split=16 \
      --max-concurrent-downloads=4 \
      --continue=true \
      --log="${LOG_FILE}" \
      --log-level=info

    EXIT_CODE=$?
    if [ ${EXIT_CODE} -eq 0 ]; then
        python3 ~/complete.py "ORA Download Complete!!!!!!!!"
    else
        python3 ~/complete.py "ORA Download FAILED !!!!!!!!! exit_code:${EXIT_CODE}"
    fi
}
export -f run_and_notify
export URL_LIST DEST_DIR LOG_FILE

setsid bash -c run_and_notify > /dev/null 2>&1 &

echo "已在后台开始下载 (PID: $!)"
echo "日志: ${LOG_FILE}"
echo "看进度: tail -f ${LOG_FILE}"
