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

nhentai
Main library exposing API client and corresponding settings: Hosts, Host and HostType classes.
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_prefixed
Prefixed main library exposing NHentai client and corresponding settings: NHentaiHosts, NHentaiHost and NHentaiHostType classes.