#!/bin/bash
 URL="https://progs.sidy.ru/temp/Hustle/Хастл/"
  # URL="http://usa.omsk.vip:8084/temp/Hustle/Хастл/"                                                                     
  OUTPUT_DIR="./Хастл"

  mkdir -p "$OUTPUT_DIR"

  echo "Fetching file list..."

  curl -s --insecure "$URL" | \
  grep -oP '<a href="\K[^"]+(?=")' | \
  while IFS= read -r item; do
      [[ "$item" =~ ^(\.\.|/|\?C=) ]] && continue
      [[ "$item" =~ /$ ]] && continue

      # Декодируем HTML entities СНАЧАЛА
      decoded_item="${item//&amp;/&}"
      decoded_item="${decoded_item//&lt;/<}"
      decoded_item="${decoded_item//&gt;/>}"
      decoded_item="${decoded_item//&quot;/\"}"

      # Потом декодируем URL-encoding для имени файла
      decoded_name=$(printf '%b' "${decoded_item//%/\\x}")

      if [ -f "$OUTPUT_DIR/$decoded_name" ]; then
          echo "Resuming/Checking: $decoded_name"
          # -C - автоматически продолжает докачку с места обрыва
          curl -f --insecure -C - -o "$OUTPUT_DIR/$decoded_name" "${URL}${decoded_item}" || echo "Failed: $decoded_name"
      else
          echo "Downloading: $decoded_name"
          curl -f --insecure -C - -o "$OUTPUT_DIR/$decoded_name" "${URL}${decoded_item}" || echo "Failed: $decoded_name"
      fi
  done

  echo "Done! Files saved to $OUTPUT_DIR"
  