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()

Working with pools

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

Get existing pool

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

some_pool = mybooru.getPool("some_pool")

Create new pool

Create a new pool, must specifiy a primary name only

other_pool = mybooru.createPool("other_pool")

Alter properties of pool

other_pool.posts = [my_old_post, my_new_post]
other_pool.push()

Searching

Searching across tags, posts, and pools

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

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

for pool in mybooru.search_pool(my_query):
    pool.category = "coolpool"
    pool.push()

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.4.0.tar.gz (23.4 kB view details)

Uploaded Source

Built Distribution

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

pyszuru-0.4.0-py3-none-any.whl (24.5 kB view details)

Uploaded Python 3

File details

Details for the file pyszuru-0.4.0.tar.gz.

File metadata

  • Download URL: pyszuru-0.4.0.tar.gz
  • Upload date:
  • Size: 23.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for pyszuru-0.4.0.tar.gz
Algorithm Hash digest
SHA256 f2ab5cf0995eb4e074d7f91b1c88b0373a076c5a7f9d939e918a1f6092b9bc37
MD5 789d07d9cb1a7bcbd46db02c837fb0c3
BLAKE2b-256 fc8964cd2f0206f9a24a4996d2d56f97e60dbd83fce1371eb20c26a35246abca

See more details on using hashes here.

File details

Details for the file pyszuru-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: pyszuru-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 24.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for pyszuru-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8bb38ca44550628a096be7d4201c99225ee3a5c5e7fee6b49f27fe6e780a48e0
MD5 65a7c28bc9c971bf52bf57c4de6add46
BLAKE2b-256 f1efe17d640dd3729c36246376cb9ba9f1dc256a0d6e178ebe986cb254fde977

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