From 3ccfca65e4822888c9d673c28a713ba48dd776d0 Mon Sep 17 00:00:00 2001 From: Marcin Majewski Date: Tue, 6 Jul 2021 01:43:20 +0200 Subject: [PATCH] Added Syosetu (#38) * Added basics * Syosetu extension working * Syosetu search works * Syosetu done * Finishing Syosetu Closes #37 * Changed localizations of covers --- index.js | 125 +++--- sources.js | 650 +++++++++++++++--------------- src/jp/syosetu/Syosetu.js | 11 + src/jp/syosetu/SyosetuScrapper.js | 283 +++++++++++++ src/jp/syosetu/icon.png | Bin 0 -> 14579 bytes src/jp/syosetu/not_found.png | Bin 0 -> 73694 bytes 6 files changed, 689 insertions(+), 380 deletions(-) mode change 100644 => 100755 index.js mode change 100644 => 100755 sources.js create mode 100755 src/jp/syosetu/Syosetu.js create mode 100755 src/jp/syosetu/SyosetuScrapper.js create mode 100644 src/jp/syosetu/icon.png create mode 100644 src/jp/syosetu/not_found.png diff --git a/index.js b/index.js old mode 100644 new mode 100755 index 955838b..6bb63d9 --- a/index.js +++ b/index.js @@ -1,61 +1,64 @@ -const express = require("express"); -const sources = require("./sources"); - -const app = express(); - -app.use( - express.json({ - extended: false, - }) -); - -app.get("/", (req, res) => - res.json({ - Author: "@rajarsheechatterjee", - Version: "1.0.0", - Github: "https://github.com/rajarsheechatterjee/lnreader-extensions", - }) -); - -// English -app.get("/api/", (req, res) => res.json(sources)); -app.use("/api/1/", require("./src/en/boxnovel/BoxNovel")); -app.use("/api/2/", require("./src/en/readlightnovel/ReadLightNovel")); -app.use("/api/3/", require("./src/en/fastnovel/FastNovel")); -app.use("/api/4/", require("./src/en/readnovelfull/ReadNovelFull")); -app.use("/api/5/", require("./src/en/mtlnovel/MTLNovel")); -app.use("/api/6/", require("./src/en/novelhall/Novelhall")); -app.use("/api/7/", require("./src/en/wuxiaworld/WuxiaWorld")); -app.use("/api/8/", require("./src/en/novelfull/NovelFull")); -app.use("/api/9/", require("./src/en/noveltrench/NovelTrench")); -app.use("/api/10/", require("./src/en/vipnovel/VipNovel")); -app.use("/api/11/", require("./src/en/kisslightnovels/KissLightNovels")); -app.use("/api/12/", require("./src/en/wuxiaworldsite/WuxiaWorldSite")); -app.use("/api/13/", require("./src/en/freewebnovel/FreeWebNovel")); -app.use("/api/14/", require("./src/en/jpmtl/JPMTL")); -app.use("/api/15/", require("./src/en/lightnovelpub/LightNovelPub")); -app.use("/api/16/", require("./src/en/wuxiaworldco/WuxiaWorldCo")); -app.use("/api/17/", require("./src/en/tapread/TapRead")); -app.use("/api/18/", require("./src/en/novelupdatescc/NovelUpdatesCc")); -app.use("/api/19/", require("./src/en/readlightnovelcc/ReadLightNovelCc")); -app.use("/api/20/", require("./src/en/wuxiaworldcloud/WuxiaWorldCloud")); -app.use("/api/21/", require("./src/en/woopread/WoopRead")); -app.use("/api/22/", require("./src/en/foxaholic/Foxaholic")); -app.use("/api/27/", require("./src/en/comrademao/ComradeMao")); -app.use("/api/33/", require("./src/en/novelpassion/NovelPassion")); -app.use("/api/34/", require("./src/en/royalroad/RoyalRoad")); -app.use("/api/35/", require("./src/en/scribblehub/ScribbleHub")); - -// Spanish -app.use("/api/23/", require("./src/es/tunovelaligera/Tunovelaligera")); -app.use("/api/24/", require("./src/es/skynovels/Skynovels")); -app.use("/api/25/", require("./src/es/einherjarproject/EinherjarProject")); -app.use("/api/26/", require("./src/es/novelasligera/NovelasLigera")); -app.use("/api/28/", require("./src/es/yuukitls/YuukiTls")); -app.use("/api/29/", require("./src/es/hasutl/Hasutl")); -app.use("/api/30/", require("./src/es/oasistranslations/OasisTranslations")); -app.use("/api/31/", require("./src/es/novelawuxia/NovelaWuxia")); - -const PORT = process.env.PORT || 5000; - -app.listen(PORT, () => console.log(`Server started on port ${PORT}`)); +const express = require("express"); +const sources = require("./sources"); + +const app = express(); + +app.use( + express.json({ + extended: false, + }) +); + +app.get("/", (req, res) => + res.json({ + Author: "@rajarsheechatterjee", + Version: "1.0.0", + Github: "https://github.com/rajarsheechatterjee/lnreader-extensions", + }) +); + +// English +app.get("/api/", (req, res) => res.json(sources)); +app.use("/api/1/", require("./src/en/boxnovel/BoxNovel")); +app.use("/api/2/", require("./src/en/readlightnovel/ReadLightNovel")); +app.use("/api/3/", require("./src/en/fastnovel/FastNovel")); +app.use("/api/4/", require("./src/en/readnovelfull/ReadNovelFull")); +app.use("/api/5/", require("./src/en/mtlnovel/MTLNovel")); +app.use("/api/6/", require("./src/en/novelhall/Novelhall")); +app.use("/api/7/", require("./src/en/wuxiaworld/WuxiaWorld")); +app.use("/api/8/", require("./src/en/novelfull/NovelFull")); +app.use("/api/9/", require("./src/en/noveltrench/NovelTrench")); +app.use("/api/10/", require("./src/en/vipnovel/VipNovel")); +app.use("/api/11/", require("./src/en/kisslightnovels/KissLightNovels")); +app.use("/api/12/", require("./src/en/wuxiaworldsite/WuxiaWorldSite")); +app.use("/api/13/", require("./src/en/freewebnovel/FreeWebNovel")); +app.use("/api/14/", require("./src/en/jpmtl/JPMTL")); +app.use("/api/15/", require("./src/en/lightnovelpub/LightNovelPub")); +app.use("/api/16/", require("./src/en/wuxiaworldco/WuxiaWorldCo")); +app.use("/api/17/", require("./src/en/tapread/TapRead")); +app.use("/api/18/", require("./src/en/novelupdatescc/NovelUpdatesCc")); +app.use("/api/19/", require("./src/en/readlightnovelcc/ReadLightNovelCc")); +app.use("/api/20/", require("./src/en/wuxiaworldcloud/WuxiaWorldCloud")); +app.use("/api/21/", require("./src/en/woopread/WoopRead")); +app.use("/api/22/", require("./src/en/foxaholic/Foxaholic")); +app.use("/api/27/", require("./src/en/comrademao/ComradeMao")); +app.use("/api/33/", require("./src/en/novelpassion/NovelPassion")); +app.use("/api/34/", require("./src/en/royalroad/RoyalRoad")); +app.use("/api/35/", require("./src/en/scribblehub/ScribbleHub")); + +// Spanish +app.use("/api/23/", require("./src/es/tunovelaligera/Tunovelaligera")); +app.use("/api/24/", require("./src/es/skynovels/Skynovels")); +app.use("/api/25/", require("./src/es/einherjarproject/EinherjarProject")); +app.use("/api/26/", require("./src/es/novelasligera/NovelasLigera")); +app.use("/api/28/", require("./src/es/yuukitls/YuukiTls")); +app.use("/api/29/", require("./src/es/hasutl/Hasutl")); +app.use("/api/30/", require("./src/es/oasistranslations/OasisTranslations")); +app.use("/api/31/", require("./src/es/novelawuxia/NovelaWuxia")); + +// Japanese +app.use("/api/36", require("./src/jp/syosetu/Syosetu")); + +const PORT = process.env.PORT || 5000; + +app.listen(PORT, () => console.log(`Server started on port ${PORT}`)); diff --git a/sources.js b/sources.js old mode 100644 new mode 100755 index 6870d44..a307a20 --- a/sources.js +++ b/sources.js @@ -1,319 +1,331 @@ -extensions = [ - /** - * English - */ - - { - sourceId: 1, - sourceUrl: "https://boxnovel.com/", - sourceName: "BoxNovel", - sourceCover: - "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/boxnovel/icon.png?raw=true", - sourceLanguage: "English", - status: 1, - }, - { - sourceId: 2, - sourceUrl: "https://www.readlightnovel.org/", - sourceName: "ReadLightNovel", - sourceCover: - "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/readlightnovel/icon.png?raw=true", - sourceLanguage: "English", - status: 1, - }, - { - sourceId: 3, - sourceUrl: "https://fastnovel.net/", - sourceName: "FastNovel", - sourceCover: - "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/fastnovel/icon.png?raw=true", - sourceLanguage: "English", - status: 0, - }, - { - sourceId: 4, - sourceUrl: "https://readnovelfull.com/", - sourceName: "ReadNovelFull", - sourceCover: - "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/readnovelfull/icon.png?raw=true", - sourceLanguage: "English", - status: 1, - }, - { - sourceId: 5, - sourceUrl: "https://www.mtlnovel.com/", - sourceName: "MTLNovel", - sourceCover: - "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/mtlnovel/icon.png?raw=true", - sourceLanguage: "English", - status: 1, - }, - { - sourceId: 6, - sourceUrl: "https://www.novelhall.com/", - sourceName: "NovelHall", - sourceCover: - "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/novelhall/icon.png?raw=true", - sourceLanguage: "English", - status: 1, - }, - { - sourceId: 7, - sourceUrl: "https://www.wuxiaworld.com/", - sourceName: "WuxiaWorld", - sourceCover: - "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/wuxiaworld/icon.png?raw=true", - sourceLanguage: "English", - status: 1, - }, - { - sourceId: 8, - sourceUrl: "https://novelfull.com/", - sourceName: "NovelFull", - sourceCover: - "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/novelfull/icon.png?raw=true", - sourceLanguage: "English", - status: 1, - }, - { - sourceId: 9, - sourceUrl: "https://noveltrench.com/", - sourceName: "NovelTrench", - sourceCover: - "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/noveltrench/icon.png?raw=true", - sourceLanguage: "English", - status: 1, - }, - { - sourceId: 10, - sourceUrl: "https://vipnovel.com/", - sourceName: "VipNovel", - sourceCover: - "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/vipnovel/icon.png?raw=true", - sourceLanguage: "English", - status: 1, - }, - { - sourceId: 11, - sourceUrl: "https://kisslightnovels.info/", - sourceName: "KissLightNovels", - sourceCover: - "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/kisslightnovels/icon.png?raw=true", - sourceLanguage: "English", - status: 1, - }, - { - sourceId: 12, - sourceUrl: "https://wuxiaworldsite.co/", - sourceName: "WuxiaWorldSite", - sourceCover: - "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/wuxiaworldsite/icon.png?raw=true", - sourceLanguage: "English", - status: 1, - }, - { - sourceId: 13, - sourceUrl: "https://freewebnovel.com/", - sourceName: "FreeWebNovel", - sourceCover: - "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/freewebnovel/icon.png?raw=true", - sourceLanguage: "English", - status: 1, - }, - { - sourceId: 14, - sourceUrl: "https://jpmtl.com/", - sourceName: "JPMTL", - sourceCover: - "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/jpmtl/icon.png?raw=true", - sourceLanguage: "English", - status: 1, - }, - { - sourceId: 15, - sourceUrl: "https://www.lightnovelpub.com/", - sourceName: "LightNovelPub", - sourceCover: - "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/lightnovelpub/icon.png?raw=true", - sourceLanguage: "English", - status: 1, - }, - { - sourceId: 16, - sourceUrl: "https://www.wuxiaworld.co/", - sourceName: "WuxiaWorld.co", - sourceCover: - "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/wuxiaworldco/icon.png?raw=true", - sourceLanguage: "English", - status: 1, - }, - { - sourceId: 17, - sourceUrl: "http://www.tapread.com/", - sourceName: "TapRead", - sourceCover: - "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/tapread/icon.png?raw=true", - sourceLanguage: "English", - status: 1, - }, - { - sourceId: 18, - sourceUrl: "https://www.novelupdates.cc/", - sourceName: "NovelUpdates.cc", - sourceCover: - "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/novelupdatescc/icon.png?raw=true", - sourceLanguage: "English", - status: 1, - }, - { - sourceId: 19, - sourceUrl: "https://m.readlightnovel.cc/", - sourceName: "ReadLightNovel.cc", - sourceCover: - "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/readlightnovelcc/icon.png?raw=true", - sourceLanguage: "English", - status: 1, - }, - { - sourceId: 20, - sourceUrl: "http://wuxiaworld.cloud/", - sourceName: "WuxiaWorld.cloud", - sourceCover: - "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/wuxiaworldcloud/icon.png?raw=true", - sourceLanguage: "English", - status: 1, - }, - { - sourceId: 21, - sourceUrl: "https://woopread.com/", - sourceName: "WoopRead", - sourceCover: - "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/woopread/icon.png?raw=true", - sourceLanguage: "English", - status: 1, - }, - { - sourceId: 22, - sourceUrl: "https://foxaholic.com/", - sourceName: "Foxaholic", - sourceCover: - "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/foxaholic/icon.png?raw=true", - sourceLanguage: "English", - status: 1, - }, - { - sourceId: 27, - sourceUrl: "https://comrademao.com/", - sourceName: "ComradeMao", - sourceCover: - "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/comrademao/icon.png?raw=true", - sourceLanguage: "English", - status: 1, - }, - { - sourceId: 33, - sourceUrl: "https://www.novelpassion.com/", - sourceName: "NovelPassion", - sourceCover: - "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/novelpassion/icon.png?raw=true", - sourceLanguage: "English", - status: 1, - }, - { - sourceId: 34, - sourceUrl: "https://www.royalroad.com/", - sourceName: "Royal Road", - sourceCover: - "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/royalroad/icon.png?raw=true", - sourceLanguage: "English", - status: 1, - }, - { - sourceId: 35, - sourceUrl: "https://www.scribblehub.com/", - sourceName: "Scribble Hub", - sourceCover: - "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/scribblehub/icon.png?raw=true", - sourceLanguage: "English", - status: 1, - }, - - /** - * Spanish - */ - - { - sourceId: 23, - sourceUrl: "https://tunovelaligera.com/", - sourceName: "Tunovelaligera", - sourceCover: - "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/es/tunovelaligera/icon.png?raw=true", - sourceLanguage: "Spanish", - status: 1, - }, - { - sourceId: 24, - sourceUrl: "https://www.skynovels.net/", - sourceName: "SkyNovels", - sourceCover: - "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/es/skynovels/icon.png?raw=true", - sourceLanguage: "Spanish", - status: 1, - }, - { - sourceId: 25, - sourceUrl: "https://einherjarproject.net/", - sourceName: "EinherjarProject", - sourceCover: - "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/es/einherjarproject/icon.png?raw=true", - sourceLanguage: "Spanish", - status: 1, - }, - { - sourceId: 26, - sourceUrl: "https://novelasligera.com/", - sourceName: "NovelasLigera", - sourceCover: - "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/es/novelasligera/icon.png?raw=true", - sourceLanguage: "Spanish", - status: 1, - }, - { - sourceId: 28, - sourceUrl: "https://yuukitls.com/", - sourceName: "YuukiTls", - sourceCover: - "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/es/yuukitls/icon.png?raw=true", - sourceLanguage: "Spanish", - status: 1, - }, - { - sourceId: 29, - sourceUrl: "https://hasutl.wordpress.com/", - sourceName: "Hasu Translations", - sourceCover: - "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/es/hasutl/icon.png?raw=true", - sourceLanguage: "Spanish", - status: 1, - }, - { - sourceId: 30, - sourceUrl: "https://oasistranslations.wordpress.com/", - sourceName: "Oasis Translations", - sourceCover: - "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/es/oasistranslations/icon.png?raw=true", - sourceLanguage: "Spanish", - status: 1, - }, - { - sourceId: 31, - sourceUrl: "http://www.novelawuxia.com/", - sourceName: "Novela Wuxia", - sourceCover: - "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/es/novelawuxia/icon.png?raw=true", - sourceLanguage: "Spanish", - status: 1, - }, -]; - -module.exports = extensions; +extensions = [ + /** + * English + */ + + { + sourceId: 1, + sourceUrl: "https://boxnovel.com/", + sourceName: "BoxNovel", + sourceCover: + "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/boxnovel/icon.png?raw=true", + sourceLanguage: "English", + status: 1, + }, + { + sourceId: 2, + sourceUrl: "https://www.readlightnovel.org/", + sourceName: "ReadLightNovel", + sourceCover: + "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/readlightnovel/icon.png?raw=true", + sourceLanguage: "English", + status: 1, + }, + { + sourceId: 3, + sourceUrl: "https://fastnovel.net/", + sourceName: "FastNovel", + sourceCover: + "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/fastnovel/icon.png?raw=true", + sourceLanguage: "English", + status: 0, + }, + { + sourceId: 4, + sourceUrl: "https://readnovelfull.com/", + sourceName: "ReadNovelFull", + sourceCover: + "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/readnovelfull/icon.png?raw=true", + sourceLanguage: "English", + status: 1, + }, + { + sourceId: 5, + sourceUrl: "https://www.mtlnovel.com/", + sourceName: "MTLNovel", + sourceCover: + "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/mtlnovel/icon.png?raw=true", + sourceLanguage: "English", + status: 1, + }, + { + sourceId: 6, + sourceUrl: "https://www.novelhall.com/", + sourceName: "NovelHall", + sourceCover: + "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/novelhall/icon.png?raw=true", + sourceLanguage: "English", + status: 1, + }, + { + sourceId: 7, + sourceUrl: "https://www.wuxiaworld.com/", + sourceName: "WuxiaWorld", + sourceCover: + "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/wuxiaworld/icon.png?raw=true", + sourceLanguage: "English", + status: 1, + }, + { + sourceId: 8, + sourceUrl: "https://novelfull.com/", + sourceName: "NovelFull", + sourceCover: + "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/novelfull/icon.png?raw=true", + sourceLanguage: "English", + status: 1, + }, + { + sourceId: 9, + sourceUrl: "https://noveltrench.com/", + sourceName: "NovelTrench", + sourceCover: + "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/noveltrench/icon.png?raw=true", + sourceLanguage: "English", + status: 1, + }, + { + sourceId: 10, + sourceUrl: "https://vipnovel.com/", + sourceName: "VipNovel", + sourceCover: + "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/vipnovel/icon.png?raw=true", + sourceLanguage: "English", + status: 1, + }, + { + sourceId: 11, + sourceUrl: "https://kisslightnovels.info/", + sourceName: "KissLightNovels", + sourceCover: + "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/kisslightnovels/icon.png?raw=true", + sourceLanguage: "English", + status: 1, + }, + { + sourceId: 12, + sourceUrl: "https://wuxiaworldsite.co/", + sourceName: "WuxiaWorldSite", + sourceCover: + "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/wuxiaworldsite/icon.png?raw=true", + sourceLanguage: "English", + status: 1, + }, + { + sourceId: 13, + sourceUrl: "https://freewebnovel.com/", + sourceName: "FreeWebNovel", + sourceCover: + "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/freewebnovel/icon.png?raw=true", + sourceLanguage: "English", + status: 1, + }, + { + sourceId: 14, + sourceUrl: "https://jpmtl.com/", + sourceName: "JPMTL", + sourceCover: + "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/jpmtl/icon.png?raw=true", + sourceLanguage: "English", + status: 1, + }, + { + sourceId: 15, + sourceUrl: "https://www.lightnovelpub.com/", + sourceName: "LightNovelPub", + sourceCover: + "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/lightnovelpub/icon.png?raw=true", + sourceLanguage: "English", + status: 1, + }, + { + sourceId: 16, + sourceUrl: "https://www.wuxiaworld.co/", + sourceName: "WuxiaWorld.co", + sourceCover: + "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/wuxiaworldco/icon.png?raw=true", + sourceLanguage: "English", + status: 1, + }, + { + sourceId: 17, + sourceUrl: "http://www.tapread.com/", + sourceName: "TapRead", + sourceCover: + "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/tapread/icon.png?raw=true", + sourceLanguage: "English", + status: 1, + }, + { + sourceId: 18, + sourceUrl: "https://www.novelupdates.cc/", + sourceName: "NovelUpdates.cc", + sourceCover: + "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/novelupdatescc/icon.png?raw=true", + sourceLanguage: "English", + status: 1, + }, + { + sourceId: 19, + sourceUrl: "https://m.readlightnovel.cc/", + sourceName: "ReadLightNovel.cc", + sourceCover: + "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/readlightnovelcc/icon.png?raw=true", + sourceLanguage: "English", + status: 1, + }, + { + sourceId: 20, + sourceUrl: "http://wuxiaworld.cloud/", + sourceName: "WuxiaWorld.cloud", + sourceCover: + "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/wuxiaworldcloud/icon.png?raw=true", + sourceLanguage: "English", + status: 1, + }, + { + sourceId: 21, + sourceUrl: "https://woopread.com/", + sourceName: "WoopRead", + sourceCover: + "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/woopread/icon.png?raw=true", + sourceLanguage: "English", + status: 1, + }, + { + sourceId: 22, + sourceUrl: "https://foxaholic.com/", + sourceName: "Foxaholic", + sourceCover: + "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/foxaholic/icon.png?raw=true", + sourceLanguage: "English", + status: 1, + }, + { + sourceId: 27, + sourceUrl: "https://comrademao.com/", + sourceName: "ComradeMao", + sourceCover: + "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/comrademao/icon.png?raw=true", + sourceLanguage: "English", + status: 1, + }, + { + sourceId: 33, + sourceUrl: "https://www.novelpassion.com/", + sourceName: "NovelPassion", + sourceCover: + "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/novelpassion/icon.png?raw=true", + sourceLanguage: "English", + status: 1, + }, + { + sourceId: 34, + sourceUrl: "https://www.royalroad.com/", + sourceName: "Royal Road", + sourceCover: + "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/royalroad/icon.png?raw=true", + sourceLanguage: "English", + status: 1, + }, + { + sourceId: 35, + sourceUrl: "https://www.scribblehub.com/", + sourceName: "Scribble Hub", + sourceCover: + "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/en/scribblehub/icon.png?raw=true", + sourceLanguage: "English", + status: 1, + }, + + /** + * Spanish + */ + + { + sourceId: 23, + sourceUrl: "https://tunovelaligera.com/", + sourceName: "Tunovelaligera", + sourceCover: + "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/es/tunovelaligera/icon.png?raw=true", + sourceLanguage: "Spanish", + status: 1, + }, + { + sourceId: 24, + sourceUrl: "https://www.skynovels.net/", + sourceName: "SkyNovels", + sourceCover: + "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/es/skynovels/icon.png?raw=true", + sourceLanguage: "Spanish", + status: 1, + }, + { + sourceId: 25, + sourceUrl: "https://einherjarproject.net/", + sourceName: "EinherjarProject", + sourceCover: + "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/es/einherjarproject/icon.png?raw=true", + sourceLanguage: "Spanish", + status: 1, + }, + { + sourceId: 26, + sourceUrl: "https://novelasligera.com/", + sourceName: "NovelasLigera", + sourceCover: + "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/es/novelasligera/icon.png?raw=true", + sourceLanguage: "Spanish", + status: 1, + }, + { + sourceId: 28, + sourceUrl: "https://yuukitls.com/", + sourceName: "YuukiTls", + sourceCover: + "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/es/yuukitls/icon.png?raw=true", + sourceLanguage: "Spanish", + status: 1, + }, + { + sourceId: 29, + sourceUrl: "https://hasutl.wordpress.com/", + sourceName: "Hasu Translations", + sourceCover: + "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/es/hasutl/icon.png?raw=true", + sourceLanguage: "Spanish", + status: 1, + }, + { + sourceId: 30, + sourceUrl: "https://oasistranslations.wordpress.com/", + sourceName: "Oasis Translations", + sourceCover: + "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/es/oasistranslations/icon.png?raw=true", + sourceLanguage: "Spanish", + status: 1, + }, + { + sourceId: 31, + sourceUrl: "http://www.novelawuxia.com/", + sourceName: "Novela Wuxia", + sourceCover: + "https://github.com/rajarsheechatterjee/lnreader-extensions/blob/main/src/es/novelawuxia/icon.png?raw=true", + sourceLanguage: "Spanish", + status: 1, + }, + + /** + * Japanese + */ + { + sourceId: 36, + sourceUrl: "https://syosetsu.com", + sourceName: "Syosetsu", + sourceCover: "https://github.com/skillgg/lnreader-sources/blob/main/src/jp/syosetu/icon.png?raw=true", + sourceLanguage: "Japanese", + status: 0 + }, +]; + +module.exports = extensions; diff --git a/src/jp/syosetu/Syosetu.js b/src/jp/syosetu/Syosetu.js new file mode 100755 index 0000000..94ac731 --- /dev/null +++ b/src/jp/syosetu/Syosetu.js @@ -0,0 +1,11 @@ +const express = require("express"); +const syosetuNovelScrapper = require("./SyosetuScrapper"); + +const router = express.Router(); + +router.get("/novels/", syosetuNovelScrapper.novelsScraper); +router.get("/novel/:novelUrl", syosetuNovelScrapper.novelScraper); +router.get("/novel/:novelUrl/:chapterUrl", syosetuNovelScrapper.chapterScraper); +router.get("/search/", syosetuNovelScrapper.searchScraper); + +module.exports = router; diff --git a/src/jp/syosetu/SyosetuScrapper.js b/src/jp/syosetu/SyosetuScrapper.js new file mode 100755 index 0000000..061164b --- /dev/null +++ b/src/jp/syosetu/SyosetuScrapper.js @@ -0,0 +1,283 @@ +// scraper and cheerio for scrapping from site +const { scraper } = require("../../helper"); +const cheerio = require("cheerio"); + +const baseUrl = "https://syosetu.com"; // base url for syosetu.com + +// get given page of search (if pagenum is 0 or >100 (max possible on site) see first page) +const searchUrl = (pagenum, order) => { + return `https://yomou.syosetu.com/search.php?order=${order || "hyoka"}${ + !isNaN((pagenum = parseInt(pagenum))) // check if pagenum is a number + ? `&p=${pagenum <= 1 || pagenum > 100 ? "1" : pagenum}` // check if pagenum is between 1 and 100 + : "" // if isn't don't set ?p + }`; +}; + +// get the Syosetu ID of the chapter +const getLastPartOfUrl = (url) => + (ex = /.*(?=\/)(.{2,})$/.exec(url)) ? ex[1].replace(/\//g, "") : null; + +// get novelUrl from Syosetu ID +const getNovelUrl = (id) => `https://ncode.syosetu.com/${id}`; + +// get chapterUrl from Syosetu ID and chapter ID +const getChapterUrl = (id, chn) => + `https://ncode.syosetu.com/${id}${chn === "oneshot" ? "" : `/${chn}`}`; + +// Because syosetu does not have any covers, I did a replacement for them +const novelCover = "https://raw.githubusercontent.com/skillgg/lnreader-sources/main/src/jp/syosetu/not_found.png"; + +// ID of this extension +const extensionId = 36; + +// Name of this extension +const sourceName = "Syosetu"; + +// there are 20 mangas per page +// this is number of pages loaded in the first "batch" of loads +// TOOD: in-app dynamic loading on scroll +const maxPageLoad = 3; + +const novelsScraper = async (req, res) => { + // array of all the novels + let novels = []; + // returns list of novels from given page + let getNovelsFromPage = async (pagenumber) => { + // load page + console.log(searchUrl(pagenumber)); + const body = await scraper(searchUrl(pagenumber || null)); + console.log("Loaded"); + // Cheerio it! + const cheerioQuery = cheerio.load(body, { decodeEntities: false }); + + console.log("Parsed"); + + let pageNovels = []; + // find class=searchkekka_box + cheerioQuery(".searchkekka_box").each(function (i, e) { + // get div with link and name + const novelDIV = cheerioQuery(this).find(".novel_h"); + // get link element + const novelA = novelDIV.children()[0]; + // add new novel to array + pageNovels.push({ + novelName: novelDIV.text(), // get the name + novelUrl: getLastPartOfUrl(novelA.attribs.href), // get last part of the link + extensionId, + novelCover, // TODO: IDK what to do about covers... On Syo they don't have them + }); + }); + console.log("Read"); + // return all novels from this page + return pageNovels; + }; + + // counter of loaded pages + let pagesLoaded = 0; + do { + // always load first one + novels.push(...(await getNovelsFromPage(pagesLoaded + 1))); + pagesLoaded++; + console.log("Added"); + } while (pagesLoaded < maxPageLoad); // check if we should load more + + /** Use + * novels.push(...(await getNovelsFromPage(pageNumber))) + * if you want to load more + */ + + // respond with novels! + res.json(novels); + console.log("Finished!"); +}; + +const novelScraper = async (req, res) => { + const novelUrl = getNovelUrl(req.params.novelUrl); + + let chapters = []; + + const body = await scraper(novelUrl); + const cheerioQuery = cheerio.load(body, { decodeEntities: false }); + + // create novel object + let novel = { + extensionId, + sourceName, + sourceUrl: novelUrl, + novelUrl: req.params.novelUrl, + novelName: cheerioQuery(".novel_title").text(), + novelCover, + }; + + // Get all the chapters + const cqGetChapters = cheerioQuery(".novel_sublist2"); + console.log(novelUrl, cqGetChapters.length); + if (cqGetChapters.length !== 0) { + // has more than 1 chapter + novel.novelSummary = cheerioQuery("#novel_ex") + .text() + .replace(/<\s*br.*?>/g, "\n"); + cqGetChapters.each(function (i, e) { + const chapterA = cheerioQuery(this).find("a"); + const [chapterName, releaseDate, chapterUrl] = [ + // set the variables + chapterA.text(), + cheerioQuery(this) + .find("dt") // get title + .text() // get text + .replace(/(.)/g, "") // remove "(edited)" mark + .trim(), // trim spaces + getLastPartOfUrl(chapterA.attr("href")), + ]; + chapters.push({ chapterName, releaseDate, chapterUrl }); + }); + } else { + /** + * Because there are oneshots on the site, they have to be treated with special care + * that's what pisses me off in Shosetsu app. They have this extension, + * but every oneshot is set as "there are no chapters" and all contents are thrown into the description!! + */ + // get summary for oneshot chapter + novel.novelSummary = cheerio // because there is no summary anywhere on the novel page, we have to take it from search page for a one-shot manga + .load(await scraper(searchUrl() + `&word=${novel.novelName}`), { + decodeEntities: false, + })(".searchkekka_box") // find the manga in search.php + .first() + .find(".ex") + .text() + .replace(/\s{2,}/g, "\n"); // get the description as text + // add single chapter + chapters.push({ + chapterName: novel.novelName, + releaseDate: cheerioQuery("head") + .find("meta[name='WWWC']") + .attr("content"), // get date from metadata + chapterUrl: "oneshot", // set chapterUrl to oneshot so that chapterScraper knows it's a one-shot + }); + } + + novel.novelChapters = chapters; + + res.json(novel); + console.log("Finished!"); +}; + +let chapterScraper = async (req, res) => { + const novelUrl = req.params.novelUrl; + const chapterUrl = req.params.chapterUrl; + + const url = getChapterUrl(novelUrl, chapterUrl); // get Url + + // create cheerioQuery + const cheerioQuery = cheerio.load(await scraper(url), { + decodeEntities: false, + }); + + // create chapter data structure + let chapter = { + extensionId: 1, + novelUrl, + chapterUrl, + chapterName: "", + chapterText: cheerioQuery("#novel_honbun") // get chapter text + .text() + .replace(/<\s*br.*?>/g, "") + .replace(/\n{2,}/g, "\n"), // remove double breaklines + nextChapter: null, + prevChapter: null, + }; + + if (chapterUrl === "oneshot") + // oneshot get name + chapter.chapterName = cheerioQuery("#novel_title").text(); + else { + // single chapter + + // get name + chapter.chapterName = cheerioQuery(".novel_subtitle").first().text(); + + // get next/prev buttons + const chapterButtons = cheerioQuery( + "#novel_contents .novel_bn" + ).first(); + if (chapterButtons.length === 1) { + const button = chapterButtons.find("a"); + if (button.text().match(/次/)) + chapter.nextChapter = getLastPartOfUrl(button.attr("href")); + else chapter.prevChapter = getLastPartOfUrl(button.attr("href")); + } else { + const firstButton = chapterButtons.find("a").first(); + const lastButton = chapterButtons.find("a").last(); + chapter.prevChapter = getLastPartOfUrl(firstButton.attribs.href); + chapter.nextChapter = getLastPartOfUrl(lastButton.attribs.href); + } + } + + res.json(chapter); + console.log("Finished!"); +}; + +let searchScraper = async (req, res) => { + const searchTerm = req.query.s; + const orderBy = req.query.o; + + // array of all the novels + let novels = []; + + let isNext = true; + + // returns list of novels from given page + let getNovelsFromPage = async (pagenumber) => { + // load page + const body = await scraper( + searchUrl(pagenumber || null, req.query.o || null) + + `&word=${searchTerm}` + ); + // Cheerio it! + const cheerioQuery = cheerio.load(body, { decodeEntities: false }); + + if (cheerioQuery(".nextlink").length === 0) isNext = false; + + let pageNovels = []; + // find class=searchkekka_box + cheerioQuery(".searchkekka_box").each(function (i, e) { + // get div with link and name + const novelDIV = cheerioQuery(this).find(".novel_h"); + // get link element + const novelA = novelDIV.children()[0]; + // add new novel to array + pageNovels.push({ + novelName: novelDIV.text(), // get the name + novelUrl: getLastPartOfUrl(novelA.attribs.href), // get last part of the link + extensionId, + novelCover, // TODO: IDK what to do about covers... On Syo they don't have them + }); + }); + // return all novels from this page + return pageNovels; + }; + + // counter of loaded pages + let pagesLoaded = 0; + do { + // always load first one + novels.push(...(await getNovelsFromPage(pagesLoaded + 1))); + pagesLoaded++; + } while (pagesLoaded < maxPageLoad && isNext); // check if we should load more + + /** Use + * novels.push(...(await getNovelsFromPage(pageNumber))) + * if you want to load more + */ + + // respond with novels! + res.json(novels); + console.log("Finished!"); +}; + +module.exports = mtlNovelScraper = { + novelsScraper, + novelScraper, + chapterScraper, + searchScraper, +}; diff --git a/src/jp/syosetu/icon.png b/src/jp/syosetu/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a516abff04fb8ab26d3b7b70b4f8f54569287ab8 GIT binary patch literal 14579 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 Q|1u&aCNEkcY~cTY0B3;#u>b%7 literal 0 HcmV?d00001 diff --git a/src/jp/syosetu/not_found.png b/src/jp/syosetu/not_found.png new file mode 100644 index 0000000000000000000000000000000000000000..fd89a4a9baa7fe789f92dec8324c1460d1e5d599 GIT binary patch literal 73694 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 z

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 OP7?#mn^?Wuzx^NY9tg?+ literal 0 HcmV?d00001