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
(viapackage: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 ofXHR
.- 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
- 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.