User: Вот ссылки 
впн
https://levpro.ru/uploads/vpn.json?v3
прокси
blob:https://gologin.com/aff19fc2-8919-4efc-9898-92ea45ea3b7a
Assistant: Отлично! Давайте обновим ваш Python-скрипт с использованием предоставленных вами ссылок для VPN и прокси. Однако важно отметить, что ссылка на прокси имеет схему `blob:`, что означает, что это URL-адрес blob-объекта, используемый внутри браузера и **недоступен** для прямого доступа через HTTP-запросы в Python. Для корректной работы скрипта необходимо, чтобы прокси были доступны по прямому URL (например, `https://example.com/proxies.json`).

### Действия для решения проблемы с прокси:

1. **Получите корректный URL для прокси:**
   - **Если вы используете сервис Gologin:** Проверьте документацию Gologin на предмет получения прямого URL для ваших прокси. Возможно, сервис предоставляет API или другой способ доступа к прокси списку.
   - **Или используйте локальный файл:** Если прямой URL недоступен, можно сохранить прокси данные локально в файле `proxies.json` и использовать его в скрипте.

2. **Временно используйте локальный файл для прокси:**
   - Скачайте или создайте файл `proxies.json` с вашими прокси данными.
   - Поместите его в ту же директорию, что и ваш скрипт `main.py`.

### Обновленный Скрипт `main.py`

Ниже приведён обновлённый скрипт, который использует предоставленную вами ссылку для VPN и предполагает, что прокси будут загружены из локального файла `proxies.json`.

```python
import requests
import json
import sys
from rich import print
from rich.console import Console
from rich.table import Table
from rich.prompt import Prompt, IntPrompt
from rich.panel import Panel

# Инициализация консоли Rich
console = Console()

# Ссылки на JSON файлы
VPN_URL = "https://levpro.ru/uploads/vpn.json?v3"  # Обновлённая ссылка на VPN
PROXY_URL = ""  # Оставляем пустым, так как blob URL недоступен

# Локальные файлы для хранения данных
VPN_FILE = "vpn.json"
PROXY_FILE = "proxies.json"

def fetch_data(url):
    try:
        response = requests.get(url)
        response.raise_for_status()
        return response.json()
    except requests.exceptions.RequestException as e:
        console.print(f"[red]Ошибка при загрузке данных с {url}: {e}[/red]")
        return None

def update_databases():
    console.print("[bold cyan]Обновление баз данных...[/bold cyan]")
    
    # Обновление VPN данных
    if VPN_URL:
        vpn_data = fetch_data(VPN_URL)
        if vpn_data:
            with open(VPN_FILE, "w", encoding='utf-8') as f:
                json.dump(vpn_data, f, ensure_ascii=False, indent=4)
            console.print("[green]База VPN успешно обновлена![/green]")
    else:
        console.print("[yellow]Ссылка на VPN не предоставлена.[/yellow]")

    # Обновление Прокси данных из локального файла
    console.print("[bold cyan]Обновление базы Прокси из локального файла...[/bold cyan]")
    proxy_data = load_local_proxies()
    if proxy_data:
        with open(PROXY_FILE, "w", encoding='utf-8') as f:
            json.dump(proxy_data, f, ensure_ascii=False, indent=4)
        console.print("[green]База Прокси успешно обновлена![/green]")

def load_vpn():
    try:
        with open(VPN_FILE, "r", encoding='utf-8') as f:
            return json.load(f)
    except FileNotFoundError:
        console.print(f"[red]Файл {VPN_FILE} не найден. Пожалуйста, обновите базы данных.[/red]")
        return None
    except json.JSONDecodeError:
        console.print(f"[red]Ошибка при чтении {VPN_FILE}. Файл повреждён.[/red]")
        return None

def load_proxies():
    try:
        with open(PROXY_FILE, "r", encoding='utf-8') as f:
            return json.load(f)
    except FileNotFoundError:
        console.print(f"[red]Файл {PROXY_FILE} не найден. Пожалуйста, обновите базы данных.[/red]")
        return None
    except json.JSONDecodeError:
        console.print(f"[red]Ошибка при чтении {PROXY_FILE}. Файл повреждён.[/red]")
        return None

def load_local_proxies():
    """
    Функция для загрузки прокси из локального файла proxies.json.
    Если файл отсутствует, предложит пользователю создать его вручную.
    """
    try:
        with open("proxies_source.json", "r", encoding='utf-8') as f:
            return json.load(f)
    except FileNotFoundError:
        console.print("[red]Локальный файл proxies_source.json не найден. Пожалуйста, создайте его с данными прокси.[/red]")
        return None
    except json.JSONDecodeError:
        console.print("[red]Ошибка при чтении proxies_source.json. Проверьте формат JSON.[/red]")
        return None

def display_vpn():
    vpn_list = load_vpn()
    if not vpn_list:
        return

    # Ограничиваем вывод до топ 10
    top_vpn = vpn_list[:10]

    table = Table(title="Топ 10 VPN", header_style="bold magenta")

    table.add_column("№", style="dim", width=4)
    table.add_column("Страна", style="cyan")
    table.add_column("Скорость ответа", style="green")
    table.add_column("Аптайм", style="blue")

    for idx, vpn in enumerate(top_vpn, start=1):
        table.add_row(
            str(idx),
            vpn.get("country", "—"),
            vpn.get("quality", "—"),
            vpn.get("uptime", "—")
        )
    
    console.print(table)

def display_proxies():
    proxy_list = load_proxies()
    if not proxy_list:
        return

    table = Table(title="Список Прокси", header_style="bold green")

    table.add_column("№", style="dim", width=4)
    table.add_column("Тип", style="cyan")
    table.add_column("IP", style="yellow")
    table.add_column("Порт", style="blue")
    table.add_column("Локация", style="green")
    table.add_column("Скорость", style="magenta")
    table.add_column("Анонимность", style="cyan")

    for idx, proxy in enumerate(proxy_list, start=1):
        table.add_row(
            str(idx),
            proxy.get("type", "—"),
            proxy.get("ip", "—"),
            proxy.get("port", "—"),
            proxy.get("loc", "—"),
            proxy.get("speed", "—"),
            proxy.get("anonymity", "—")
        )
    
    console.print(table)

def main_menu():
    while True:
        console.print(Panel.fit("[bold yellow]Главное Меню[/bold yellow]", border_style="blue"))
        table = Table(show_header=False, box=None)
        table.add_column()
        table.add_row("1) VPN")
        table.add_row("2) Прокси (HTTP, HTTPS, SOCKS5)")
        table.add_row("3) Обновить базы данных")
        table.add_row("4) Выход")
        console.print(table)

        try:
            choice = IntPrompt.ask("Выберите опцию", choices=["1", "2", "3", "4"])
        except KeyboardInterrupt:
            console.print("\n[red]Выход из программы.[/red]")
            sys.exit()

        if choice == 1:
            display_vpn()
        elif choice == 2:
            display_proxies()
        elif choice == 3:
            update_databases()
        elif choice == 4:
            console.print("[bold red]До свидания![/bold red]")
            sys.exit()
        
        console.print("\n")  # Пустая строка для разделения

if __name__ == "__main__":
    try:
        main_menu()
    except KeyboardInterrupt:
        console.print("\n[red]Программа прервана пользователем.[/red]")
        sys.exit()
```

### Пояснения и Шаги по Настройке

1. **Исправление PROXY_URL:**
   - Поскольку `blob:` URL недоступен для HTTP-запросов, мы оставляем `PROXY_URL` пустым и загружаем прокси данные из локального файла `proxies_source.json`.
   - Создайте файл `proxies_source.json` в той же директории, что и `main.py`, со структурой ваших прокси данных.

2. **Создание Файла `proxies_source.json`:**
   - Создайте файл `proxies_source.json` и добавьте в него ваши прокси в формате JSON. Пример:

     ```json
     [
         {
             "type": "http",
             "ip": "43.202.154.212",
             "port": "80",
             "loc": "Южная Корея",
             "speed": "350 мс",
             "anonymity": "Элита"
         },
         {
             "type": "socks5",
             "ip": "192.0.2.1",
             "port": "1080",
             "loc": "Германия",
             "speed": "200 мс",
             "anonymity": "Высокая"
         }
         // Добавьте дополнительные прокси по необходимости
     ]
     ```

3. **Обновление Баз Данных:**
   - После создания `proxies_source.json`, запустите скрипт и выберите опцию **3) Обновить базы данных**. Это создаст или обновит файл `proxies.json`, из которого будут загружаться данные прокси при выборе опции **2) Прокси**.

4. **Структура Проекта:**

   ```
   project/
   ├── main.py
   ├── vpn.json
   ├── proxies.json
   └── proxies_source.json
   ```

   - `main.py`: Основной скрипт.
   - `vpn.json`: Файл с данными VPN, загружаемый из `VPN_URL`.
   - `proxies.json`: Файл с данными прокси, создаваемый из `proxies_source.json`.
   - `proxies_source.json`: Локальный файл с исходными данными прокси.

5. **Установка Зависимостей:**
   - Убедитесь, что у вас установлены необходимые библиотеки:

     ```bash
     pip install rich requests
     ```

6. **Запуск Скрипта:**

   Перейдите в директорию с `main.py` и запустите скрипт:

   ```bash
   python main.py
   ```

7. **Использование Скрипта:**

   - **1) VPN:** Отобразит топ 10 VPN с полями **Страна**, **Скорость ответа** и **Аптайм**.
   - **2) Прокси:** Отобразит список прокси из `proxies.json`.
   - **3) Обновить базы данных:** Загрузит VPN данные из `VPN_URL` и обновит `proxies.json` из `proxies_source.json`.
   - **4) Выход:** Завершит работу программы.

### Дополнительные Рекомендации

1. **Размещение `proxies.json` на Доступном URL:**
   - Если вы всё же хотите загружать прокси через URL, попробуйте разместить `proxies.json` на сервисе, который предоставляет прямые ссылки для скачивания, например:
     - **GitHub Gist:** Создайте публичный Gist и используйте raw-URL.
     - **Dropbox:** Настройте прямую ссылку для скачивания.
     - **Google Drive:** Сгенерируйте прямую ссылку (может потребоваться дополнительная настройка).

   После этого обновите `PROXY_URL` в скрипте на полученную прямую ссылку.

2. **Сортировка и Фильтрация VPN:**
   - Если вы хотите отображать топ VPN по определённым критериям (например, по скорости или аптайму), вы можете добавить сортировку перед выборкой топ 10.

     ```python
     def display_vpn():
         vpn_list = load_vpn()
         if not vpn_list:
             return

         # Пример сортировки по скорости (больше скорость лучше)
         sorted_vpn = sorted(vpn_list, key=lambda x: float(x.get("quality", "0").split()[0]), reverse=True)
         top_vpn = sorted_vpn[:10]

         table = Table(title="Топ 10 VPN", header_style="bold magenta")

         table.add_column("№", style="dim", width=4)
         table.add_column("Страна", style="cyan")
         table.add_column("Скорость ответа", style="green")
         table.add_column("Аптайм", style="blue")

         for idx, vpn in enumerate(top_vpn, start=1):
             table.add_row(
                 str(idx),
                 vpn.get("country", "—"),
                 vpn.get("quality", "—"),
                 vpn.get("uptime", "—")
             )
         
         console.print(table)
     ```

3. **Обработка Разных Типов Прокси:**
   - Добавьте фильтрацию прокси по типу (HTTP, HTTPS, SOCKS5) для улучшения удобства использования.

4. **Визуальные Улучшения:**
   - Используйте дополнительные возможности библиотеки `rich` для улучшения интерфейса, такие как цветовые схемы, иконки и т.д.

### Заключение

В результате вы получите удобный терминальный интерфейс для управления VPN и прокси. Убедитесь, что файлы `vpn.json` и `proxies.json` корректно обновляются и содержат необходимые данные. Если у вас возникнут дополнительные вопросы или потребуется помощь с настройкой, пожалуйста, сообщите!
User: только поменяй прокси 
  {
    "country": "Ð¡Ð¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð½Ñ‹Ðµ Ð¨Ñ‚Ð°Ñ‚Ñ‹ ÐÐ¼ÐµÑ€Ð¸ÐºÐ¸",
    "ping": "111ms",
    "protocols": [
      "http"
    ],
    "anonymityLevel": "transparent",
    "address": "23.237.145.36:31288"
  },
Assistant: Понял! Давайте обновим ваш Python-скрипт, чтобы он корректно обрабатывал новый формат данных прокси. В приведённом вами примере прокси имеет следующую структуру:

```json
{
  "country": "Содержиненные станции Америки",
  "ping": "111ms",
  "protocols": [
    "http"
  ],
  "anonymityLevel": "transparent",
  "address": "23.237.145.36:31288"
},
```

### Основные Изменения

1. **Обновление Структуры Прокси**:
   - **country** → **Локация**
   - **ping** → **Пинг**
   - **protocols** → **Типы протоколов**
   - **anonymityLevel** → **Уровень анонимности**
   - **address** → **IP** и **Порт**

2. **Разделение Поля `address` на `IP` и `Порт`**:
   - Необходимо разделить строку `address`, содержащую IP и порт, на отдельные поля.

3. **Обработка Множественных Протоколов**:
   - Поле `protocols` — это список, поэтому нужно обработать возможность наличия нескольких протоколов.

4. **Исправление Кодировки**:
   - В предоставленном примере значение поля `country` отображается некорректно из-за проблем с кодировкой. Убедитесь, что JSON-файл сохранён в правильной кодировке (например, UTF-8).

### Обновлённый Скрипт `main.py`

Ниже приведён полный обновлённый скрипт с внесёнными изменениями для корректной обработки нового формата прокси:

```python
import requests
import json
import sys
from rich import print
from rich.console import Console
from rich.table import Table
from rich.prompt import IntPrompt
from rich.panel import Panel

# Инициализация консоли Rich
console = Console()

# Ссылки на JSON файлы
VPN_URL = "https://levpro.ru/uploads/vpn.json?v3"         # Обновлённая ссылка на VPN
PROXY_URL = ""  # Оставляем пустым, так как blob URL недоступен

# Локальные файлы для хранения данных
VPN_FILE = "vpn.json"
PROXY_FILE = "proxies.json"

def fetch_data(url):
    try:
        response = requests.get(url)
        response.raise_for_status()
        return response.json()
    except requests.exceptions.RequestException as e:
        console.print(f"[red]Ошибка при загрузке данных с {url}: {e}[/red]")
        return None

def update_databases():
    console.print("[bold cyan]Обновление баз данных...[/bold cyan]")
    
    # Обновление VPN данных
    if VPN_URL:
        vpn_data = fetch_data(VPN_URL)
        if vpn_data:
            with open(VPN_FILE, "w", encoding='utf-8') as f:
                json.dump(vpn_data, f, ensure_ascii=False, indent=4)
            console.print("[green]База VPN успешно обновлена![/green]")
    else:
        console.print("[yellow]Ссылка на VPN не предоставлена.[/yellow]")

    # Обновление Прокси данных из локального файла
    console.print("[bold cyan]Обновление базы Прокси из локального файла...[/bold cyan]")
    proxy_data = load_local_proxies()
    if proxy_data:
        with open(PROXY_FILE, "w", encoding='utf-8') as f:
            json.dump(proxy_data, f, ensure_ascii=False, indent=4)
        console.print("[green]База Прокси успешно обновлена![/green]")

def load_vpn():
    try:
        with open(VPN_FILE, "r", encoding='utf-8') as f:
            return json.load(f)
    except FileNotFoundError:
        console.print(f"[red]Файл {VPN_FILE} не найден. Пожалуйста, обновите базы данных.[/red]")
        return None
    except json.JSONDecodeError:
        console.print(f"[red]Ошибка при чтении {VPN_FILE}. Файл повреждён.[/red]")
        return None

def load_proxies():
    try:
        with open(PROXY_FILE, "r", encoding='utf-8') as f:
            return json.load(f)
    except FileNotFoundError:
        console.print(f"[red]Файл {PROXY_FILE} не найден. Пожалуйста, обновите базы данных.[/red]")
        return None
    except json.JSONDecodeError:
        console.print(f"[red]Ошибка при чтении {PROXY_FILE}. Файл повреждён.[/red]")
        return None

def load_local_proxies():
    """
    Функция для загрузки прокси из локального файла proxies_source.json.
    Если файл отсутствует, предложит пользователю создать его вручную.
    """
    try:
        with open("proxies_source.json", "r", encoding='utf-8') as f:
            return json.load(f)
    except FileNotFoundError:
        console.print("[red]Локальный файл proxies_source.json не найден. Пожалуйста, создайте его с данными прокси.[/red]")
        return None
    except json.JSONDecodeError:
        console.print("[red]Ошибка при чтении proxies_source.json. Проверьте формат JSON.[/red]")
        return None

def display_vpn():
    vpn_list = load_vpn()
    if not vpn_list:
        return

    # Ограничиваем вывод до топ 10
    top_vpn = vpn_list[:10]

    table = Table(title="Топ 10 VPN", header_style="bold magenta")

    table.add_column("№", style="dim", width=4)
    table.add_column("Страна", style="cyan")
    table.add_column("Скорость ответа", style="green")
    table.add_column("Аптайм", style="blue")

    for idx, vpn in enumerate(top_vpn, start=1):
        table.add_row(
            str(idx),
            vpn.get("country", "—"),
            vpn.get("quality", "—"),
            vpn.get("uptime", "—")
        )
    
    console.print(table)

def display_proxies():
    proxy_list = load_proxies()
    if not proxy_list:
        return

    table = Table(title="Список Прокси", header_style="bold green")

    table.add_column("№", style="dim", width=4)
    table.add_column("Страна", style="cyan")
    table.add_column("Пинг", style="green")
    table.add_column("Типы протоколов", style="magenta")
    table.add_column("Уровень анонимности", style="blue")
    table.add_column("IP", style="yellow")
    table.add_column("Порт", style="blue")

    for idx, proxy in enumerate(proxy_list, start=1):
        address = proxy.get("address", "")
        try:
            ip, port = address.split(":")
        except ValueError:
            ip = address
            port = "—"

        protocols = ", ".join(proxy.get("protocols", [])) if proxy.get("protocols") else "—"
        anonymity = proxy.get("anonymityLevel", "—").capitalize()
        country = proxy.get("country", "—")
        ping = proxy.get("ping", "—")

        table.add_row(
            str(idx),
            country,
            ping,
            protocols,
            anonymity,
            ip,
            port
        )
    
    console.print(table)

def main_menu():
    while True:
        console.print(Panel.fit("[bold yellow]Главное Меню[/bold yellow]", border_style="blue"))
        table = Table(show_header=False, box=None)
        table.add_column()
        table.add_row("1) VPN")
        table.add_row("2) Прокси (HTTP, HTTPS, SOCKS5)")
        table.add_row("3) Обновить базы данных")
        table.add_row("4) Выход")
        console.print(table)

        try:
            choice = IntPrompt.ask("Выберите опцию", choices=["1", "2", "3", "4"])
        except KeyboardInterrupt:
            console.print("\n[red]Выход из программы.[/red]")
            sys.exit()

        if choice == 1:
            display_vpn()
        elif choice == 2:
            display_proxies()
        elif choice == 3:
            update_databases()
        elif choice == 4:
            console.print("[bold red]До свидания![/bold red]")
            sys.exit()
        
        console.print("\n")  # Пустая строка для разделения

if __name__ == "__main__":
    try:
        main_menu()
    except KeyboardInterrupt:
        console.print("\n[red]Программа прервана пользователем.[/red]")
        sys.exit()
```

### Внесённые Изменения

1. **Обновление Функции `display_proxies()`**:
    - **Новые Колонки**:
        - **Страна** (`country`)
        - **Пинг** (`ping`)
        - **Типы протоколов** (`protocols`)
        - **Уровень анонимности** (`anonymityLevel`)
        - **IP** и **Порт** (разделены из `address`)
    - **Обработка Поля `address`**:
        - Разделение строки `address` на `IP` и `Порт`.
    - **Обработка Множественных Протоколов**:
        - Протоколы объединяются в строку через запятую.
    - **Обработка Отсутствующих Данных**:
        - Если какое-либо поле отсутствует, отображается "—" для лучшей читаемости.

    ```python
    def display_proxies():
        proxy_list = load_proxies()
        if not proxy_list:
            return

        table = Table(title="Список Прокси", header_style="bold green")

        table.add_column("№", style="dim", width=4)
        table.add_column("Страна", style="cyan")
        table.add_column("Пинг", style="green")
        table.add_column("Типы протоколов", style="magenta")
        table.add_column("Уровень анонимности", style="blue")
        table.add_column("IP", style="yellow")
        table.add_column("Порт", style="blue")

        for idx, proxy in enumerate(proxy_list, start=1):
            address = proxy.get("address", "")
            try:
                ip, port = address.split(":")
            except ValueError:
                ip = address
                port = "—"

            protocols = ", ".join(proxy.get("protocols", [])) if proxy.get("protocols") else "—"
            anonymity = proxy.get("anonymityLevel", "—").capitalize()
            country = proxy.get("country", "—")
            ping = proxy.get("ping", "—")

            table.add_row(
                str(idx),
                country,
                ping,
                protocols,
                anonymity,
                ip,
                port
            )
        
        console.print(table)
    ```

2. **Обновление Локального Файла Прокси (`proxies_source.json`)**:
    - Создайте или обновите файл `proxies_source.json` в той же директории, что и `main.py`, с прокси в новом формате. Пример содержимого файла:

    ```json
    [
        {
            "country": "Содержиненные станции Америки",
            "ping": "111ms",
            "protocols": [
                "http"
            ],
            "anonymityLevel": "transparent",
            "address": "23.237.145.36:31288"
        },
        {
            "country": "Германия",
            "ping": "85ms",
            "protocols": [
                "socks5"
            ],
            "anonymityLevel": "elite",
            "address": "192.0.2.1:1080"
        }
        // Добавьте дополнительные прокси по необходимости
    ]
    ```

    **Важно**: Убедитесь, что файл сохранён в кодировке UTF-8, чтобы избежать проблем с отображением текста.

3. **Обновление Функции `update_databases()`**:
    - Функция теперь загружает прокси из локального файла `proxies_source.json` и сохраняет их в `proxies.json`.

    ```python
    def update_databases():
        console.print("[bold cyan]Обновление баз данных...[/bold cyan]")
        
        # Обновление VPN данных
        if VPN_URL:
            vpn_data = fetch_data(VPN_URL)
            if vpn_data:
                with open(VPN_FILE, "w", encoding='utf-8') as f:
                    json.dump(vpn_data, f, ensure_ascii=False, indent=4)
                console.print("[green]База VPN успешно обновлена![/green]")
        else:
            console.print("[yellow]Ссылка на VPN не предоставлена.[/yellow]")

        # Обновление Прокси данных из локального файла
        console.print("[bold cyan]Обновление базы Прокси из локального файла...[/bold cyan]")
        proxy_data = load_local_proxies()
        if proxy_data:
            with open(PROXY_FILE, "w", encoding='utf-8') as f:
                json.dump(proxy_data, f, ensure_ascii=False, indent=4)
            console.print("[green]База Прокси успешно обновлена![/green]")
    ```

### Настройка Проекта

1. **Структура Проекта**:

    ```
    project/
    ├── main.py
    ├── vpn.json
    ├── proxies.json
    └── proxies_source.json
    ```

    - `main.py`: Основной скрипт.
    - `vpn.json`: Файл с данными VPN, загружаемый из `VPN_URL`.
    - `proxies.json`: Файл с данными прокси, создаваемый из `proxies_source.json`.
    - `proxies_source.json`: Локальный файл с исходными данными прокси.

2. **Создание Файла `proxies_source.json`**:
    - Создайте файл `proxies_source.json` в той же директории, что и `main.py`, и добавьте в него ваши прокси в указанном формате.

3. **Установка Зависимостей**:
    - Убедитесь, что у вас установлены необходимые библиотеки:

    ```bash
    pip install rich requests
    ```

4. **Запуск Скрипта**:
    - Перейдите в директорию с `main.py` и запустите скрипт:

    ```bash
    python main.py
    ```

5. **Обновление Баз Данных**:
    - В главном меню выберите опцию **3) Обновить базы данных**, чтобы загрузить VPN данные из `VPN_URL` и обновить прокси из `proxies_source.json`.

6. **Использование Скрипта**:
    - **1) VPN:** Отобразит топ 10 VPN с полями **Страна**, **Скорость ответа** и **Аптайм**.
    - **2) Прокси:** Отобразит список прокси с обновлёнными полями.
    - **3) Обновить базы данных:** Загрузит VPN данные и обновит прокси из локального файла.
    - **4) Выход:** Завершит работу программы.

### Дополнительные Рекомендации

1. **Проверка Формата JSON**:
    - Перед запуском убедитесь, что все JSON-файлы (`vpn.json`, `proxies_source.json`) имеют корректный формат. Можно использовать онлайн-сервисы или редакторы с поддержкой JSON для проверки.

2. **Автоматизация Обновления Прокси**:
    - Если ваш источник прокси доступен через API или другой способ автоматического получения данных, рассмотрите возможность интеграции этого процесса в функцию `update_databases()`.

3. **Обработка Ошибок**:
    - При необходимости, можно добавить более подробную обработку ошибок для различных сценариев, например, недоступность VPN-сервера или некорректные данные прокси.

4. **Улучшение Интерфейса**:
    - Используйте дополнительные возможности библиотеки `rich` для улучшения визуального представления, такие как цветовые схемы, иконки и т.д.

### Заключение

Теперь ваш скрипт способен корректно обрабатывать новый формат данных прокси, отображая необходимые поля в удобном виде. Если у вас возникнут дополнительные вопросы или потребуется дальнейшая помощь с настройкой, пожалуйста, дайте знать!
User: 1)с прокси сделай чтобы тоже было топ 10
2) не работает обновление
3)
Обновление баз данных...
Ошибка при загрузке данных с https://levpro.ru/uploads/vpn.json?v3: 403 Client Error: Forbidden for url:
https://levpro.ru/uploads/vpn.json?v3
Обновление базы Прокси из локального файла...
Локальный файл proxies_source.json не найден. Пожалуйста, создайте его с данными прокси.

4)сделай после отправки топ 10 чтобы пользователь выбрал из топ 10 и подключился