Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

dhooks

Package Overview
Dependencies
Maintainers
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dhooks

An (a)sync wrapper for discord webhooks

  • 1.1.4
  • PyPI
  • Socket score

Maintainers
2

Discord Webhooks

Interact with discord webhooks using python.

Travis Documentation Status Py Versions PyPi LICENSE

This simple library enables you to easily interact with discord webhooks, allowing you to easily format discord messages and discord embeds, retrieve webhook information, modify and delete webhooks. Asynchronous usage is also supported.

Installation

To install the library simply use pip.

pip install dhooks

If you would also like to get the latest version of dhooks from GitHub, build docs, run tests or run examples, you may want to install dhooks with the optional extended dependencies.

git clone https://github.com/kyb3r/dhooks.git
cd dhooks
pip install .[tests,docs,examples]

Quick Start

Sending Messages:

from dhooks import Webhook

hook = Webhook('url')

hook.send("Hello there! I'm a webhook :open_mouth:")

Discord Embeds:

You can easily format and send embeds using this library.

Note: Embed objects from discord.py are also compatible with this library.

from dhooks import Webhook, Embed

hook = Webhook('url')

embed = Embed(
    description='This is the **description** of the embed! :smiley:',
    color=0x5CDBF0,
    timestamp='now'  # sets the timestamp to current time
    )

image1 = 'https://i.imgur.com/rdm3W9t.png'
image2 = 'https://i.imgur.com/f1LOr4q.png'

embed.set_author(name='Author Goes Here', icon_url=image1)
embed.add_field(name='Test Field', value='Value of the field :open_mouth:')
embed.add_field(name='Another Field', value='1234 :smile:')
embed.set_footer(text='Here is my footer text', icon_url=image1)

embed.set_thumbnail(image1)
embed.set_image(image2)

hook.send(embed=embed)

Sending Files:

You can easily send files as shown.

from dhooks import Webhook, File
from io import BytesIO
import requests

hook = Webhook('url')

file = File('path/to/file.png', name='cat.png')  # optional name for discord

hook.send('Look at this:', file=file)

You can also pass a file-like object:

response = requests.get('https://i.imgur.com/rdm3W9t.png')
file = File(BytesIO(response.content), name='wow.png')

hook.send('Another one:', file=file)

Get Webhook Info:

You can get some basic information related to the webhook through Discord's API.

hook.get_info()

The following attributes will be populated with data from discord:

  • hook.guild_id
  • hook.channel_id
  • hook.default_name
  • hook.default_avatar_url

Modify and Delete Webhooks:

You can change the default name and avatar of a webhook easily.

with open('img.png', rb) as f:
    img = f.read()  # bytes

hook.modify(name='Bob', avatar=img)

hook.delete()  # webhook deleted permanently

Asynchronous Usage:

To asynchronously make requests using aiohttp, simply use Webhook.Async to create the object. An example is as follows. Simply use the await keyword when calling API methods.

from dhooks import Webhook

async def main():
    hook = Webhook.Async('url')

    await hook.send('hello')
    await hook.modify('bob')
    await hook.get_info()
    await hook.delete()

    await hook.close()  # close the client session

Alternatively you can use an async with block (asynchronous context manager) to automatically close the session once finished.

async def main():
    async with Webhook.Async('url') as hook:
        await hook.send('hello')

Documentation

You can find the full API reference here.

License

This project is licensed under MIT.

Contributing

Feel free to contribute to this project, a helping hand is always appreciated.

Join our discord server.

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc