Files
lnreader-plugins/index.js
T
Rider21 e444031c25 feat: Russian Plugins (#496)
* remade

* Delete dist/Rider21 directory
2023-05-29 09:40:37 +05:30

65 lines
2.1 KiB
JavaScript

require('module-alias/register');
const path = require('path');
const dayjs = require('dayjs')
const express = require('express');
const bodyParser = require('body-parser');
const pluginApi = require('@api/plugins');
const localizedFormat = require('dayjs/plugin/localizedFormat');
const app = express();
const port = 3000;
const host = 'localhost';
app.use(bodyParser.json());
app.use('/static', express.static(path.join(__dirname, 'test_web', 'static')));
app.get('/all_plugins', (req, res) => {
res.json(pluginApi.all_plugins());
});
app.post('/popularNovels/', async (req, res) => {
const filters = req.body['filters'] || {};
const showLatestNovels = req.body['showLatestNovels'] || false
const novels = await pluginApi.popularNovels(req.body['pluginRequirePath'], {showLatestNovels, filters});
res.json(novels);
});
app.post('/searchNovels/', async(req, res) => {
const novels = await pluginApi.searchNovels(req.body['pluginRequirePath'], req.body['searchTerm']);
res.json(novels);
})
app.post('/parseNovelAndChapters/', async(req, res) => {
const sourceNovel = await pluginApi.parseNovelAndChapters(req.body['pluginRequirePath'], req.body['novelUrl']);
res.json(sourceNovel);
})
app.post('/parseChapter/', async(req, res) => {
const chapterText = await pluginApi.parseChapter(req.body['pluginRequirePath'], req.body['chapterUrl']);
res.json(chapterText);
})
app.post('/fetchImage/', async(req, res) => {
const base64 = await pluginApi.fetchImage(req.body['pluginRequirePath'], req.body['url']);
res.json(base64);
})
app.get('/', (req, res) => {
res.sendFile(path.join(__dirname, 'test_web', 'index.html'));
});
app.listen(port, host, () => {
console.log("Testing plugins web listening on http://localhost:3000");
});
//Dayjs localization
const language = Intl?.DateTimeFormat()?.resolvedOptions()?.locale || "en";
require("dayjs/locale/ar");
require("dayjs/locale/de");
require("dayjs/locale/es");
require("dayjs/locale/it");
require("dayjs/locale/pt");
require("dayjs/locale/ru");
require("dayjs/locale/tr");
require("dayjs/locale/uk");
require("dayjs/locale/zh");
dayjs.locale(language);
dayjs.extend(localizedFormat);