Skip to content

cardisnotvalid/rule34-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rule34 API

A Python wrapper for the Rule34 API, supporting both synchronous and asynchronous requests.

Installation

Install the package using pip:

$ python3 -m pip install git+https://github.com/cardisnotvalid/rule34-api.git

Usage

Synchronous Usage

from rule34 import Rule34

# Initialize the client
r34 = Rule34()

# Get a random post
random_post = r34.get_random_post()
print(random_post)

# Search for posts with specific tags
posts = r34.search("python")
print(posts)

# Get a specific post by its ID
post = r34.get_post(12345678)
print(post)

# Get comments for a specific post by its ID
comments = r34.get_comments(12345678)
print(comments)

Asynchronous Usage

import asyncio
from rule34 import AsyncRule34

async def main() -> None:
    # Initialize the asynchronous client
    r34 = AsyncRule34()

    # Get a random post
    random_post = await r34.get_random_post()
    print(random_post)

    # Search for posts with specific tags
    posts = await r34.search("python")
    print(posts)

    # Get a specific post by its ID
    post = await r34.get_post(12345678)
    print(post)

    # Get comments for a specific post by its ID
    comments = await r34.get_comments(12345678)
    print(comments)

asyncio.run(main())

Using Context Managers

The Rule34 and AsyncRule34 classes support context managers for automatic resource management.

Synchronous Context Manager

from rule34 import Rule34

# Using a context manager
with Rule34() as r34:
    random_post = r34.get_random_post()
    print(random_post)

Asynchronous Context Manager

import asyncio
from rule34 import AsyncRule34

async def main() -> None:
    # Using an asynchronous context manager
    async with AsyncRule34() as r34:
        random_post = await r34.get_random_post()
        print(random_post)

asyncio.run(main())

Manual Resource Management

If you prefer not to use context managers, ensure proper resource management by manually closing the client.

Synchronous

from rule34 import Rule34

r34 = Rule34()
try:
    random_post = r34.get_random_post()
    print(random_post)
finally:
    r34.close()

Asynchronous

import asyncio
from rule34 import AsyncRule34

async def main() -> None:
    r34 = AsyncRule34()
    try:
        random_post = await r34.get_random_post()
        print(random_post)
    finally:
        await r34.close()

asyncio.run(main())

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

Rule34 API wrapper with sync and async support

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages