RESTful and experimental API for nhentai and other doujinshi
ファイルへ移動
Indrawan I 0b6ffbd9a6
feat: simulating nhentai request on cloudflare enabled (#17)
* fix apidocs definitions

* add nhentaiStrategy method

* add MaybeError types

* add simulateCookie to janda class

* test case

* env example

* push release
2023-02-11 00:17:45 +07:00
.github ci: generate docs from apidoc definitions (#10) 2022-12-23 10:04:22 +07:00
src feat: simulating nhentai request on cloudflare enabled (#17) 2023-02-11 00:17:45 +07:00
test feat: simulating nhentai request on cloudflare enabled (#17) 2023-02-11 00:17:45 +07:00
.dockerignore ci: dockerize jandapress 2022-12-11 00:12:14 +07:00
.env.schema feat: simulating nhentai request on cloudflare enabled (#17) 2023-02-11 00:17:45 +07:00
.eslintignore style: add eslintignore for compiled files 2022-06-07 19:25:44 +07:00
.eslintrc.json
.gitignore ci: generate docs from apidoc definitions (#10) 2022-12-23 10:04:22 +07:00
CLOSING_REMARKS.md chore: add alternative jandapress deployment (#11) 2022-12-23 10:25:16 +07:00
CODE_OF_CONDUCT.md
CONTRIBUTING.md docs: minor improvements 2022-06-04 05:00:18 +07:00
Dockerfile chore: update docker build 2022-12-14 02:50:31 +07:00
LICENSE
README.md feat: simulating nhentai request on cloudflare enabled (#17) 2023-02-11 00:17:45 +07:00
SECURITY.md
package.json feat: simulating nhentai request on cloudflare enabled (#17) 2023-02-11 00:17:45 +07:00
tsconfig.json fix: proper include path 2022-06-04 05:05:33 +07:00

README.md

jandapress

RESTful and experimental API for the doujinboards

Jandapress was named JCE (Janda Cheerio Express) and definitely depends on them.
The motivation of this project is to bring you an actionable data related doujin with gather in mind.

PlaygroundContributingReport Issues


The problem

You enjoy consume doujin sites to build web applications. There are a lot sites that have effort especially pururin, simply-hentai and etc, not official api available nor public resource that can be used for everyone. Instead making lot of abstraction and enumerating them manually, You can rely on jandapress to make less of pain. The current state is FREE to use, meant all anonymous usage is allowed no aunthentication required and CORS was enabled.

The solution

Features

  • Gather the most doujin sites
  • Objects taken that are consistent structure, almost
  • Objects taken is re-appended to make extendable
  • All in one: get, search, and random methods
  • In the future we may implement JWT authentication
  • Pure scraping, except nh sigh..

Jandapress vs. the whole doujin sites

Features availability that Jandapress has

Site Status Get Search Random
nhentai Nhentai
pururin Pururin
hentaifox Hentaifox
hentai2read Hentai2read
simply-hentai Simply-hentai
asmhentai Asmhentai
3hentai Asmhentai

Prerequisites

NOTE: NodeJS 14.x or higher

To handle several requests from each web, You will also need Redis for persistent caching, free tier is available on Redis Labs, You can also choose another provider as we using keyv Key-value storage with support for multiple backends. All data must be stored in <Buffer> here.

Installation

Rename .env.schema to .env and fill the value with your own.

PORT=3000 ## default port
REDIS_URL=redis://default:somenicepassword@someredishost:1337 ## the database url
EXPIRE_CACHE=1 ## a hour

Nhentai guide

Nhentai was cloudflare protection enabled, If IP and our thoughts against them? You should implement a proxy. Check cookie branch, take a look this workaround Zekfad/nhentai-api/issues/25#issuecomment-1141360074

Docker

docker pull ghcr.io/sinkaroid/jandapress:latest
docker run -p 3000:3000 -d ghcr.io/sinkaroid/jandapress:latest

Manual

git clone https://github.com/sinkaroid/jandapress.git

  • Install dependencies
    • npm install / yarn install
  • Jandapress production
    • npm run build
    • npm run start:prod
  • Jandapress testings
    • npm run start:dev

Running tests

Start the production server

npm run start:prod

Running development server

npm run start:dev

Check the whole sites, It's available for scraping or not

npm run test

Check nhentai It's under cloudflare protection or not

npm run test:cf

Generating playground like swagger from apidoc definition

npm run build:apidoc

To running other tests, you can see object scripts in file package.json

Playground

https://sinkaroid.github.io/jandapress

  • These parameter?: means is optional

  • / : index page

Nhentai

The missing piece of nhentai.net - https://sinkaroid.github.io/jandapress/#api-nhentai

Pururin

The missing piece of pururin.to - https://sinkaroid.github.io/jandapress/#api-pururin

Hentaifox

The missing piece of hentaifox.com - https://sinkaroid.github.io/jandapress/#api-hentaifox

Asmhentai

The missing piece of asmhentai.com - https://sinkaroid.github.io/jandapress/#api-asmhentai

Hentai2read

The missing piece of hentai2read.com - https://sinkaroid.github.io/jandapress/#api-hentai2read

Simply-hentai

The missing piece of simply-hentai.com - https://sinkaroid.github.io/jandapress/#api-simply-hentai

3hentai

The missing piece of 3hentai.net - https://sinkaroid.github.io/jandapress/#api-3hentai

Status response

HTTP/1.1 200 OK
HTTP/1.1 400 Bad Request
HTTP/1.1 500 Fail to get data

Frequently asked questions

Q: The website response is slow

That's unfortunate, This repository was opensource already, You can host and deploy Jandapress with your own instance. Any fixes and improvements will updating to this repo.

Q: I dont want to host my own instance

That's unfortunate, Hit the "Sponsor this project" button, any kind of donations will helps me to funding the development.

Pronunciation

id_ID/jan·da/ — Dewasa dan mengikat; (?)

Client libraries / Wrappers

Seamlessly integrate with the languages you love, simplified the usage, and intelisense definitions on your IDEs

This tool can be freely copied, modified, altered, distributed without any attribution whatsoever. However, if you feel like this tool deserves an attribution, mention it. It won't hurt anybody.

Licence: WTF.