# nordvpn_connect
# ---------------
# Conecta a NordVPN. Acepta pais, ciudad o servidor especifico.
# Sin argumentos conecta al mejor servidor disponible.
# Imprime JSON con el resultado de la conexion.
#
# USO (sourced):
#   source nordvpn_connect.sh
#   nordvpn_connect                    # mejor servidor
#   nordvpn_connect Spain              # por pais
#   nordvpn_connect Spain Madrid       # por ciudad
#   nordvpn_connect Spain '#42'        # servidor especifico

nordvpn_connect() {
    local country="${1:-}"
    local city="${2:-}"

    if ! command -v nordvpn &>/dev/null; then
        echo '{"ok":false,"error":"nordvpn no instalado"}' >&2
        return 1
    fi

    local args=()
    [ -n "$country" ] && args+=("$country")
    [ -n "$city" ] && args+=("$city")

    local output
    output=$(nordvpn connect "${args[@]}" 2>&1)
    local rc=$?

    if [ $rc -eq 0 ] && echo "$output" | grep -qi "connected"; then
        local server
        server=$(echo "$output" | grep -oP '(?<=to )\S+' | head -1)
        echo "{\"ok\":true,\"server\":\"${server}\",\"country\":\"${country:-auto}\",\"city\":\"${city:-auto}\"}"
    else
        echo "{\"ok\":false,\"error\":$(echo "$output" | python3 -c 'import sys,json; print(json.dumps(sys.stdin.read().strip()))' 2>/dev/null || echo "\"$output\"")}"
        return 1
    fi
}
