/rule34-posts-wrapper

Library for retrieving posts and tags from rule34.paheal.net

Primary LanguagePythonMIT LicenseMIT

Rule34 posts wrapper

GitHub Workflow Status (branch) Codecov GitHub Repo stars Code style: black PyPI - Downloads

Rule34 Posts Wrapper

This is a rule34.paheal.net wrapper that turns your query into an iterable list of posts with the most important information about them.

Consider supporting this project. You can buy me a cup of tea (I don't drink coffee).

  • Bitcoin: bc1qmr5m0z4p0gzqnfrztamrrpmgkw79725dsqdp03
  • Ethereum: 0xb0627eBDb226b4D972661637091573596c5B3B7a

Installation

To install:

pip install rule34-posts-wrapper

Or for development/testing purposes, clone and run:

pip install -e .[development]
pre-commit install

Usage

PostsWrapper

To start import PostsWrapper and call it:

from rule34_posts_wrapper import PostsWrapper

posts = PostsWrapper(['your', 'query', 'here'])[0].file

Note that there is no authentication for now so you can't use more than three tags in your query.

Now you can iterate the posts in cycle:

for post in posts:
    print(str(post.file) + " - " + " ".join(post.tags)) # Do whatever you want with Post object

Also you can just interact with it like list

first_post = posts[0]
print(str(first_post.thumbnail))

Note that all URLs are urllib3.util.Url, call str(posts[x].link) to convert it to str.

TagsWrapper

Like PostsWrapper, TagsWrapper provides you iterable list of Tag's:

from rule34_posts_wrapper import TagsWrapper

tags = TagsWrapper("Your_Query_Here")

print(f"Found {len(tags)} tags:", end="\n\n")
for tag in tags:
    print(f"Tag: {tag.name}, Count: {tag.count}")

It uses rule34.paheal.net autocomplete that helps you find tags by it's starting substring.

Testing

To run all tests, just use this command:

tox -e py