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()

        homepage = await client.fetch_homepage()

        shelf = await client.search(Tag["kitsune"], popularity = Popularity.ALL_TIME)

        comments = await client.fetch_comments(gallery.id)

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.5.tar.gz (21.0 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: kitsune-nh-0.0.5.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.5.tar.gz
Algorithm Hash digest
SHA256 e1ed86d0e4542d19db4c185f53f4776d6a47cc4d04f63bd6a5c509849797e6a8
MD5 a7706e3a1dc9de17332ebd975767c73d
BLAKE2b-256 a5f62c71e99def23f0cc839f1707dd29166241ec5c4722a017bdba9655d1339b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: kitsune_nh-0.0.5-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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 6a51cc8e8f397702326d430b8c5e592262ef6f3b008f89199b4d249e4b9c769f
MD5 8914a461c6bc42a49d03fb36152cf91a
BLAKE2b-256 85e40de1f8db5ef8d4e2c5b0bbefb20927acce24e889f8f90be42ca4697e62cf

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