#!/bin/bash

URL_FILE="1"

if [ ! -f "$URL_FILE" ]; then
    echo "Error: $URL_FILE not found!"
    exit 1
fi

while IFS= read -r url || [ -n "$url" ]; do
    [[ -z "$url" || "$url" =~ ^# ]] && continue

    echo "Processing URL: $url"

    # Fetch headers, handle carriage returns (\r), and isolate filename
    filename=$(curl -sI -L "$url" | grep -i 'content-disposition' | tr -d '\r' | sed -E 's/.*filename="([^"]+)".*/\1/')

    if [ -z "$filename" ]; then
        echo "Could not detect filename from server headers. Skipping..."
        continue
    fi

    echo "Saving as: $filename"
    
    # Download the file using curl
    curl -L "$url" -o "$filename"

    echo "Completed: $filename"
    echo "----------------------------------------"

done < "$URL_FILE"
