Skip to content

Haniversity/hhaven

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo

HHaven

GitHub release (with filter) PyPI Code Climate coverage

A well-documented and typed API wrapper for Hentai Haven, providing efficient asynchronous requests, built-in cache support, and Pydantic Models for seamless autocompletion and linter support.

Key Features

  • Efficient Asynchronous Structure: Utilize a fully asynchronous structure that enhances request speed without affecting other processes in your code.
  • Built-in Cache Support: Benefit from built-in cache support using the aiocache library, reducing unnecessary API requests and improving overall performance.
  • Pydantic Model Output: Receive all data in the form of Pydantic Models, enabling comprehensive autocompletion and linter support.
  • Comprehensive Documentation: Explore extensive and user-friendly documentation, covering all aspects of this library.

Links

Documentation - https://hhaven.nekolab.app

API Reference - https://jokelbaf.github.io/hhaven-api-reference

Requirements

  • Python 3.10+
  • pydantic
  • aiohttp
  • aiocache

Installation

From PyPi:

pip install hhaven

From GitHub:

pip install git+https://github.com/JokelBaf/hhaven.git

Examples

Search for hentai by it's name:

from hhaven import Client
import asyncio

async def main():
    client = await Client().build()

    results = await client.search("Maid Kyouiku")
    hentai = await results[0].full()

    print(hentai)
        
if __name__ == "__main__":
    asyncio.run(main())

Get all episodes of the latest hentai:

from hhaven import Client
import asyncio

async def main():
    client = await Client().build()
    
    home = await client.home()
    hentai = await home.last[0].full()
    
    for episode in hentai.episodes:
        print(episode.name)
        
if __name__ == "__main__":
    asyncio.run(main())

Development

Uv is a preferred tool for managing dependencies and running the development environment in hhaven. To setup the project locally, use the following commands:

git clone https://github.com/JokelBaf/hhaven.git
cd hhaven
uv sync --group test

To run tests, use the following commands:

uv run pytest

To run documentation locally, use the following command:

uvx --with mkdocs-material[emoji] mkdocs serve

License

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

About

A well-documented and typed API wrapper for Hentai Haven.

Topics

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •  

Languages