#!/bin/bash

default_delay=3600
default_score=10

read -p "Enter delay (default: $default_delay, lower is better): " delay
read -p "Enter score (default: $default_score, lower is better): " score

delay=${delay:-$default_delay}
score=${score:-$default_score}

curl -s "https://archlinux.org/mirrors/status/json/" -o index.json

cat index.json | jq ".urls[] | select(.completion_pct == 1.0) | select(.delay < $delay) | select(.score < $score) | .url" | \
    sed 's/"//g' | \
    sed 's/^/Server = /g' | \
    sed 's/$/$repo\/os\/$arch/g' > m1_list

total_lines=$(wc -l < m1_list)
echo "Testing across $total_lines servers to find the 100 fastest mirrors."
percentage_interval=$((total_lines / 20))

awk -v interval="$percentage_interval" '
    BEGIN {percent = 5}
    NR % interval == 0 {print "# " percent "%"}
    {print}
    NR % interval == 0 {percent += 5}
' m1_list > mnt_list

rankmirrors -n 100 mnt_list | tee m2_list