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
Пример использования
- Отправка текстового сообщения
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())
- Отправка 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())
- Отправка файла
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())
- Редактирование сообщения
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())
- Удаление сообщения
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())
- Получение информации о 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())
Настройки и параметры
- url: URL вебхука (обязательный параметр при инициализации).
- retries: Количество попыток повторных запросов в случае ошибок (по умолчанию 3).
- backoff_factor: Множитель для экспоненциального увеличения времени ожидания между повторными попытками (по умолчанию 1.0).
- session: Сессия aiohttp, создаваемая при первом запросе, или можно передать свою сессию для многократных запросов.
Логирование
Библиотека использует стандартный модуль Python logging для логирования ошибок и событий. Вы можете настроить уровень логирования, указав параметры конфигурации logging.
Пример настройки логирования:
import logging
logging.basicConfig(level=logging.DEBUG) # Уровень логирования
Обработка ошибок и повторные попытки
В случае временных ошибок (например, сетевых проблем) библиотека будет автоматически повторять запросы. Количество попыток и время между ними можно настроить через параметры retries и backoff_factor.
Лицензия
Ртот проект лицензирован РїРѕРґ лицензией MIT.
Вклад в проект
Если вы хотите внести свой вклад, пожалуйста, создайте форк репозитория, внесите изменения и отправьте Pull Request.
Контакты
Если у вас есть вопросы или предложения, вы можете обратиться по адресу электронной почты: ap4k43@gmail.com.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
22882f66c28f541840b2018a3913e6b3bea3f9a3e6a1730945ad1d85962368c8
|
|
| MD5 |
7a2baf7fa8ee5bd67fba127c3fc72df9
|
|
| BLAKE2b-256 |
3266fd50641a11aa9f9e40d8955b75e91cb07dd3d8e76467e25fed4a8d2eadd3
|
File details
Details for the file discord_webhook_async-0.1.0-py3-none-any.whl.
File metadata
- Download URL: discord_webhook_async-0.1.0-py3-none-any.whl
- Upload date:
- Size: 3.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a952e7b9a364f5cff87c837848dbc5a3363b3b5a230e303108260fe2c77018c0
|
|
| MD5 |
5ccf194059cb751cc6424ff6646202a6
|
|
| BLAKE2b-256 |
569217a085c40f4cacd222753fcfc154d89aa9577fbc2d0addcb681f10222868
|