Python bindings for Derpibooru's API
Project description
DerPyBooru
Python bindings for Derpibooru's API
License: Simplified BSD License
Version: 0.9.0
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
- python2.7 or newer
- requests
About this Fork
This is a fork of the DerPyBooru package; it is meant to be a drop in replacement for the modules in that package.
To use, use derpybooru_nullforce
where you see derpybooru
used below.
How to install
Python 2.7
$ pip install derpybooru-nullforce
Python 3.x
$ pip3 install derpybooru-nullforce
Checking documentation
Python 2.7
$ pydoc derpibooru
Python 3.x
$ pydoc3 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
0.9.0
- Update sort to include: first_seen_at, tag_count, and updated_at
- Deprecated Search() methods that appear to be no longer supported by derpibooru:
- faves()
- uploads()
- upvotes()
- watched()
0.8.0
- Updated sort to include wilson and width
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
Close
Hashes for DerPyBooru_Nullforce-0.9.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5acfa9dab0c6612ef45a21e5cc3554acad0f8ec829b7e8f0cbe10e881815a67a |
|
MD5 | d6c5f34fd7558daf90a4677e7af43fa8 |
|
BLAKE2b-256 | 8079b68baece13c1beda8a31a7096fed747bb198d2f9ba29d04caa8e55fde5ff |
Close
Hashes for DerPyBooru_Nullforce-0.9.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 95607aeba721578e20afe349b4b332c69af316696f2634894070c714531ad4c3 |
|
MD5 | d58d72038f7930a90980d0a55d87e0c5 |
|
BLAKE2b-256 | 21febda5b567e05aa60e6dd9b0d00812c26eda2226afa41f635b8f2405a0b089 |