Skip to main content

A Python library for DeviantArt Eclipse functionality

Project description

dAEclipse

PyPI PyPI - Downloads PyPI - License

daeclipse is a reverse-engineered 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  Install completion for the current shell.
  --show-completion     Show completion for the current shell, to copy it or
                        customize the installation.

  --help                Show this message and exit.

Commands:
  add-art-to-groups  Submit DeviantArt deviation to groups.
  hot-tags           Return top tags on the hottest deviations.
  post-status        Post a DeviantArt status.
  show-tags          Return list of tags for given deviation.
  user-comments      Retrieve recent comments made by specified user.

Installation

The Python library is available via https://pypi.org/project/daeclipse/

pip install daeclipse

The CLI is only available by downloading / cloning the repo to your local machine:

git clone git@github.com:Pepper-Wood/daeclipse.git

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)

Build Status and Checks

CICD is run thorugh GitHub Actions and makes the below checks on the two components of this repository:

Python Package OpenAPI Spec
Lint Python Linter Workflow Status OpenAPI Linter Workflow Status
Test Coming Soon... Coming soon...
Deploy PyPI Package Workflow Status GitHub Pages Workflow Status

Contributing

Contributions are always welcome, no matter how large or small! Before contributing, please read the code of conduct.

Contributor Covenant

If you have a feature request, run into a bug, or are unsure about anything, feel free to submit a GitHub issue.

If you are interested in creating a Pull Request, please read the guide on this repository's development process.

Commit titles on the main branch follow the emoji-commit-messages naming convention.

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, DeviantArt 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.

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

daeclipse-0.1.0.tar.gz (14.7 kB view details)

Uploaded Source

Built Distribution

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

daeclipse-0.1.0-py3-none-any.whl (22.2 kB view details)

Uploaded Python 3

File details

Details for the file daeclipse-0.1.0.tar.gz.

File metadata

  • Download URL: daeclipse-0.1.0.tar.gz
  • Upload date:
  • Size: 14.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.7 CPython/3.8.2 Linux/5.8.0-1039-azure

File hashes

Hashes for daeclipse-0.1.0.tar.gz
Algorithm Hash digest
SHA256 e38b46926e3fec38b4f7c387c938d322c1179e84aab6742e1ce7688c0c995dc9
MD5 5077ea53d24206db3d7961ac53e8a23a
BLAKE2b-256 6d26160eec86f92f67357b009799b6828470ee4eb3a36f47f72fceb101f90b32

See more details on using hashes here.

File details

Details for the file daeclipse-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: daeclipse-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 22.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.7 CPython/3.8.2 Linux/5.8.0-1039-azure

File hashes

Hashes for daeclipse-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2f35a38360793d5e831e0af195088ad77224b5012950dab0cf2b95af2ed159ef
MD5 0e7f8c80fa768cb9f42823b02570b0e5
BLAKE2b-256 3d113d7307fd43c52f0690fc6731c1a17935b82052f77b924b980c76be114d23

See more details on using hashes here.

Supported by

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