Skip to main content

nhentai.net API wrapper for doujins

Project description

forthebadge made-with-python

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.

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

kitsune-nh-0.0.6.tar.gz (21.0 kB view details)

Uploaded Source

Built Distribution

kitsune_nh-0.0.6-py3-none-any.whl (21.0 kB view details)

Uploaded Python 3

File details

Details for the file kitsune-nh-0.0.6.tar.gz.

File metadata

  • Download URL: kitsune-nh-0.0.6.tar.gz
  • Upload date:
  • Size: 21.0 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

Hashes for kitsune-nh-0.0.6.tar.gz
Algorithm Hash digest
SHA256 7f0bd964504a1df81d0bb24362b7546c633d359fc4c0f0275b36719c87314d32
MD5 92097aff648a89ad4e057a3083c68e2a
BLAKE2b-256 2049bf6d86434d04847ce848be1627f576e2302ecaee3171da2132cdcb1f6658

See more details on using hashes here.

File details

Details for the file kitsune_nh-0.0.6-py3-none-any.whl.

File metadata

  • Download URL: kitsune_nh-0.0.6-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

Hashes for kitsune_nh-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 c3a9f472ca25bc20884b1fc19b8cf18874eb3576b0a78d25dc041d4a7650565b
MD5 7c2221cb35ce1e9f75662481c996814b
BLAKE2b-256 d3b0007ac9d035c6efb66d7ee57a70c4972ade47ad07397c9154777211aa0e93

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page