#!/bin/bash

INPUT="$1"
OUTPUT="working_proxies.txt"
JOBS=100
TIMEOUT=8

if [ -z "$INPUT" ]; then
  echo "Usage: ./parallel-test.sh "
  exit 1
fi

# Check if local file exists (only if not URL)
if [[ ! "$INPUT" =~ ^http ]] && [ ! -f "$INPUT" ]; then
  echo "Error: File '$INPUT' not found."
  exit 1
fi

# Clear previous results
> "$OUTPUT"

echo "Starting parallel proxy test..."
echo "Input: $INPUT"
echo "Parallel jobs: $JOBS"
echo "----------------------------------"

# Stream source (URL or local file) into parallel
if [[ "$INPUT" =~ ^http ]]; then
  curl -Ls "$INPUT"
else
  cat "$INPUT"
fi | parallel -j "$JOBS" --timeout 15 '
  proxy={}
  if curl --socks5-hostname "$proxy" https://www.youtube.com \
      --max-time '"$TIMEOUT"' \
      --silent --output /dev/null; then
    echo "$proxy" >> '"$OUTPUT"'
    echo "✅ $proxy"
  fi
'

echo "----------------------------------"
echo "Done."
echo "Working proxies saved to $OUTPUT"