Client for nhentai.net undocumented APIs

Features

  • Full model (books, images, tags, comments, users).
  • Search for text query.
  • Search by tag(s).
  • Get random book.
  • Configurable hosts.
  • Support for custom Client (via package:http).
  • Out-of-box HTTP proxy support (configurable via URI).
  • Out-of-box User Agent override and Cookies support.

Notes about web usage

Using this module on web platform is experimental and has some drawbacks:

  • You can't access nhentai directly due to CORS.
    • Workaround: use CORS enabled mirror (for example you can use dev-mirror).
  • API#getRandomBook doesn't work due to limitations of XHR.
  • Proxy isn't supported on web.
  • User Agent override isn't supported.
  • Cookies helper functions aren't supported.

Usage

Import the package:

import 'package:nhentai/nhentai.dart';

Create client instance:

final api = API();

Get the data:

/// Throws if book is not found, or parse failed, see docs.
final Book book = await api.getBook(177013);

// Short book summary
print(
  'Book: $book\n'
  'Artists: ${book.tags.artists.join(', ')}\n'
  'Languages: ${book.tags.languages.join(', ')}\n'
  'Cover: ${book.cover.getUrl(api: api)}\n'
  'First page: ${book.pages.first.getUrl(api: api)}\n'
  'First page thumbnail: ${book.pages.first.thumbnail.getUrl(api: api)}\n',
);

See more usage at example folder.

License

  • ISC License

Libraries

before_request_add_cookies
BeforeRequestCallback generator functions. that helps you to add Cookies to requests.
data_model
Data model library. It contains data models for API objects, such as Books, Tags, Images, Search response bodies and so on.
data_model_prefixed
Prefixed data model library. It contains data models for API objects, such as NHentaiBooks, NHentaiTags, NHentaiImages, NHentaiSearch response bodies and so on.
functions
Functions library.
nhentai
Main library exposing API client and corresponding settings: Hosts, Host and HostType classes.
nhentai_prefixed
Prefixed main library exposing NHentai client and corresponding settings: NHentaiHosts, NHentaiHost and NHentaiHostType classes.