From 749760344f1d1fb210d3eb3193509c0f467c45ed Mon Sep 17 00:00:00 2001 From: Rajarshee Chatterjee Date: Thu, 24 Dec 2020 20:32:15 +0530 Subject: [PATCH] Add all_novels route --- api/all_novels.js | 37 +++++++++++++++++++++++++++++++++++++ api/novel.js | 16 ++++++---------- server.js | 1 + 3 files changed, 44 insertions(+), 10 deletions(-) create mode 100644 api/all_novels.js diff --git a/api/all_novels.js b/api/all_novels.js new file mode 100644 index 0000000..a0d44e7 --- /dev/null +++ b/api/all_novels.js @@ -0,0 +1,37 @@ +const express = require("express"); +const cheerio = require("cheerio"); +const request = require("request"); + +const router = express.Router(); + +const baseUrl = "https://boxnovel.com/novel/"; + +router.get("/novels/:pageNo/", (req, res) => { + orderBy = req.query.o; + pageNo = req.params.pageNo; + let novels = []; + + url = `${baseUrl}/page/${pageNo}/?m_orderby=${orderBy}`; + + request(url, (err, response, body) => { + if (err) throw err; + + $ = cheerio.load(body); + + $(".page-item-detail").each(function (result) { + novelName = $(this).find("h5 > a").text(); + novelCover = $(this).find("img").attr("src"); + novelUrl = $(this).find("h5 > a").attr("href").replace(baseUrl, ""); + novel = { + novelName: novelName, + novelCover: novelCover, + novelUrl: novelUrl, + }; + + novels.push(novel); + }); + res.json(novels); + }); +}); + +module.exports = router; diff --git a/api/novel.js b/api/novel.js index e6c4727..b8fe8cf 100644 --- a/api/novel.js +++ b/api/novel.js @@ -20,15 +20,7 @@ router.get("/novel/:novelUrl", (req, res) => { .replace(/[\t\n]/g, "") .trim(); - // authorName = $(".author-content") - // .text() - // .replace(/[\t\n]/g, "") - // .trim(); - - // artistName = $(".artist-content") - // .text() - // .replace(/[\t\n]/g, "") - // .trim(); + novelCover = $(".summary_image > a > img").attr("src"); let novelDetails = {}; @@ -47,6 +39,8 @@ router.get("/novel/:novelUrl", (req, res) => { novelDetails[detailName] = detail; }); + novelSummary = $(".c_000").text(); + let novelChapters = []; $(".wp-manga-chapter").each(function (result) { @@ -62,13 +56,15 @@ router.get("/novel/:novelUrl", (req, res) => { .replace(/[\t\n]/g, "") .trim(); - chapterUrl = $(this).find("a").attr("href"); + chapterUrl = $(this).find("a").attr("href").replace(baseUrl, ""); novelChapters.push({ chapterName, releaseDate, chapterUrl }); }); novel = { novelName, + novelCover, + novelSummary, novelDetails, novelChapters, }; diff --git a/server.js b/server.js index d3b4231..2eeabed 100644 --- a/server.js +++ b/server.js @@ -20,6 +20,7 @@ app.use("/api/", require("./api/latest")); app.use("/api/", require("./api/novel")); app.use("/api/", require("./api/search")); app.use("/api/", require("./api/chapter")); +app.use("/api/", require("./api/all_novels")); const PORT = process.env.PORT || 5000;