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
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f2ab5cf0995eb4e074d7f91b1c88b0373a076c5a7f9d939e918a1f6092b9bc37
|
|
| MD5 |
789d07d9cb1a7bcbd46db02c837fb0c3
|
|
| BLAKE2b-256 |
fc8964cd2f0206f9a24a4996d2d56f97e60dbd83fce1371eb20c26a35246abca
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8bb38ca44550628a096be7d4201c99225ee3a5c5e7fee6b49f27fe6e780a48e0
|
|
| MD5 |
65a7c28bc9c971bf52bf57c4de6add46
|
|
| BLAKE2b-256 |
f1efe17d640dd3729c36246376cb9ba9f1dc256a0d6e178ebe986cb254fde977
|