Skip to main content

asyncdagpi

An async wrapper for http://dagpi.tk

Build Status License codestyle version python

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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

asyncdagpi-2.4.0.tar.gz (7.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

asyncdagpi-2.4.0-py3-none-any.whl (9.0 kB view details)

Uploaded Python 3

File details

Details for the file asyncdagpi-2.4.0.tar.gz.

File metadata

  • Download URL: asyncdagpi-2.4.0.tar.gz
  • Upload date:
  • Size: 7.8 kB
  • Tags: Source
  • Uploaded using 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

File hashes

Hashes for asyncdagpi-2.4.0.tar.gz
Algorithm Hash digest
SHA256 5941bc78ca6cb417c210b2073dd4e06126e1fbdf55490ab0fc15357ac8fdbb61
MD5 169c17fa2f25726a6b0d83bd6458a6c3
BLAKE2b-256 f41b428e41dac789301751c1667baf9a7def2b8d7762ecb1553df9b5693b3cde

See more details on using hashes here.

File details

Details for the file asyncdagpi-2.4.0-py3-none-any.whl.

File metadata

  • Download URL: asyncdagpi-2.4.0-py3-none-any.whl
  • Upload date:
  • Size: 9.0 kB
  • Tags: Python 3
  • Uploaded using 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

File hashes

Hashes for asyncdagpi-2.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 49053bdef143cfcc9e560b8b195b6d926bde0fb15f95b55c83e8bf12854ea883
MD5 5e7cf09d2944588d05a074588fb5f625
BLAKE2b-256 1890b5d8be78d92b3caa53044d3a1504b8c05769f8eac5e48cdca597db5ae6c2

See more details on using hashes here.

Release history Release notifications | RSS feed

4.1.5

2 files

4.1.3

2 files

4.1.2

2 files

4.0.0

2 files

3.3.4

2 files

3.3.3

2 files

3.3.2

2 files

3.3.0

2 files

3.2.2

2 files

3.2.1

2 files

3.2.0

2 files

3.1.0

2 files

3.0.0

2 files

2.5.1

2 files

2.5.0

2 files

This release

2.4.0 This release

2 files

2.3.0

2 files

2.2.0

2 files

2.1.0

2 files

2.0.3

2 files

2.0.2

2 files

2.0.0

2 files

1.1.0

2 files

1.0.0

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page