Skip to main content

Python wrapper package for easy integration with the Digiseller API

Project description

Digiseller API Python

PyPI version PyPI Package Monthly Download License Test Status

English documentation available here.

Digiseller API Python — это неофициальная Python-библиотека для взаимодействия с API Digiseller.

Важное примечание: Данный проект не связан с официальной командой разработчиков Digiseller и не является официальной библиотекой.
Возможны неточности в некоторых запросах, поскольку комплексное тестирование не проводилось, так как некоторые методы API, описанные в документации Digiseller, могут не соответствовать своему описанию.

Полную документацию API можно найти на сайте Digiseller.
Список методов библиотеки и их соответствие официальному API можно найти в MAPPING.md.
Методы API для покупателей из блока 'Оплата' недоступны в библиотеке.


Установка

С использованием PyPI:

pip install digiseller-api-python

Установка из репозитория GitHub:

pip3 install git+https://github.com/Ernieleo/digiseller-api-python.git

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

Чтобы использовать Digiseller API, вам понадобятся API ключ и ID продавца:

Не забывайте - ваш API ключ должен оставаться в безопасности, не публикуйте его в интернете.

Пример кода

from digiseller_api_python import DigisellerApi

# Создание экземпляра API-клиента
# Вы можете указать timeout (по умолчанию 60) и proxy (по умолчанию None)
digiseller_api = DigisellerApi(
    seller_id="11155533", 
    api_key="ZA1SG0YDA46DV0Z39F01Z11017V39",
    timeout=120,
    proxy="http://user:pass@127.0.0.1:8080" 
)


# Пример функции для получения данных, указанных пользователем при заказе, по уникальному коду
def get_account_info_from_digiseller(unique_code):
    email, password = None, None
    try:
        # Выполняем запрос
        data = digiseller_api.unique_code(unique_code)

        # Извлекаем необходимые данные
        for option in data.get("options", []):
            if option["name"] in ["Почта аккаунта ChatGPT", "ChatGPT account email"]:
                email = option["value"]
            elif option["name"] in ["Пароль аккаунта ChatGPT", "ChatGPT account password"]:
                password = option["value"]

        return email, password
    except Exception as e:
        # Обработка исключений
        print(f"Ошибка: {e}")
        return None, None


# Использование функции для получения информации
unique_code = "ВАШ_УНИКАЛЬНЫЙ_КОД"
email, password = get_account_info_from_digiseller(unique_code)
print("Email:", email)
print("Password:", password)

Этот пример показывает, как использовать DigisellerApi для получения данных, введенных покупателем при оформлении заказа.
Функция get_account_info_from_digiseller выполняет запрос по уникальному коду и ищет данные по заданным названиям полей. Названия полей учитывают возможность различий в языке зависимых от выбранного пользователем на сайте.

Дополнительный пример

Для работы этого примера требуется установить библиотеку Pillow (pip install Pillow).

from digiseller_api_python import DigisellerApi

from PIL import Image
from io import BytesIO

# Инициализируем клиент (даже если метод не требует авторизации, архитектура библиотеки требует экземпляр)
# Для публичных методов можно передать любые или пустые seller_id/api_key, 
# но лучше использовать реальные, чтобы избежать путаницы.
digiseller_api = DigisellerApi(seller_id="YOUR_SELLER_ID", api_key="YOUR_API_KEY")


image = digiseller_api.get_main_img(id_d=4470041, maxlength=400, w=200, h=150, crop=False)

# Открываем изображение из байтов напрямую
image_bytes = image.encode() if isinstance(image, str) else image
image = Image.open(BytesIO(image_bytes))
image.show()

В данном примере представлено взаимодействие с функцией получения основного изображения товара.

Возвращаемые данные

  • JSON (application/json): Возвращается как словарь Python.
  • XML (application/xml или text/xml): Возвращается как строка XML.
  • Изображение (image/*): Возвращается как байтовый объект.
  • Текст (text/plain и другие текстовые форматы): Возвращается как строка.
  • StatusCode: 204 (NoContent) → {"success": True}

Обработка исключений

Библиотека предоставляет собственные классы исключений, позволяющие точно обрабатывать ошибки при работе.

Базовое исключение

from digiseller_api_python import DigisellerError

Все исключения библиотеки наследуются от DigisellerError, поэтому можно перехватывать как конкретные, так и общие ошибки:

try:
    digiseller_api.get_token()
except DigisellerError as e:
    print(f"Ошибка Digiseller API: {e}")

Доступные исключения

Исключение Описание
DigisellerError Базовое исключение
DigisellerTimeoutError Тайм-аут при запросе к API
DigisellerInvalidResponseError Ответ от API не соответствует ожиданиям (по документации)
DigisellerHTTPError Ошибка HTTP (например, 400, 500 и т.д.)
DigisellerUnavailableError Digiseller загружается, но не работает или обновляется
DigisellerAPIAuthError Недостаточно прав. Проверьте права доступа с ключом API
DigisellerProxyError Ошибка при подключении через прокси

Вы можете использовать исключения для логирования, отладки

Разработка

Приветствуется вклад в развитие проекта!
Если вы хотите помочь с поддержанием актуальности и дальнейшей разработкой, пожалуйста, следуйте официальным правилам API сервиса Digiseller и придерживайтесь общего стиля кода проекта.

Для внесения изменений создайте форк и последующий pull-реквест, и он будет рассмотрен.

Если обнаружите ошибку, связанную с работой кода, пожалуйста, создайте Issue в репозитории — это поможет оперативно её исправить.


Обращение к разработчикам Digiseller.

Сервис представляет собой сложную и запутанную структуру взаимосвязанных компаний, при этом технические изменения нередко вносятся мгновенно после обращения в чат администрации. Это создаёт впечатление, что именно администрация фактически выполняет функции разработчиков, хотя формально компания-владелец и компания-разработчик указаны разными.

Главная просьба — навести порядок в документации. В текущем виде она содержит множество несоответствий фактической работе API: ошибки в описании параметров, различающееся написание одних и тех же полей в рамках одного метода, неполные пояснения и явные следы ручного оформления каждой страницы.

Пора переходить на современные стандарты: OpenAPI, корректно описанные схемы и удобный Swagger-интерфейс. Это значительно упростит взаимодействие с API и снизит количество ошибок у интеграторов.

Запланировано

В будущих планах создание документации для удобного и корректного использования.

  • Добавить все функции API
  • Дополнительный пример использования в Python
  • Добавить дополнительные отсутствующие функции
  • Полная документация методов (см. MAPPING.md)
  • Добавить оставшиеся функции (за исключением)
  • Добавить возможность использования Proxy

Полезные ссылки

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

digiseller_api_python-3.1.2.tar.gz (20.9 kB view details)

Uploaded Source

Built Distribution

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

digiseller_api_python-3.1.2-py3-none-any.whl (18.0 kB view details)

Uploaded Python 3

File details

Details for the file digiseller_api_python-3.1.2.tar.gz.

File metadata

  • Download URL: digiseller_api_python-3.1.2.tar.gz
  • Upload date:
  • Size: 20.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for digiseller_api_python-3.1.2.tar.gz
Algorithm Hash digest
SHA256 de869765f711b8e02313d55be7a4e7baa958f87ae49488f644ed2bf84adc2c25
MD5 6fb6b9e076035edf30cabc240cb85678
BLAKE2b-256 1199e9f565ed41eb4bc5960a34accd3f1e25a301e18f7bfe58006ab6f1c4d53d

See more details on using hashes here.

Provenance

The following attestation bundles were made for digiseller_api_python-3.1.2.tar.gz:

Publisher: release_pypi.yml on Ernieleo/digiseller-api-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file digiseller_api_python-3.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for digiseller_api_python-3.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1a6c658314f8b17656dce9a4492c193478b0c26345acd71ec75163d5a8b81714
MD5 cc9e513c07adfea750cb863f6a086e5a
BLAKE2b-256 627a734c8b1812dc94ec66dfdd721ab255d1ba98b07378f94faa68ff09c09397

See more details on using hashes here.

Provenance

The following attestation bundles were made for digiseller_api_python-3.1.2-py3-none-any.whl:

Publisher: release_pypi.yml on Ernieleo/digiseller-api-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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