Skip to main content

API Remnawave for Python

Project description

# RemnAPI

**RemnAPI** — это клиент для работы с API пользователей и узлов в панели RemnaWave.

## Установка

Для установки библиотеки используйте pip:

```bash
pip install remnapi
.env

PANEL_URL = "https://panel.example.com/api" 
API_TOKEN = "yourAPItoken"

Использование

UserManager

Класс для управления пользователями через API.

Основные методы:

  • **add_user(username, days, kwargs):
    Создает нового пользователя с указанным именем и параметрами.

    Параметры:

    • username (str): Имя пользователя для создания.
    • days (int): Срок подписки.

    Дополнительные параметры (kwargs):

    • subscriptionUuid (str): UUID подписки. По умолчанию генерируется автоматически.
    • shortUuid (str): Короткий UUID. По умолчанию генерируется автоматически.
    • trojanPassword (str): Пароль для Trojan. По умолчанию равен shortUuid.
    • vlessUuid (str): UUID для VLESS. По умолчанию равен subscriptionUuid.
    • ssPassword (str): Пароль для Shadowsocks. По умолчанию равен shortUuid.
    • trafficLimitBytes (int): Лимит трафика в байтах. По умолчанию 0 (без лимита).
    • trafficLimitStrategy (str): Стратегия лимита трафика. По умолчанию "NO_RESET".
    • expireAt (str): Дата истечения срока действия в формате ISO 8601. По умолчанию +60 дней от текущей даты.
    • createdAt (str): Дата создания в формате ISO 8601. По умолчанию текущая дата и время.
    • lastTrafficResetAt (str): Дата последнего сброса трафика. По умолчанию None.
    • description (str): Описание пользователя. По умолчанию пустая строка.
    • activateAllInbounds (bool): Активировать все inbound подключения. По умолчанию True.
  • get_users():
    Возвращает список всех пользователей.

  • **get_user(username, kwargs):
    Получает информацию о пользователе по имени и фильтрует данные.

    Параметры:

    • username (str): Имя пользователя для получения информации.
    • all (bool, необязательно): Если True, возвращает полный ответ от сервера.

    Дополнительные фильтры (kwargs):

    • username_filter, status_filter, expireAt_filter, createdAt_filter, updatedAt_filter и другие — фильтруют данные по соответствующим полям.
  • remove_user(username):
    Удаляет пользователя по имени.

Пример использования:

from remnapi import UserManager
import asyncio

async def main():
    user_manager = UserManager()
    
    # Создание пользователя
    new_user = await user_manager.add_user("testuser", days=30)  # Возвращает JSON

    # Создание пользователя с дополнительными параметрами
    one_gb = 1073741824  # Переводим байты в ГБ
    new_user2 = await user_manager.add_user('example', days=30, description='example', trafficLimitBytes=one_gb*20)

    # Получение информации
    username_info = await user_manager.get_user("testuser")  # Возвращает JSON
    username_filter = await user_manager.get_user("testuser", username_filter=True, shortUuid_filter=True, status_filter=True)  # Возвращает отфильтрованный JSON

    # Получение списка всех пользователей
    users = await user_manager.get_users()  # Возвращает JSON

    # Удаление пользователя
    delete_response = await user_manager.remove_user("testuser")  # Возвращает JSON

asyncio.run(main())

NodesManager

Класс для управления узлами через API.

Основные методы:

  • **get_all_nodes(kwargs):
    Получает список всех узлов с возможностью фильтрации.

    Параметры:

    • all (bool, необязательно): Если True, возвращает полный ответ от сервера.
    • kwargs: Фильтры для извлечения определённых данных.
      • uuid_filter (bool): Возвращает UUID узла.
      • name_filter (bool): Возвращает имя узла.
      • address_filter (bool): Возвращает адрес узла.
      • usersOnline_filter (bool): Возвращает количество пользователей онлайн.
      • cpuModel_filter (bool): Возвращает модель процессора.
      • trafficUsedBytes_filter (bool): Возвращает использованный трафик.
  • **get_one_node(node_uuid, kwargs):
    Получает информацию об одном узле по UUID с возможностью фильтрации.

    Параметры:

    • node_uuid (str): UUID узла для получения информации.
    • all (bool, необязательно): Если True, возвращает полный ответ от сервера.
    • kwargs: Фильтры для извлечения определённых данных.
  • enable_node(node_uuid):
    Включает узел.

  • disable_node(node_uuid):
    Отключает узел.

  • delete_node(node_uuid):
    Удаляет узел.

  • restart_node(node_uuid):
    Перезапускает узел.

  • restart_all_nodes():
    Перезапускает все узлы.

Пример использования:

from remnapi import NodesManager
import asyncio

async def main():
    node_manager = NodesManager()
    
    # Получаем список всех узлов
    nodes = await node_manager.get_all_nodes()  # Вернёт весь ответ
    nodes_all = await node_manager.get_all_nodes(all=True)  # Вернёт весь ответ с деталями
    nodes_filter = await node_manager.get_all_nodes(uuid_filter=True, name_filter=True)  # Вернёт только UUID и имя узла.

    # Получаем информацию об одном узле
    node_uuid = nodes['response'][0]['uuid']  # Получаем UUID первого узла
    node_details = await node_manager.get_one_node(node_uuid)  # Вернёт весь ответ.
    node_filtered = await node_manager.get_one_node(node_uuid, name_filter=True, address_filter=True)  # Вернёт только имя и адрес узла.

asyncio.run(main())

Лицензия

MIT License. См. LICENSE для подробной информации.

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

remnapi-0.1.8.tar.gz (10.0 kB view details)

Uploaded Source

Built Distribution

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

remnapi-0.1.8-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

Details for the file remnapi-0.1.8.tar.gz.

File metadata

  • Download URL: remnapi-0.1.8.tar.gz
  • Upload date:
  • Size: 10.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for remnapi-0.1.8.tar.gz
Algorithm Hash digest
SHA256 307fdcdcbc15198385cd2fa12db694a9c6414ab118b6936119142c88ba39f24d
MD5 2e4d5cdf5c93046f4306b8819571132d
BLAKE2b-256 fb7e8cdc473eda1d19dad49a7a634a149dddad4ddce76cd1abbb691c9c08f923

See more details on using hashes here.

File details

Details for the file remnapi-0.1.8-py3-none-any.whl.

File metadata

  • Download URL: remnapi-0.1.8-py3-none-any.whl
  • Upload date:
  • Size: 11.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for remnapi-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 dad223401d8b304d044d0a0e419db6c3586ac86b4479bdbdf2758ab8ef87f64c
MD5 fbe65ac3efc488822a459b2c74934777
BLAKE2b-256 27cade2ea232e584017e5ab4fc120e57171c2c4f3f1230251393c5edafb9f7a5

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