Skip to main content

A wrapper for the Discord Python Pixels API.

Project description

PyDisPix

A simple wrapper around Python Discord Pixels.

Requires Python 3.9+ (3.x where x >= 9).

Requires requests, pillow and matplotlib from pip.

Example

import pydispix

# Create a client with your token.
client = pydispix.Client('my-auth-token')

# Let pydispix find your token from `TOKEN` environmental variable
client = pydispix.Client()

# Download and save the canvas.
canvas = client.get_canvas()
canvas.save('canvas.png')

# And access pixels from it.
print(canvas[4, 10])

# Or just fetch a specific pixel.
print(client.get_pixel(4, 10))

# Draw a pixel.
client.put_pixel(50, 10, 'cyan')
client.put_pixel(1, 5, pydispix.Color.BLURPLE)
client.put_pixel(100, 4, '93FF00')
client.put_pixel(44, 0, 0xFF0000)
client.put_pixel(8, 54, (255, 255, 255))

We can also display the image with pillow

canvas = client.get_canvas()
canvas.show()

Or we can display with matplotlib to see it with coordinates

canvas = client.get_canvas()
canvas.mpl_show()

Auto-draw

Load an image:

from PIL import Image

im = Image.open('pretty.png')
ad = pydispix.AutoDraw.load_image(client, (5, 40), im, scale=0.1)
ad.draw()

Or specify each pixel:

ad = pydispix.AutoDraw.load(client, '''0
0
3
2
ff0000
00ff00
0000ff
ff0000
00ff00
0000ff''')
ad.draw()

Format of the drawing plan:

  • Leftmost X coordinate
  • Topmost Y coordinate
  • Width
  • Height
  • Each pixel, left-to-right, top-to-bottom.

Auto-draw will avoid colouring already correct pixels, for efficiency.

You can also run this continually with guard=True which makes sure that after your image is drawn, this keeps running to check if it haven't been tampered with, and fixes all non-matching pixels

ad.draw(guard=True)

Logging

To see logs, you can set the DEBUG environment variable, which changes the loglevel from logging.INFO to logging.DEBUG You can also do this manually by executing:

import logging

logger = logging.getLogger("pydispix")
logger.setLevel(logging.DEBUG)

Project details


Download files

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

Source Distribution

pydispix-0.3.0.tar.gz (8.5 kB view details)

Uploaded Source

Built Distribution

pydispix-0.3.0-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

Details for the file pydispix-0.3.0.tar.gz.

File metadata

  • Download URL: pydispix-0.3.0.tar.gz
  • Upload date:
  • Size: 8.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

File hashes

Hashes for pydispix-0.3.0.tar.gz
Algorithm Hash digest
SHA256 58dc35b4680c66dde19285f1bb947df4d99eaa9842cd0315475c9ada37378959
MD5 5a29fbfd318bc16afdb48ef13f80d999
BLAKE2b-256 65d55956a341a1cbec90bfe52e05198f3fd63c1566e8a6af6890f75f994b7ace

See more details on using hashes here.

File details

Details for the file pydispix-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: pydispix-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 9.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

File hashes

Hashes for pydispix-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1c191e11a0f5bbed57766ba636f9f98bc80eda0c973c15a6faaf2c725aea6fe3
MD5 72f42a4e64bbd1e88134edc2ffc2a619
BLAKE2b-256 9046d37f9c5df334174b924076990526459d4e1b358163f9d4df6ec8d074387d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page