asyncdagpi
An async wrapper for http://dagpi.tk
Documentation for asyncdagpi
1) Obtain a token
Join the discord server here and verify yourself. Once done you can easily apply for a token via the process detailed.
2) Install the library
Use pip to install the library
pip install asyncdagpi
3) Initialise the client
from asyncdagpi import Client
API_CLIENT = Client('insert_your_token')
With this you should have a working API client that can help you authenticate and process api requests
4) Use One of the Features listed below with your client instance
- staticimage
- gif
- usertextimage
- textimage
These categories have a lot of features. A list of features can be found below or in the API documentation at docs
You can use the client with a feature as follows:
async def wanted(image_url:str):
response = await API_CLIENT.staticimage('wanted',image_url)
5) Using the Response
The client returns an url as a default response. If the bytes=True parameter is passed then a BytesIO object is returned instead! The BytesIO response can be used in a lot of ways. Read the documentation here : BytesIOdocs in the BytesIO section.
The examples below depict a few use cases
Obtaining a url to share
async def wanted(image_url:str):
response = await API_CLIENT.staticimage('wanted',image_url)
return (response)
Saving Response to file
async def wanted(image_url:str):
response = await API_CLIENT.staticimage('wanted',image_url,bytes=True)
with open('wanted.png''wb') as out:
out.write(response.read())
Opening The response with Pillow (PIL)
from PIL import Image
async def wanted(image_url:str):
response = await API_CLIENT.staticimage('wanted',image_url,bytes=True)
image = Image.open(response)
Using the Discord.py library and sending response as a an image in an embed
please do remember to get a discord api token and run the bot using that.
Get help with discord.py at dpy server
import discord
from discord.ext import commands
bot = commands.Bot(command_prefix = '.')
@bot.command()
async def wanted(ctx,image_url:str):
response = await API_CLIENT.staticimage('wanted',image_url)
embed = discord.Embed(title='DAGPI image')
embed.set_image(url=response)
await ctx.send(embed=embed)
6) Handling Exceptions
You can import exceptions from asyncdagpi.
from asyncdagpi import exceptions
try:
#request
except exceptions.ImageUnaccesible:
print('No image at your url')
- InvalidOption
This exception is raised when the feature chosen is not in the feature list ie. wanted is not a valid feature from the available options.
- BadUrl
The api uses regex to validate urls. When an improper url is passed to the API this exception is raised
- IncorrectToken
The token passed is invalid according to the api.
- RateLimited
You are exceeding the maximum number of requests the api can take.
- FileTooLarge
The file passed os too large for the API to process
- APIError
The api raised an error. Issue with the API
- ImageUnaccesible
The API was unable to find an image at your url within timeout and
- UnkownError
This is when the API returns a non 200 code ie means an error occurred. This exception throws the status code along with a message explaining the status code.
Categories and their subsequent features
staticimage
This returns an png image as an API url or (as BytesIO if bytes=True) and requires the image_url for a static image.
API_CLIENT.usertextimage(feature,image_url)
# feature - one of the features
# image_url - a static image url
Features:
- wanted
- evil
- bad
- hitler
- angel
- trash
- satan
Gif
Returns a gif as an API url or (as BytesIO if bytes=True) . Takes either a static_image url or a gif url and returns a gif. Irrespective of the inupt output is always a gif.
API_CLIENT.usertextimage(feature,image_url)
# feature - one of the features
# image_url - a gif or static image_url
Features:
- paint
- solar
- blur
- invert
- pixel
- sepia
- deepfry
- wasted
- gay
- charcoal
- jail
- polaroid
- night
usertextimage
Returns a png image as an API url or (as BytesIO if bytes=True). Takes in the following arguments
API_CLIENT.usertextimage(feature,image_url,text,name)
# feature - one of the features
# image_url - a static image url
# text - the text the person will say
# name - the username that will be used for the person
Features:
- tweet
- quote (discord message)
textimage
Depending in the feature and imput either returns a static or gif image.
returns an API url or (as BytesIO if bytes=True)
API_CLIENT.usertextimage(feature,image_url,text)
# feature - one of the features
# image_url - a static image url
# text - the text the person will say
Features:
- Thoughtimage: always returns a static response
- meme : based in type of input image_url returns a gif or png as BytesIO
Release files for asyncdagpi 2.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| asyncdagpi-2.4.0.tar.gz | 7.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| asyncdagpi-2.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 16.8 kB
Release files / asyncdagpi-2.4.0.tar.gz
| Download URL | asyncdagpi-2.4.0.tar.gz |
|---|---|
| Size | 7.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5941bc78ca6cb417c210b2073dd4e06126e1fbdf55490ab0fc15357ac8fdbb61
|
|
BLAKE2b-256 checksum How to use checksums |
f41b428e41dac789301751c1667baf9a7def2b8d7762ecb1553df9b5693b3cde
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.1
|
Release files / asyncdagpi-2.4.0-py3-none-any.whl
| Download URL | asyncdagpi-2.4.0-py3-none-any.whl |
|---|---|
| Size | 9.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
49053bdef143cfcc9e560b8b195b6d926bde0fb15f95b55c83e8bf12854ea883
|
|
BLAKE2b-256 checksum How to use checksums |
1890b5d8be78d92b3caa53044d3a1504b8c05769f8eac5e48cdca597db5ae6c2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.1
|