Skip to main content

Python client library for Veloce VPN Panel API

Project description

Veloce API - Python Клиент

PyPI version Python versions License

English | Русский

Официальная Python библиотека для работы с API панели управления Veloce VPN.

✨ Возможности

  • 🚀 Полное покрытие API - Все эндпоинты панели Veloce
  • 🔄 Async/Await - Полная асинхронная поддержка
  • 🛡️ Типобезопасность - Pydantic модели и type hints
  • 🔁 Автоповтор - Экспоненциальная задержка при ошибках
  • 🎯 Простота - Интуитивный API
  • 📦 Free & Paid тарифы - Автоматическое управление
  • 🔑 API ключи - Безопасная аутентификация
  • 📊 Всё включено - Пользователи, ноды, система, инбаунды

📦 Установка

pip install veloce-api

🚀 Быстрый Старт

from veloce import VeloceClient

# Инициализация клиента
client = VeloceClient(
    base_url="https://your-panel.com/api",
    api_key="your_api_key"
)

# Создать бесплатного пользователя
url = await client.users.create_free("username123")
print(f"Ссылка подписки: {url}")

# Продлить подписку
await client.users.extend_subscription("username123", days=30)

# Получить данные пользователя
user = await client.users.get("username123")
print(f"Статус: {user['status']}, Истекает: {user['expire']}")

📚 API Модули

Пользователи (client.users)

Полное управление пользователями с поддержкой free/paid тарифов:

# Создание пользователей
await client.users.create_free("user123")
await client.users.create_paid("user456", days=30)

# Управление подписками
await client.users.extend_subscription("user123", days=30)
await client.users.get_subscription_url("user123")

# Операции с пользователями
await client.users.list(offset=0, limit=10, status="active")
await client.users.ban("user123")
await client.users.reset_traffic("user123")

Система (client.system)

Системная статистика и операции:

# Получить статистику
stats = await client.system.get_stats()
print(f"Всего пользователей: {stats['total_user']}")
print(f"Активных: {stats['users_active']}")

# Управление ядром
await client.system.restart_core()
config = await client.system.get_core_config()

Ноды (client.nodes)

Управление нодами:

# Список нод
nodes = await client.nodes.list()

# Операции с нодами
await client.nodes.create(node_data)
await client.nodes.update(node_id, node_data)
await client.nodes.reconnect(node_id)

Админы (client.admin)

Операции администратора:

# Аутентификация
token = await client.admin.login("username", "password")

# Управление
await client.admin.create("newadmin", "password", is_sudo=True)  # Требует Sudo
await client.admin.delete("oldadmin")  # Требует Sudo

И Больше!

  • Инбаунды (client.inbounds) - Конфигурация инбаундов
  • Core (client.core) - Статистика и управление ядром
  • API Ключи (client.api_keys) - Управление API ключами

🔧 Продвинутое Использование

Обработка Ошибок

from veloce.exceptions import VeloceNotFoundError, VeloceAuthError

try:
    user = await client.users.get("несуществующий")
except VeloceNotFoundError:
    print("Пользователь не найден")
except VeloceAuthError:
    print("Неверный API ключ")

Типобезопасность с Pydantic

from veloce.models import UserResponse

user = await client.users.get("user123")
# user типизирован как Dict, или используй Pydantic модель:
user_model = UserResponse(**user)
print(user_model.username)

Настройка Повторов

from veloce.retry import retry_on_error

@retry_on_error(max_retries=5, base_delay=2.0)
async def надежная_операция():
    return await client.users.get("user123")

📖 Документация

💻 Разработка

# Клонировать репозиторий
git clone https://github.com/ASAPok/veloce-api.git
cd veloce-api

# Установить в режиме разработки
pip install -e ".[dev]"

# Запустить тесты
pytest

# Проверка типов
mypy veloce

# Форматирование кода
black veloce

🤝 Участие в Разработке

Мы приветствуем вклад в проект! Пожалуйста, не стесняйтесь отправлять Pull Request.

  1. Форкните репозиторий
  2. Создайте ветку для фичи (git checkout -b feature/amazing-feature)
  3. Закоммитьте изменения (git commit -m 'Добавить amazing-feature')
  4. Запушьте в ветку (git push origin feature/amazing-feature)
  5. Откройте Pull Request

📝 Лицензия

Проект распространяется под лицензией MIT - см. файл LICENSE.

🔗 Ссылки

🌟 Поддержка

Если проект вам полезен, поставьте ⭐️!

По вопросам и поддержке, пожалуйста, создайте issue.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

veloce_api-1.1.6.tar.gz (16.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

veloce_api-1.1.6-py3-none-any.whl (15.9 kB view details)

Uploaded Python 3

File details

Details for the file veloce_api-1.1.6.tar.gz.

File metadata

  • Download URL: veloce_api-1.1.6.tar.gz
  • Upload date:
  • Size: 16.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.2

File hashes

Hashes for veloce_api-1.1.6.tar.gz
Algorithm Hash digest
SHA256 49153485547bd614e1a4822a08a1aa8d6180535fcdfe1d8db53c9d6d0c1fe062
MD5 74da99e7a08855399016a4ab54d47cb1
BLAKE2b-256 e211dc7c44bb3dd16a0a362e3e36c8815b9d46b8ef9fa9cc8f04bc471bb1b7fd

See more details on using hashes here.

File details

Details for the file veloce_api-1.1.6-py3-none-any.whl.

File metadata

  • Download URL: veloce_api-1.1.6-py3-none-any.whl
  • Upload date:
  • Size: 15.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.2

File hashes

Hashes for veloce_api-1.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 2d72c62ce6ec03faf0457816dec401aa899d98daeda637c843a6008582c5b05f
MD5 4977f1d4deebd04c98d2f015d8efd7f9
BLAKE2b-256 d0a66e64262f6c42d3c26e30c4017e28a9ba6c4a62d4ebc82f1daa5d11933473

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page