Asynchronous API wrapper for the Dagbot API (http://dagpi.tk)
Reason this release was yanked:
Buggy does not work now
Project description
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 asycncdagpi 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(ctximage_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
- InvalidOption
This exception is raised when the feature chose 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
- ValueError
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. The description of status codes can be found in the API docs.
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
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
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
Hashes for asyncdagpi-2.0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 116ac04e8aeaf886592db694fc4f12189dc07b213324e78e928d74608953bf11 |
|
MD5 | ee1e03635c67271d4631600a09883c3c |
|
BLAKE2b-256 | e906ffe9b98c7ad445e14e836e4ebe691eb9389d0f5d691a1b9ec6b103a1b18b |