@scinorandex/nhentai-wrapper
TypeScript icon, indicating that this package has built-in type declarations

0.1.2 • Public • Published

nhentai-wrapper

A promise-based nhentai API wrapper for degenerate developers alike

Example Usage

import { NhentaiWrapper, Options } from "@scinorandex/nhentai-wrapper";
const Nhentai = new NhentaiWrapper();

(async () => {
	const options: Options = { includePages: false, includeTags: false };
	const result = await Nhentai.searchDoujin(177013, options);
	console.log(result);
})();

Expected output:

{
  id: 177013,
  media_id: '987560',
  title: {
    english: '[ShindoLA] METAMORPHOSIS (Complete) [English]',
    japanese: '',
    pretty: 'METAMORPHOSIS'
  },
  images: {
    cover: { t: 'j', w: 350, h: 506 },
    thumbnail: { t: 'j', w: 250, h: 362 }
  },
  scanlator: '',
  upload_date: 1476793729,
  num_pages: 225,
  num_favorites: 44548
}

Options

All the fetching/searching methods of the library take a Partial<> version of this interface

Property Type Description
pagination number The page of results to be retrieved
includePages boolean Dictates if page dimensions will be removed
includeTags boolean Dictates if tags will be removed
sort boolean Dictates if the doujins will be sorted based on num_favorites

Methods

convertTagNameToId

converts a tag from their name to their id

const wrapper = new NhentaiWrapper();
wrapper.convertTagNameToId("unbirth").then((data) => {
	console.log(data); // output is 9116
});

fetchAllDoujins

fetches all the doujin given a tag or a term, limited to the doujinsLimit property

Property Type Description
query string The query string to be used, must be compatible with the type parameter
type "term" or "tag" The type of query to be done
opts Partial<Options> or undefined The options to be used

returns: Promise<QueryResponse>

fetchRelatedDoujins

fetches all the doujins related to a specific doujin, based on their id

Property Type Description
id number the id of the doujin to base the results from
opts Partial<Options> or undefined The options to be used

returns: Promise<RelatedDoujins>

getRandomDoujin

gets a single random doujin. This might take a while to resolve because it uses recursion

Property Type Description
opts Partial<Options> or undefined The options to be used

returns: Promise<Doujin>

searchDoujin

searches for a single doujin based on the id / "nuclear codes"

Property Type Description
id number the id of the doujin to search
opts Partial<Options> or undefined The options to be used

returns: Promise<Doujin | null>

searchTag

searches for a single page of doujins containing a certain tag

Property Type Description
tag string the id of the tag
opts Partial<Options> or undefined The options to be used

returns: Promise<QueryResponse>

searchTerm

searches for a single page of doujins containing a term in their title

Property Type Description
term string the term to be grepped against
opts Partial<Options> or undefined The options to be used

returns: Promise<QueryResponse>

Output Interfaces

These are typed nhentai API responses

Doujin

Represents a single doujin

Property Type Description
id number The nuclear codes
media_id number Internal ID used by nhentai for pages / covers / thumbnails
title Title The titles of the doujin
images Images The dimensions of the images associated with the doujin
scanlator string
upload_date number UNIX Epoch Timestamp of doujin upload date
tags Tag[] or undefined A list of the tags that the doujin has
num_pages number The number of pages that the doujin has
num_favorites number The number of times that the doujin has been favorited

RelatedDoujins

Represents a group of doujins

Property Type Description
result Doujin[] An array of doujins
error string or boolean or undefined Errors encountered by the query

QueryResponse extends RelatedDoujins

Represents a group of doujins with pagination information

Property Type Description
num_pages number The number of queries it takes to fetch all doujins
per_page number The number of doujins that will be fetched per query

TagType

A union type of all possibletag types that nhentai uses

Value: "tag" | "language" | "artist" | "category" | "group" | "parody" | "character"

Tag

Represents a single tag

Property Type Description
id number Internal tag id used by nhentai
type TagType The type of the tag
name string The name of the tag
url string The path of the tag without the domain
count number The number of doujins with this tag

Image

Represents the dimensions of an image

Property Type Description
t string The file extension of the image
w number The width of the image
h number The height of the image

Images

Represents the images of the doujin, such as cover, thumbnails, and pages

Property Type Description
pages Image[] or undefined The pages of the doujin
cover Image The cover of the doujin
thumbnail Image The thumbnail of the doujin (This is used in the doujin browser)

Title

Represents the different titles of the doujin

Property Type
english string
japanese string
pretty string

Package Sidebar

Install

npm i @scinorandex/nhentai-wrapper

Weekly Downloads

1

Version

0.1.2

License

MIT

Unpacked Size

27.9 kB

Total Files

10

Last publish

Collaborators

  • scinorandex