Skip to main content

Python bindings for Derpibooru's API

Project description

DerPyBooru-Nullforce

Python bindings for Derpibooru's API

License: Simplified BSD License

Version Version
Python Versions
Downloads Downloads

About this Fork

This is a fork of the joshua-stone/DerPyBooru repository; it is meant to be a drop in replacement for the modules in that package.

Features

  • High-level abstraction over Derpibooru's REST API
  • Parameter chaining for ease of manipulation
  • Syntactic sugar for queries, e.g., "query.score >= 100" compiling to "score.gte:100"
  • Design focusing on iterables and lazy generation for network efficiency

Dependencies

  • python 2.7, 3.0 or newer
  • requests

How to install

  pip install derpybooru-nullforce

Checking documentation

  pydoc derpibooru

Typical usage

Getting images currently on Derpibooru's front page

from derpibooru import Search

for image in Search():
  id_number, score, tags = image.id, image.score, ", ".join(image.tags)
  print("#{} - score: {:>3} - {}".format(id_number, score, tags))

Searching posts by tag

from derpibooru import Search

for image in Search().query("rarity", "twilight sparkle"):
  print(image.url)

Crawling Derpibooru from first to last post

from derpibooru import Search

# This is only an example and shouldn't be used in practice as it abuses
# Derpibooru's licensing terms
for image in Search().ascending().limit(None):
  id_number, score, tags = image.id, image.score, ", ".join(image.tags)
  print("#{} - score: {:>3} - {}".format(id_number, score, tags))

Getting random posts

from derpibooru import Search, sort

for post in Search().sort_by(sort.RANDOM):
  print(post.url)

Getting top 100 posts

from derpibooru import Search, sort

top_scoring = [post for post in Search().sort_by(sort.SCORE).limit(100)]

Storing and passing new search parameters

from derpibooru import Search, sort

params = Search().sort_by(sort.SCORE).limit(100).parameters

top_scoring = Search(**params)
top_animated = top_scoring.query("animated")

Filtering by metadata

from derpibooru import Search, query

q = {
  "wallpaper",
  query.width == 1920,
  query.height == 1080,
  query.score >= 100
}

wallpapers = [image for image in Search().query(*q)]

Getting the latest images from a watchlist

from derpibooru import Search, user

key = "your_api_key"

for post in Search().key(key).watched(user.ONLY):
  id_number, score, tags = post.id, post.score, ", ".join(post.tags)
  print("#{} - score: {:>3} - {}".format(id_number, score, tags))

Changelog

See CHANGELOG

[0.10.0]

Added

  • Image class now has an image_json property to get to the underlying JSON field (image still returns representations["full"] but will change to the JSON value in a future version).

Fixed

  • Updated Search methods to use q= params:
    • faves uses my:faves
    • upvotes uses my:upvotes
    • uploads uses my:uploads
    • watched uses my:watched

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

DerPyBooru_Nullforce-0.10.0.tar.gz (9.1 kB view details)

Uploaded Source

Built Distribution

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

DerPyBooru_Nullforce-0.10.0-py2.py3-none-any.whl (15.9 kB view details)

Uploaded Python 2Python 3

File details

Details for the file DerPyBooru_Nullforce-0.10.0.tar.gz.

File metadata

  • Download URL: DerPyBooru_Nullforce-0.10.0.tar.gz
  • Upload date:
  • Size: 9.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.4

File hashes

Hashes for DerPyBooru_Nullforce-0.10.0.tar.gz
Algorithm Hash digest
SHA256 f9a8ff150b431eeff15ceac3bb9b3d4cd569de2558f6deb65339e2cca33ccaa0
MD5 537d8d5e306a15d5068e6b1ce64bd76b
BLAKE2b-256 1ad4a8da30a61eebc975262403df7563fc53f67edf64d6f831861a2cde9b043d

See more details on using hashes here.

File details

Details for the file DerPyBooru_Nullforce-0.10.0-py2.py3-none-any.whl.

File metadata

  • Download URL: DerPyBooru_Nullforce-0.10.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 15.9 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.4

File hashes

Hashes for DerPyBooru_Nullforce-0.10.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 175ea891eb6225ce54294557b5420bd297d3e193057abd34bd76ebbdf421d9b9
MD5 d3752331c0c6d781596b0a60c3e6c288
BLAKE2b-256 8a1aeaab65906095fe738f2857b37cae662f077ee14f7b6b279b5e5bf39cc985

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