Aiontai package

aiontai.api module

Low level API.

exception aiontai.api.DoujinDoesNotExistError

Bases: NHentaiError

Doujin does noe exist.

exception aiontai.api.EmptyAPIResultError

Bases: NHentaiError

API result is empty.

exception aiontai.api.HTTPError(response: ClientResponse, message: str | None = None)

Bases: NHentaiError

Error from responce.

responce

Responce object.

message

Message about error.

class aiontai.api.NHentaiAPI(client_session: ClientSession)

Bases: object

NHentai low level API.

NHentaiAPIType = ~NHentaiAPIType
async __aenter__() NHentaiAPIType

Open async context manager.

Returns:

Class object.

async __aexit__(_exception_type: Type[BaseException], _exception: BaseException, _traceback: TracebackType) None

Close object from async context manager.

async close() None

Close object.

async get_doujin(doujin_id: int) Dict[str, Any]

Get doujin raw data by ID.

Parameters:

doujin_id – ID of doujin.

Returns:

Doujin raw data from responce.

Raises:
async get_homepage_doujins(page: int = 1) Dict[str, Any]

Get doujins raw data from homepage.

Parameters:

page – Number of page from which we return results. Defaults to 1.

Returns:

Doujins raw data result from responce.

Raises:
async get_random_doujin() Dict[str, Any]

Get random doujin raw data.

Returns:

Doujin raw data from responce.

Raises:

HTTPError – Error from response.

async is_exist(doujin_id: int) bool

Check if doujin exists.

Parameters:

doujin_id – ID of doujin.

Returns:

Doujin is exists.

Raises:

HTTPError – Error from response.

async search(query: str, page: int = 1, sort_by: SortOptions = SortOptions.DATE) Dict[str, Any]

Search doujins raw data result.

Parameters:
  • query – Query for search doujins.

  • page – Number of page from which we return results. Defaults to 1.

  • sort_by – Sort options for search. Defaults to SortOptions.DATE.

Returns:

Doujins raw data result from responce.

Raises:
async search_by_tag(tag_id: int, page: int = 1, sort_by: SortOptions = SortOptions.DATE) Dict[str, Any]

Search doujins raw data result by tag.

Parameters:
  • tag_id – Tag ID for search.

  • page – Number of page from which we return results. Defaults to 1.

  • sort_by – Sort options for search. Defaults to SortOptions.DATE.

Returns:

Doujins raw data result from responce.

Raises:
  • ValueError – If number of page is invalid or tag ID is invalid.

  • EmptyAPIResultError – If api result is empty.

  • HTTPError – Error from response.

exception aiontai.api.NHentaiError

Bases: Exception

Base NHentai api error.

class aiontai.api.SortOptions(value)

Bases: Enum

Enumeration for sort options.

DATE = 'date'
POPULARITY = 'popular'

aiontai.client module

Client (High level API).

class aiontai.client.NHentaiClient(api: NHentaiAPI, conventer: Conventer)

Bases: object

NHentai client (high level API).

NHentaiClientType = ~NHentaiClientType
async __aenter__() NHentaiClientType

Open async context manager.

Returns:

Class object.

async __aexit__(_exception_type: Type[BaseException], _exception: BaseException, _traceback: TracebackType) None

Close object from async context manager.

async close() None

Close object.

async get_doujin(doujin_id: int) Doujin

Get doujin model by ID.

Parameters:

doujin_id – ID of doujin.

Returns:

Doujin model.

Raises:
async get_homepage_doujins(*, page: int = 1) DoujinsResult

Get doujins result model from homepage.

Parameters:

page – Number of page from which we return results. Defaults to 1.

Returns:

Doujins result model.

Raises:
async get_random_doujin() Doujin

Get random doujin model.

Returns:

Doujin model.

Raises:

HTTPError – Error from response.

async is_exist(doujin_id: int) bool

Check if doujin exists.

Parameters:

doujin_id – ID of doujin.

Returns:

Doujin is exists.

Raises:

HTTPError – Error from response.

async search(query: str, *, page: int = 1, sort_by: SortOptions = SortOptions.DATE) DoujinsResult

Search doujins result model.

Parameters:
  • query – Query for search doujins.

  • page – Number of page from which we return results. Defaults to 1.

  • sort_by – Sort options for search. Defaults to api.SortOptions.DATE.

Returns:

Doujins result model.

Raises:
async search_by_tag(tag_id: int, *, page: int = 1, sort_by: SortOptions = SortOptions.DATE) DoujinsResult

Search doujins result model by tag.

Parameters:
  • tag_id – Tag ID for search.

  • page – Number of page from which we return results. Defaults to 1.

  • sort_by – Sort options for search. Defaults to api.SortOptions.DATE.

Returns:

Doujins result model.

Raises:
  • ValueError – If number of page is invalid or tag ID is invalid.

  • EmptyAPIResultError – If api result is empty.

  • HTTPError – Error from response.

aiontai.converter module

Conventer module.

class aiontai.converter.Conventer

Bases: object

Conventer for convert raw data to models.

convert_doujin(raw_data: Dict[str, Any]) Doujin

Convert raw data to doujin model.

Parameters:

raw_data – Model raw data.

Returns:

Doujin model.

convert_doujins_result(raw_data: Dict[str, Any]) DoujinsResult

Convert raw data to doujins result model.

Parameters:

raw_data – Model raw data.

Returns:

Doujins result model.

convert_image(raw_data: Dict[str, Any], name: str, media_id: int) Image

Convert raw data to image model.

Parameters:
  • raw_data – Model raw data.

  • name – Name of image.

  • media_id – Image media id.

Returns:

Image model.

convert_tag(raw_data: Dict[str, Any]) Tag

Convert raw data to tag model.

Parameters:

raw_data – Model raw data.

Returns:

Tag model.

convert_title(raw_data: Dict[str, Any]) Title

Convert raw data to title model.

Parameters:

raw_data – Model raw data.

Returns:

Title model.

aiontai.models module

API Models.

class aiontai.models.Doujin(id: int, media_id: int, title: Title, cover: Image, thumbnail: Image, images: List[Image], tags: List[Tag], pages_count: int, favorites_count: int, scanlator: str, upload_date: datetime)

Bases: DataClassJsonMixin

Doujin model.

__getitem__(index: int) Image

Get page by key.

Parameters:

index – List index.

Returns:

Image model.

Raises:

IndexError – If page index out of range.

__iter__() Iterator[Image]

Pages iterator.

Returns:

Images iterator.

__len__() int

Pages len.

Returns:

Len of images.

cover: Image
favorites_count: int
id: int
images: List[Image]
media_id: int
pages_count: int
scanlator: str
tags: List[Tag]
thumbnail: Image
title: Title
upload_date: datetime
class aiontai.models.DoujinsResult(doujins: List[Doujin], pages_count: int, doujins_per_page: int)

Bases: DataClassJsonMixin

DoujinsResult model.

doujins: List[Doujin]
doujins_per_page: int
pages_count: int
class aiontai.models.Image(name: str, url: str, media_id: int, width: int, height: int, extension: ImageExtension)

Bases: DataClassJsonMixin

Image model.

extension: ImageExtension
height: int
media_id: int
name: str
url: str
width: int
class aiontai.models.ImageExtension(value)

Bases: str, Enum

Enum for image extension.

GIF = 'g'
JPG = 'j'
PNG = 'p'
class aiontai.models.Tag(id: int, count: int, name: str, type: TagType, url: str)

Bases: DataClassJsonMixin

Tag model.

count: int
id: int
name: str
type: TagType
url: str
class aiontai.models.TagType(value)

Bases: str, Enum

Enum for tag type.

ARTIST = 'artist'
CATEGORY = 'category'
CHARACTER = 'character'
GROUP = 'group'
LANGUAGE = 'language'
PARODY = 'parody'
TAG = 'tag'
class aiontai.models.Title(english: str | None, japanese: str | None, pretty: str | None)

Bases: DataClassJsonMixin

Title model.

english: str | None
japanese: str | None
pretty: str | None

aiontai.modules module

Modules for automatic dependencies.

class aiontai.modules.ClientModule

Bases: Module

Module for automatic dependencies.

provide_api(client_session: ClientSession) NHentaiAPI

Provide NHentaiAPI.

Parameters:

client_session – Object required for dependence.

Returns:

Provided object for injector.

provide_client(api: NHentaiAPI) NHentaiClient

Provide NHentaiClient.

Parameters:

api – Object required for dependence.

Returns:

Provided object for injector.

provide_client_session() ClientSession

Provide ClientSession.

Returns:

Provided object for injector.