A Python library for DeviantArt Eclipse functionality
Project description
dAEclipse
daeclipse
is a Python library for DeviantArt Eclipse functionality.
This repo also contains a handy CLI to expose and test daeclipse
capabilities.
python3 cli.py --help
Usage: cli.py [OPTIONS] COMMAND [ARGS]...
DeviantArt Eclipse CLI
Options:
--install-completion [bash|zsh|fish|powershell|pwsh]
Install completion for the specified shell.
--show-completion [bash|zsh|fish|powershell|pwsh]
Show completion for the specified shell, to
copy it or customize the installation.
--help Show this message and exit.
Commands:
add-art-to-groups Submit DeviantArt deviation to groups.
gif-preset Generate an animated pixel icon gif based on a stored preset.
gif-random Generate an animated pixel icon gif with randomized assets.
Installation
python3 -m pip install daeclipse
Usage
import daeclipse
# Fetches a list of group names the user is a member of.
# You will need to be logged into DeviantArt and have a chrome page open.
eclipse = daeclipse.Eclipse()
groups, has_more, next_offset, total = eclipse.get_groups("Pepper-Wood", 0)
for group in groups:
print(group.username)
Caveats / Disclaimer
DeviantArt's history as a website is storied. Prior to the release of Eclipse, there were two options with creating tooling around its UI:
- The Public DeviantArt API. See accompanying Python wrapper. The API is relatively easy to use - and utilizes OAuth2 for authentication - but its endpoints and functionality are sparce. It also was not updated for some time but now appears to be getting a handful of new endpoints based on the changelog.
- The internal DeviantArt Interactive Fragment Interface (DiFi). DiFi has a wide range of functionality but is volatile/unreliable and difficult to use - especially compared to modern APIs.
On October 2019, DeviantArt announced DeviantArt Eclipse, a new UI (mostly) built in React. There are still a handful of pages on the website that expose the old website (i.e. https://www.deviantart.com/groups/) where functionality hasn't been completely ported. But with the new React UI brought along a third option for tooling:
- The internal DeviantArt NAPI, currently undocumented. The structure of its endpoints resembles RESTful practices, and authentication is done through scraping a CSRF token on the website or using a user's stored
.deviantart.com
cookies.
The implementation in this library relies on the DeviantArt NAPI. As such, functionality may break without warning depending on whether the internal DeviantArt team makes changes to these endpoints.
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. Please make sure to update tests as appropriate.
License
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 daeclipse-0.0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4647f8f8e820f85f22b1dfa8d2e7b0dba17d1a796534f7fc535a16c507fd47a2 |
|
MD5 | 054e87634a1df278299f9a0b55e7ee33 |
|
BLAKE2b-256 | ab7287cb8bc0b7ad9a70cb2e5deeec04b6c8c3a170d12dd95273f442de1d6fb0 |