nhentai.net API wrapper for doujins
Project description
Kitsune
An asynchronous nhentai.net API wrapper and scraper
As of now the wrapper has most of the functionality the API has to offer, except for the endpoint for filtering galleries by tag which I didn't include in the wrapper due to the fact that the search endpoint can already do that. The only thing left to do is to improve the quality of the code, implement GIF downloading which, according to how they are distributed across nhentai image repositories, will be quite troublesome and writing the documentation.
Only contributions I allow will be accepted. This will be worked on only in my free time.
Current capabilities:
- nhentai.net API endpoints data requesting
- Searching and filtering with webscraping
- Ratelimit handling
- Downloading done via threads
Pre-release:
- Extra polishing, some extra refactoring and last touches.
- Licensing, uploading the package and guide on how to use.
Post-release:
- GIF downloading support.
- Even more refactoring.
- Tweaks and changes for the http handler.
Installation
Python 3.8+
pip install kitsune-nh
How-to-use guide
The main way to instantiate the wrapper class is via an async context manager which takes care of creating and closing the HTTP session internally.
import asyncio
from kitsune import Kitsune
async def main():
async with Kitsune() as client:
...
You can also opt to pass your own HTTP session.
import aiohttp
from kitsune import Kitsune
async def main():
session = aiohttp.ClientSession()
async with Kitsune.from_session(session) as client:
...
Now that you have your instance of the wrapper, using it is fairly simple. Some examples below.
import aiohttp
from kitsune import Kitsune, Popularity, Tag, Artist, Character, Parody, Group
async def main():
async with Kitsune(loop = your_loop) as client: # Passing your own loop
# Wrapper methods
gallery = await client.fetch_gallery(312781)
galleries = await client.fetch_galleries([312781, 31286, 9294])
related = await client.fetch_related(312781)
random_gallery = await client.fetch_random()
comments = await client.fetch_comments(gallery.id)
homepage = await client.fetch_homepage()
shelf = await client.search(Tag["kitsune"], popularity = Popularity.ALL_TIME)
await client.download(shelf, "/home/acertig/Pictures")
More examples and explanations can be found on the documentation.
Special thanks to hentai-chan for sharing the API endpoints. They were necessary for this async version of the wrapper to work. You can check his own sync wrapper here: https://github.com/hentai-chan/hentai
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
Built Distribution
File details
Details for the file kitsune-nh-0.0.7.tar.gz
.
File metadata
- Download URL: kitsune-nh-0.0.7.tar.gz
- Upload date:
- Size: 21.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0cf31b8084fa7cbf6027522e1eb652bcb27f3ff63c90fdb54aa5f8c8bb4afcb2 |
|
MD5 | 25240593b832d200736cba4d610f65cd |
|
BLAKE2b-256 | 30560d5a45b4c9c9495a10bd83bfc8fa9ca3b88cb9f641295667a7bbfd83adcb |
File details
Details for the file kitsune_nh-0.0.7-py3-none-any.whl
.
File metadata
- Download URL: kitsune_nh-0.0.7-py3-none-any.whl
- Upload date:
- Size: 21.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ddcc8603bad78f6f9491458e7074dbebdddf6c5afcf40ec85da9b551c83bc1e9 |
|
MD5 | 397ea3c50ee8cf653dcd964c3f746e0f |
|
BLAKE2b-256 | 27bf0358adeb73d8dd2543a68d6d9d9d6f9ceb25904f43f371499c603189c478 |