Skip to main content

Python interface for szurubooru

Project description

pyszuru

Python interface for szurubooru

Installation: pip install pyszuru

Usage

Creating API Instance

import pyszuru
mybooru = pyszuru.API(
    "https://example.com/booru",
    username="alice",
    # Authenticate with a password
    password="hunter2",
    # Or use a token
    token="my-token-string",
    # Optionally specify a API base URL if it differs from the default configuration
    # api_url="/booru-api", <-- relative to base URL
    # api_url="https://api.example.com/booru", <-- new absolute base
)

Working with tags

Note: it is reccomended to use the factory functions outlined below instead of calling the Tag constructor directly.

Get existing tag

Get an existing tag from the booru by referencing it by name

marvel_comics_tag = mybooru.getTag("marvel_comics")

Create new tag

Create a new tag, must specifiy a primary name only

spiderman_tag = mybooru.createTag("spiderman")

Alter properties of tag

spiderman_tag.implications = spiderman_tag.implications + [marvel_comics_tag]
spiderman_tag.push()

Working with posts

Note: it is reccomended to use the factory functions outlined below instead of calling the Post constructor directly.

Get existing post

my_old_post = mybooru.getPost(1337)

Create a post

with open("image.jpg", "rb") as f:
    file_token = mybooru.upload_file(f)
my_new_post = mybooru.createPost(file_token, "safe")

Alter tags of a post

my_new_post.tags = [marvel_comics_tag, spiderman_tag]
my_new_post.push()

Searching

Searching across tags

unused_tags = mybooru.search_tag("usages:0")

Searching across posts

for post in mybooru.search_post(
    "marvel_comics type:image special:fav", show_progress_bar=True
):
    wget.download(post.content)

Reverse image search

with open("similar.jpg", "rb") as f:
    similar_file_token = mybooru.upload_file(f)
result = mybooru.search_by_image(similar_file_token)
if result:
    if any(x.exact for x in result):
        raise Exception("Found an exact match")
    else:
        warnings.warn(f"Found {len(result)} similar posts")

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

pyszuru-0.3.1.tar.gz (22.7 kB view hashes)

Uploaded Source

Built Distribution

pyszuru-0.3.1-py3-none-any.whl (23.7 kB view hashes)

Uploaded Python 3

Supported by

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