bagood / lustpress

Other (93.93%)
Markdown (6.07%)

.dockerignore

ci: tdd ci: tdd

2023-04-18T11:36:31+07:00

.env.schema

ci: tdd ci: tdd

2023-04-18T11:36:31+07:00

.eslintignore

ci: tdd ci: tdd

2023-04-18T11:36:31+07:00

.eslintrc.json

ci: tdd ci: tdd

2023-04-18T11:36:31+07:00

.github

ci: sunset workflows for node 14.x, use 16 instead (#7)

2023-04-20T02:40:00+07:00

.gitignore

docs: add documentation and update endpoint list

2023-04-18T14:36:25+07:00

CLOSING_REMARKS.md

docs(CLOSING_REMARKS): add Alternative-links url (#6)

2023-04-20T02:29:18+07:00

CODE_OF_CONDUCT.md

ci: tdd ci: tdd

2023-04-18T11:36:31+07:00

CONTRIBUTING.md

ci: tdd ci: tdd

2023-04-18T11:36:31+07:00

Dockerfile

ci: tdd ci: tdd

2023-04-18T11:36:31+07:00

LICENSE

docs: add documentation and update endpoint list

2023-04-18T14:36:25+07:00

README.md

ci: sunset workflows for node 14.x, use 16 instead (#7)

2023-04-20T02:40:00+07:00

SECURITY.md

ci: tdd ci: tdd

2023-04-18T11:36:31+07:00

fly.toml

ci: add separate testing cases for each site ci: add separate testing cases for each site

2023-04-18T13:13:28+07:00

package.json

fix(removeHtmlTagWithoutSpace): proper multiple tags slicing (#5) * removeHtmlTagWithoutSpace * pre release

2023-04-20T02:14:52+07:00

src

ci: sunset workflows for node 14.x, use 16 instead (#7)

2023-04-20T02:40:00+07:00

test

ci: sunset workflows for node 14.x, use 16 instead (#7)

2023-04-20T02:40:00+07:00

tsconfig.json

docs: add documentation and update endpoint list

2023-04-18T14:36:25+07:00

Lustpress stand for Lust and Express, rebuild from Jandapress with completely different approach.
The motivation of this project is to bring you an actionable data related to pornhub and other adult videos with gather, similar design pattern, endpoint bindings and consistent structure in mind.

Playground
Contributing
Report Issues


The problem

Even official API is exists, they were lack and bad behavior, every single site has own structure and different way to interacts with.
Instead making lot of abstraction and enumerating them manually, You can rely on lustpress to make less of pain. The current state is FREE to use, all anonymous usage is allowed no authentication and CORS enabled.

The solution

Don't make it long, make it short, all processed through single rest

Features

  • Ratelimiting and throttling
  • Gather the most adult videos on the internet
  • Objects taken are consistent structure
  • 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, does not hit the API (if exists)

Lustpress avaibility

Features availability that Lustpress has

Site Status Get Search Random Related
pornhub pornhub Yes Yes Yes Yes
xnxx xnxx Yes Yes Yes Yes
redtube redtube Yes Yes Yes Yes
xvideos xvideos Yes Yes Yes Yes
xhamster xhamster Yes Yes Yes Yes
youporn youporn Yes Yes Yes Yes

Prerequisites

To handle several requests from each website, You will also need Redis for persistent caching, free tier is available on Redis Labs, You can also choose another adapters as we using keyv Key-value storage with support for multiple backends. When you choosing your own adapter, all data must be stored with <Buffer> type.

Installation

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

# railway, fly.dev, heroku, vercel or any free service
RAILWAY = sinkaroid

# default port
PORT = 3000

# backend storage, default is redis, if not set it will consume memory storage
REDIS_URL = redis://default:somenicepassword@redis-666.c10.us-east-6-6.ec666.cloud.redislabs.com:1337

# ttl expire cache (in X hour)
EXPIRE_CACHE = 1

# you must identify your origin, if not set it will use default
USER_AGENT = "lustpress/1.6.1 Node.js/16.9.1"

Docker

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

Docker (your own)

docker run -d \
  --name=lustpress \
  -p 3000:3000 \
  -e REDIS_URL='redis://default:somenicepassword@redis-666.c10.us-east-6-6.ec666.cloud.redislabs.com:1337' \
  -e EXPIRE_CACHE='1' \
  -e USER_AGENT='lustpress/1.6.1 Node.js/16.9.1' \
  ghcr.io/sinkaroid/lustpress:latest

Manual

git clone https://github.com/sinkaroid/lustpress.git
  • Install dependencies
    • npm install / yarn install
  • Lustpress production
    • npm run start:prod
  • Lustpress testing and hot reload
    • npm run start:dev

Running tests

Lustpress testing

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

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

Playground

https://sinkaroid.github.io/lustpress

  • These parameter?: means is optional

  • / : index page

PornHub

The missing piece of pornhub.com - https://sinkaroid.github.io/lustpress/#api-pornhub

Xnxx

The missing piece of xnxx.com - https://sinkaroid.github.io/lustpress/#api-xnxx

RedTube

The missing piece of redtube.com - https://sinkaroid.github.io/lustpress/#api-redtube

Xvideos

The missing piece of xvideos.com - https://sinkaroid.github.io/lustpress/#api-xvideos

Xhamster

The missing piece of xhamster.com - https://sinkaroid.github.io/lustpress/#api-xhamster

YouPorn

The missing piece of youporn.com - https://sinkaroid.github.io/lustpress/#api-youporn

JavHD

The missing piece of javhd.com - TBA

  • /javhd : javhd api
    • get, takes parameters : TBD
    • search, takes parameters : TBD
    • related, takes parameters : TBD
    • random
    • sort parameters on search
      • TBD
    • Example
      • TBD

Status response

"success": true, or "success": false,

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 Lustpress 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

en_US/lʌstˈprɛs/ — "lust" stand for this project and "press" for express.

Client libraries / Wrappers

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

Acknowledgements

I thank you to all the Scathach's supporter who made this project exists :gajah_ngecrot:

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.

MIT License

Copyright (c) 2022 sinkaroid.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

クローン


このレポジトリについて

RESTful and experimental API for PornHub and other porn sites

1

1

0


最終コミット

ci: sunset workflows for node 14.x, use 16 instead (#7)
2023-04-20T02:40:00+07:00

リリース

作成中・・・

寄付

作成中・・・