Skip to main content

Another simple class wrapper for interacting with Discord webhooks.

Project description

dhooks-lite

Another simple class wrapper for interacting with Discord webhooks.

release python pipeline status codecov Documentation Status license pre-commit Code style: black chat

Contents

Overview

dhooks-lite is a library with a set of classes for interacting with Discord webhooks written in Python 3.

This library aims to differentiate itself from similar libraries with the following properties:

  • is fully tested
  • simple to use (only one way of doing things, same name of attributes and objects as in the official Discord documentation)
  • has logging
  • requests are automatically retried and have sensible timeouts
  • works with older Python versions

Functionality

This library provides following functionality:

  • Posting messages in Discord channels via webhooks (synchronous calls only)
  • Attaching Embeds to messages
  • Retrieve send reports and from Discord
  • Retrieve HTTP status and headers from Discord, e.g. for implementing rate limit handling

Examples

Here are some examples on how to use dhooks-lite in your Python scripts.

Note that you also find the source code of all examples in the /examples folder of this repo.

Hello World

Minimal example for posting a message.

from dhooks_lite import Webhook

hook = Webhook(DISCORD_WEBHOOK_URL)
hook.execute('Hello, World!')

example1

Posting with custom avatar

In this example we are setting username and avatar.

from dhooks_lite import Webhook

hook = Webhook(
    DISCORD_WEBHOOK_URL,
    username='Bruce Wayne',
    avatar_url='https://i.imgur.com/thK8erv.png'
)
hook.execute('I am Batman!')

example2

Complete example with embeds

Finally, here is an example for posting a message with two embeds and using all available features (shortened):

import datetime
from dhooks_lite import Webhook, Embed, Footer, Image, Thumbnail, Author, Field

hook = Webhook(DISCORD_WEBHOOK_URL)
e1 = Embed(
    description='Only a few years ago, scientists stumbled upon an electrical current of cosmic proportions.(...)',
    title='Universe\'s highest electric current found',
    url='https://www.newscientist.com/article/mg21028174-900-universes-highest-electric-current-found/',
    timestamp=datetime.datetime.utcnow(),
    color=0x5CDBF0,
    footer=Footer(
        'Science Department',
        'https://i.imgur.com/Bgsv04h.png'
    ),
    image=Image('https://i.imgur.com/eis1Y0P.jpg'),
    thumbnail=Thumbnail('https://i.imgur.com/2A4k28x.jpg'),
    author=Author(
        'John Scientist',
        url='https://en.wikipedia.org/wiki/Albert_Einstein',
        icon_url='https://i.imgur.com/1JoHDw1.png'
    ),
    fields=[
        Field('1st Measurement', 'Failed'),
        Field('2nd Measurement', 'Succeeded')
    ]
)
e2 = Embed(description="TOP SECRET - Do not distribute!")

hook.execute(
    'Checkout this new report from the science department:',
    username='Bruce Wayne',
    avatar_url='https://i.imgur.com/thK8erv.png',
    embeds=[e1, e2],
    wait_for_response=True
)

example2

Installation

You can install this library directly from PyPI:

pip install dhooks-lite

Documentation

For a full documentation of all classes please see the official docs here.

Contribution

We welcome any contribution!

If you found a bug or have a feature request please raise an issue.

If you want to help further improve this library please feel free to issue a merge request. Please adhere to the following requirements in your change:

  • Code should be compliant with PEP8
  • Full overage by unit tests
  • All classes should be immutable
  • All classes and their public methods must have docstring documentation
  • All changes must be documented in the Change Log

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

dhooks_lite-1.1.0.tar.gz (11.2 kB view details)

Uploaded Source

Built Distribution

dhooks_lite-1.1.0-py3-none-any.whl (10.5 kB view details)

Uploaded Python 3

File details

Details for the file dhooks_lite-1.1.0.tar.gz.

File metadata

  • Download URL: dhooks_lite-1.1.0.tar.gz
  • Upload date:
  • Size: 11.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.12

File hashes

Hashes for dhooks_lite-1.1.0.tar.gz
Algorithm Hash digest
SHA256 1fee6ac0bdec54ab4800e8696270161833167ab0bd8c27a0812178f664a1ca0a
MD5 08c8e872560a0cac97a8f599df950171
BLAKE2b-256 694fb8d58e88babd930314a4ec7dbf6190479353d69b8a2015757522a69f8e7b

See more details on using hashes here.

File details

Details for the file dhooks_lite-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: dhooks_lite-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 10.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.12

File hashes

Hashes for dhooks_lite-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1e40fc74da2f9ceeed4e39d10d2d917627a535dc1d6a93ff03f7b865e3d371c9
MD5 794d638118a6ac84d201bd943500a6c2
BLAKE2b-256 b0b1ef4cef58be27b241620a936c5f6e28115e2dc8580f186be8af78a206bdbe

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page