Skip to main content

Python SDK для Dev API и Bot API Hudle

Project description

hudle-sdk

Python SDK для Dev API и Bot API Hudle.

Установка

pip install hudle-sdk

Установка из локального исходника

pip install -e /path/to/lumina/hudle-sdk

Быстрый старт

from hudle_sdk import HudleSDK

sdk = HudleSDK(
    base_url="https://app.hudle.ru/api",
    dev_jwt="<dev-jwt>",
    bot_token="<bot-token>",
    timeout=20,
    max_retries=4,
    backoff_factor=0.35,
    pool_connections=20,
    pool_maxsize=100,
)

# Dev API
app = sdk.dev.create_app(name="CRM Уведомления", description="Интеграция с CRM")
bot = sdk.dev.create_bot(app_id=app["id"], name="Lumos Team Bot", username="lumos_team_bot")
sdk.dev.install_bot_to_server(server_id=12, bot_id=bot["bot"]["id"])

# Bot API
sdk.bot.send_message(chat_id="channel:503", text="привет от hudle-sdk")

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

SDK использует requests.Session с:

  • постоянными HTTP-соединениями (pooling)
  • автоматическими повторными попытками (429/5xx и сетевые ошибки)
  • настраиваемыми таймаутами, retry, backoff и размером пула

Режимы авторизации для Bot API

По умолчанию SDK вызывает:

  • POST /api/bot/<method> + Authorization: Bot <token>

Можно переключиться в режим токена в пути:

sdk = HudleSDK(
    base_url="https://app.hudle.ru/api",
    bot_token="<bot-token>",
    use_path_token_for_bot_api=True,
)

Тогда вызовы идут в:

  • POST /api/bot/<token>/<method>

Основные компоненты

  • HudleSDK: фасад с клиентами dev и bot.
  • HudleDevApi: обёртки для /api/dev/* и /api/servers/*/bots.
  • HudleBotApi: обёртки для /api/bot/*.
  • HttpTransport: общий HTTP-слой с парсингом JSON и обработкой ошибок.

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

SDK выбрасывает:

  • HudleSdkError (базовая)
  • HttpRequestError (сетевая/HTTP-ошибка)
  • DevApiError (логические ошибки Dev API)
  • BotApiError (ошибки Bot API с ok: false)

Поддерживаемые методы

Dev API

  • create_app / create_application
  • list_apps / list_applications
  • update_app / update_application
  • create_bot
  • get_bot
  • update_bot
  • rotate_bot_token
  • disable_bot
  • install_bot_to_server / install_bot
  • remove_bot_from_server / remove_bot
  • raw_request (низкоуровневый вызов)

Bot API

  • call (универсальный вызов метода)
  • get_me
  • log_out
  • close
  • get_updates
  • iter_updates
  • set_webhook
  • get_webhook_info
  • delete_webhook
  • set_my_commands
  • get_my_commands
  • delete_my_commands
  • set_event_subscriptions
  • get_event_subscriptions
  • delete_event_subscriptions
  • get_chat
  • get_chat_member
  • get_chat_administrators
  • get_chat_member_count
  • set_chat_title
  • set_chat_description
  • set_chat_photo
  • delete_chat_photo
  • leave_chat
  • export_chat_invite_link
  • create_chat_invite_link
  • edit_chat_invite_link
  • revoke_chat_invite_link
  • send_chat_action
  • send_message
  • forward_message
  • copy_message
  • send_photo
  • send_video
  • send_audio
  • send_document
  • send_voice
  • send_animation
  • send_video_note
  • send_media_group
  • send_location
  • edit_message_live_location
  • stop_message_live_location
  • send_venue
  • send_contact
  • edit_message_text
  • edit_message_caption
  • edit_message_media
  • edit_message_reply_markup
  • delete_message
  • get_user_profile_photos
  • get_file
  • ban_chat_member
  • unban_chat_member
  • restrict_chat_member
  • promote_chat_member
  • pin_chat_message
  • unpin_chat_message
  • unpin_all_chat_messages
  • set_message_reaction

Идемпотентность

send_message поддерживает идемпотентность:

sdk.bot.send_message(
    chat_id="channel:503",
    text="событие без дублей",
    idempotency_key="ticket:9d5c...:created",
)

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

hudle_sdk-0.1.1.tar.gz (11.6 kB view details)

Uploaded Source

Built Distribution

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

hudle_sdk-0.1.1-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

File details

Details for the file hudle_sdk-0.1.1.tar.gz.

File metadata

  • Download URL: hudle_sdk-0.1.1.tar.gz
  • Upload date:
  • Size: 11.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for hudle_sdk-0.1.1.tar.gz
Algorithm Hash digest
SHA256 69fd88aa67ad2e2159b5bdf8d80911c58e2cc0b625cb157ab9f49346cb2c0176
MD5 968f6113864da2a6c3835818570c6593
BLAKE2b-256 edf342fd8fd641c7cc73de7eea1582989d8113fbc8c7cbc91cfdddef01f384fa

See more details on using hashes here.

File details

Details for the file hudle_sdk-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: hudle_sdk-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 11.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for hudle_sdk-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b00b83694e31be7f934b3b379748e5b721564aed5249799df3bbe6ef1983f8d6
MD5 706c3108aaa3d17643c6f3b98681bbc8
BLAKE2b-256 356a1a4f574289e05ddf118dbe7cd5afe0a00ba7df664d9afe41ace63548b086

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