| import express from "express"; |
| import cors from "cors"; |
| import morgan from "morgan"; |
| import { PORT, CREATOR } from "./config.js"; |
| import latest from "./routes/latest.js"; |
| import detail from "./routes/detail.js"; |
| import chapter from "./routes/chapter.js"; |
| import library from "./routes/library.js"; |
| import genres from "./routes/genres.js"; |
| import search from "./routes/search.js"; |
|
|
| const app = express(); |
| app.use(cors()); |
| app.use(morgan("tiny")); |
| app.disable("x-powered-by"); |
|
|
| app.get("/", (_req, res) => { |
| res.json({ |
| creator: CREATOR, |
| success: true, |
| message: "Komikindo Scraper API", |
| endpoints: { |
| latest: "/comic/komikindo/latest/:page", |
| detail: "/comic/komikindo/detail/:slug", |
| chapter: "/comic/komikindo/chapter/:slug", |
| library: "/comic/komikindo/library?page=&genre=&type=&status=&order=&search=", |
| genres: "/comic/komikindo/genres", |
| search: "/comic/komikindo/search/:query/:page", |
| }, |
| }); |
| }); |
|
|
| app.use("/comic/komikindo/latest", latest); |
| app.use("/comic/komikindo/detail", detail); |
| app.use("/comic/komikindo/chapter", chapter); |
| app.use("/comic/komikindo/library", library); |
| app.use("/comic/komikindo/genres", genres); |
| app.use("/comic/komikindo/search", search); |
|
|
| app.use((_req, res) => { |
| res.status(404).json({ |
| creator: CREATOR, |
| success: false, |
| message: "Endpoint not found", |
| }); |
| }); |
|
|
| app.listen(PORT, "0.0.0.0", () => { |
| console.log(`Komikindo API listening on http://0.0.0.0:${PORT}`); |
| }); |
|
|