Skip to main content

DeviantArt RSS API querying utility

Project description

deviousq is a command-line utility for querying the RSS API endpoint of the online art sharing community DeviantArt.

Installation

To install from PyPI, run:

pip install deviousq

To clone the source repository, run:

git clone git@gitlab.com:afeder/deviousq.git

Usage

usage: deviousq [-h] [-v] [-e ENDPOINT] [-q] [-l LIMIT] [-r ORDER] [-i OFFSET] [-p PAGE] [-P PAGES]
                [--start-date START_DATE] [--end-date END_DATE] [--rating RATING] [--category CATEGORY]
                [--author AUTHOR] [--gallery GALLERY] [--min-width MIN_WIDTH] [--max-width MAX_WIDTH]
                [--min-height MIN_HEIGHT] [--max-height MAX_HEIGHT] [--no-blurred-content] [--no-query-author]
                [-o OUTPUT_TO] [-t {flat,json,csv}] [-k RETURN_FIELD] [-d DOWNLOAD_TO]
                [--skip-download-exists]
                [search_terms ...]

By default, the utility queries the official DeviantArt endpoint for a list of items ("deviations") related to zero or more search terms.

If the value of the --order option is 9 or "popularity", the list is ordered by most popular first (this is the server-side default); if the value of --order is 5 or "time", the list is ordered by newest first (this is forced for queries on author or gallery).

An offset into the list may be specified with the --offset option, and an upper limit on the number of items to return from the list per query (up to a maximum of 60) may be specified with the --limit option.

If a page number is specified with the --page option, the effective offset is increased by the page number multiplied by the limit. If a number of pages to return is specified with the --pages option, the endpoint is queried up to that number of times to return all items contained in that number of consecutive pages.

The list of items to return may be reduced by applying any number of filters on publication date (--start-date and --end-date), maturity rating (--rating), category (--category), author username (--author), gallery name (--gallery), and content width (--min-width and --max-width) and height (--min-height and --max-height).

In default operation, a flat list with one URL representing each resulting item, separated by newline characters, is output to stdout; if a field name is specified with the --return-field option, then the value of the given field is output for each result in flat mode. If a different output format is specified with --output-format, a wider range of metadata is output for each result in the given serialization format. If a download directory is specified with the --download-to option, then the content URL of each result is downloaded to that directory, and only the relative path to each downloaded file is output. Finally if the --return-query flag is specified, no queries are executed at all; instead only the URLs of the queries corresponding to the input options are output.

If an output file is specified with --output-to, the generated output is written to that file instead of stdout.

Run the command with the option --help for a list of descriptions of all supported command-line options.

Examples

Get a list of URLs of deviations related to the search term ocean, sorted according to the server-side default (most popular first):

deviousq ocean

Get a list of URLs of deviations related to the search term forest, sorted by newest first:

deviousq forest --order time

Get 5 pages of up to 30 results each with the URLs of deviations related to the search term landscapes:

deviousq --pages 5 --limit 30 landscapes

Get a list of URLs of deviations posted by the user spyed, sorted according to the only order supported by the server (newest first):

deviousq --author spyed

Get a list of URLs of deviations posted by the user spyed to their "Featured" gallery (the gallery identifier was obtained manually by visiting the user's web page on DeviantArt and looking at the address of the link to the gallery), sorted according to the only order supported by the server (newest first):

deviousq --gallery spyed/4788

Get a list of URLs of the content media of deviations related to the search term portrait:

deviousq --return-field content_url portrait

Download the content media of deviations related to the search term magicalrealms to the directory /tmp/downloads:

deviousq --download-to /tmp/downloads magicalrealms

Get a list of deviations related to the search term painting and output their metadata in JSON format to the file /tmp/results.json:

deviousq --output-format json --output-to /tmp/results.json painting

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

deviousq-0.0.1.post2.tar.gz (14.0 kB view details)

Uploaded Source

Built Distribution

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

deviousq-0.0.1.post2-py3-none-any.whl (12.8 kB view details)

Uploaded Python 3

File details

Details for the file deviousq-0.0.1.post2.tar.gz.

File metadata

  • Download URL: deviousq-0.0.1.post2.tar.gz
  • Upload date:
  • Size: 14.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for deviousq-0.0.1.post2.tar.gz
Algorithm Hash digest
SHA256 6f54004d7d20313e166e593cf47f7881ca09527f5b6ea5b518418806dce507ab
MD5 d9d345c07b50cb9c6764176a67988440
BLAKE2b-256 a031fa61f22a33bab4c922af8197e1c646f18bc9b0aa783e00bb8a09a0e8da90

See more details on using hashes here.

File details

Details for the file deviousq-0.0.1.post2-py3-none-any.whl.

File metadata

  • Download URL: deviousq-0.0.1.post2-py3-none-any.whl
  • Upload date:
  • Size: 12.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for deviousq-0.0.1.post2-py3-none-any.whl
Algorithm Hash digest
SHA256 d06332e789800684f8584834182754224f5f25d7c10cb2a83070892ed081afd7
MD5 a79221c66c91bbafec72b8cf94fcb927
BLAKE2b-256 7520f19a8eb653535a8d40e002e160cb7f8ae00daabb9557793ec52ff2579a40

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