%global _empty_manifest_terminate_build 0 Name: python-dhooks Version: 1.1.4 Release: 1 Summary: An (a)sync wrapper for discord webhooks License: MIT URL: https://github.com/4rqm/dhooks/ Source0: https://mirrors.nju.edu.cn/pypi/web/packages/86/ed/d61beae391e49427877e6fd43881e7e04ff398c1f5ad31269c2a0dfb50be/dhooks-1.1.4.tar.gz BuildArch: noarch %description
### Discord Embeds:
You can easily format and send embeds using this library.
Note: `Embed` objects from `discord.py` are also compatible with this library.
```python
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.
```python
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:
```python
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.
```python
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.
```python
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.
```python
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.
```python
async def main():
async with Webhook.Async('url') as hook:
await hook.send('hello')
```
## Documentation
You can find the full API reference [here](https://dhooks.readthedocs.io).
## 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](https://discord.gg/etJNHCQ).
%package -n python3-dhooks
Summary: An (a)sync wrapper for discord webhooks
Provides: python-dhooks
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-pip
%description -n python3-dhooks
### Discord Embeds:
You can easily format and send embeds using this library.
Note: `Embed` objects from `discord.py` are also compatible with this library.
```python
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.
```python
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:
```python
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.
```python
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.
```python
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.
```python
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.
```python
async def main():
async with Webhook.Async('url') as hook:
await hook.send('hello')
```
## Documentation
You can find the full API reference [here](https://dhooks.readthedocs.io).
## 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](https://discord.gg/etJNHCQ).
%package help
Summary: Development documents and examples for dhooks
Provides: python3-dhooks-doc
%description help
### Discord Embeds:
You can easily format and send embeds using this library.
Note: `Embed` objects from `discord.py` are also compatible with this library.
```python
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.
```python
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:
```python
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.
```python
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.
```python
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.
```python
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.
```python
async def main():
async with Webhook.Async('url') as hook:
await hook.send('hello')
```
## Documentation
You can find the full API reference [here](https://dhooks.readthedocs.io).
## 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](https://discord.gg/etJNHCQ).
%prep
%autosetup -n dhooks-1.1.4
%build
%py3_build
%install
%py3_install
install -d -m755 %{buildroot}/%{_pkgdocdir}
if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
pushd %{buildroot}
if [ -d usr/lib ]; then
find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/lib64 ]; then
find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/bin ]; then
find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/sbin ]; then
find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
fi
touch doclist.lst
if [ -d usr/share/man ]; then
find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
fi
popd
mv %{buildroot}/filelist.lst .
mv %{buildroot}/doclist.lst .
%files -n python3-dhooks -f filelist.lst
%dir %{python3_sitelib}/*
%files help -f doclist.lst
%{_docdir}/*
%changelog
* Mon Apr 10 2023 Python_Bot