Skip to main content

Async library for working with Discord webhooks

Project description

discord-webhook-async

discord-webhook-async — это асинхронная библиотека для работы с Discord Webhooks на Python. Библиотека использует aiohttp для выполнения асинхронных HTTP-запросов и предоставляет удобный API для отправки текстовых сообщений, embed-сообщений, файлов, редактирования сообщений и получения информации о webhook.

Особенности

  • Отправка текстовых сообщений: Отправка простых текстовых сообщений через Discord Webhook.
  • Отправка Embed-сообщений: Создание Рё отправка сообщений СЃ поддержкой форматирования РІ Discord (Embed).
  • Отправка файлов: Легкая отправка файлов через webhook СЃ возможностью прикреплять описание.
  • Редактирование сообщений: Возможность редактировать СѓР¶Рµ отправленные сообщения РїРѕ ID.
  • Удаление сообщений: Удаление сообщений РїРѕ ID.
  • Получение информации Рѕ webhook: Получение метаданных Рѕ webhook (например, РёРјСЏ, аватар).
  • Поддержка повторных попыток: Встроенная поддержка автоматических повторных попыток РІ случае ошибок СЃ экспоненциальной задержкой.
  • Гибкость Рё настройка: Возможность настроить параметры webhook Рё методы отправки.

Установка

Для установки библиотеки выполните следующую команду:

pip install discord-webhook-async

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

  1. Отправка текстового сообщения
import asyncio
from discord_webhook_async import DiscordWebhook

async def main():
    webhook = DiscordWebhook('https://discord.com/api/webhooks/your-webhook-url')

    # Отправляем текстовое сообщение
    response = await webhook.send_message(content="Hello, Discord!")
    print(response)

    await webhook.close()

asyncio.run(main())
  1. Отправка Embed-сообщения
import asyncio
from discord_webhook_async import DiscordWebhook

async def main():
    webhook = DiscordWebhook('https://discord.com/api/webhooks/your-webhook-url')

    # Создание и отправка Embed-сообщения
    embed_response = await webhook.send_embed(
        title="Embed Title", 
        description="This is an embed description", 
        color=0xFF5733, 
        footer="Footer Text",
        image_url="https://example.com/image.jpg",
        thumbnail_url="https://example.com/thumbnail.jpg"
    )
    print(embed_response)

    await webhook.close()

asyncio.run(main())
  1. Отправка файла
import asyncio
from discord_webhook_async import DiscordWebhook

async def main():
    webhook = DiscordWebhook('https://discord.com/api/webhooks/your-webhook-url')

    # Отправка файла
    file_response = await webhook.send_file('path/to/your/file.txt', content="Here is a file!")
    print(file_response)

    await webhook.close()

asyncio.run(main())
  1. Редактирование сообщения
import asyncio
from discord_webhook_async import DiscordWebhook

async def main():
    webhook = DiscordWebhook('https://discord.com/api/webhooks/your-webhook-url')

    # Редактирование сообщения по ID
    message_id = "your_message_id"
    edit_response = await webhook.edit_message(message_id, content="Updated content")
    print(edit_response)

    await webhook.close()

asyncio.run(main())
  1. Удаление сообщения
import asyncio
from discord_webhook_async import DiscordWebhook

async def main():
    webhook = DiscordWebhook('https://discord.com/api/webhooks/your-webhook-url')

    # Удаление сообщения по ID
    delete_response = await webhook.delete_message(message_id="your_message_id")
    print(delete_response)

    await webhook.close()

asyncio.run(main())
  1. Получение информации о webhook
import asyncio
from discord_webhook_async import DiscordWebhook

async def main():
    webhook = DiscordWebhook('https://discord.com/api/webhooks/your-webhook-url')

    # Получение информации о webhook
    info_response = await webhook.get_webhook_info()
    print(info_response)

    await webhook.close()

asyncio.run(main())

Настройки и параметры

  1. url: URL вебхука (обязательный параметр при инициализации).
  2. retries: Количество попыток повторных запросов в случае ошибок (по умолчанию 3).
  3. backoff_factor: Множитель для экспоненциального увеличения времени ожидания между повторными попытками (по умолчанию 1.0).
  4. session: Сессия aiohttp, создаваемая при первом запросе, или можно передать свою сессию для многократных запросов.

Логирование

Библиотека использует стандартный модуль Python logging для логирования ошибок и событий. Вы можете настроить уровень логирования, указав параметры конфигурации logging.

Пример настройки логирования:

import logging

logging.basicConfig(level=logging.DEBUG)  # Уровень логирования

Обработка ошибок и повторные попытки

В случае временных ошибок (например, сетевых проблем) библиотека будет автоматически повторять запросы. Количество попыток и время между ними можно настроить через параметры retries и backoff_factor.

Лицензия

Этот проект лицензирован под лицензией MIT.

Вклад в проект

Если вы хотите внести свой вклад, пожалуйста, создайте форк репозитория, внесите изменения и отправьте Pull Request.

Контакты

Если у вас есть вопросы или предложения, вы можете обратиться по адресу электронной почты: ap4k43@gmail.com.

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

discord_webhook_async-0.1.0.tar.gz (5.2 kB view details)

Uploaded Source

Built Distribution

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

discord_webhook_async-0.1.0-py3-none-any.whl (3.6 kB view details)

Uploaded Python 3

File details

Details for the file discord_webhook_async-0.1.0.tar.gz.

File metadata

  • Download URL: discord_webhook_async-0.1.0.tar.gz
  • Upload date:
  • Size: 5.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for discord_webhook_async-0.1.0.tar.gz
Algorithm Hash digest
SHA256 22882f66c28f541840b2018a3913e6b3bea3f9a3e6a1730945ad1d85962368c8
MD5 7a2baf7fa8ee5bd67fba127c3fc72df9
BLAKE2b-256 3266fd50641a11aa9f9e40d8955b75e91cb07dd3d8e76467e25fed4a8d2eadd3

See more details on using hashes here.

File details

Details for the file discord_webhook_async-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for discord_webhook_async-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a952e7b9a364f5cff87c837848dbc5a3363b3b5a230e303108260fe2c77018c0
MD5 5ccf194059cb751cc6424ff6646202a6
BLAKE2b-256 569217a085c40f4cacd222753fcfc154d89aa9577fbc2d0addcb681f10222868

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