UNPKG

novel-opds-now

Version:

按需生成 epub,此模組不使用排程任務來生成 epub

51 lines 2.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createLibraryHandler = void 0; const tslib_1 = require("tslib"); const express_1 = require("express"); const logger_1 = (0, tslib_1.__importDefault)(require("debug-color2/logger")); const index_1 = (0, tslib_1.__importDefault)(require("calibre-server/lib/opds/index")); const db_1 = (0, tslib_1.__importDefault)(require("calibre-server/lib/opds/db")); const search_1 = require("../../../lib/opds/search"); const moment_1 = (0, tslib_1.__importDefault)(require("moment")); function createLibraryHandler(options) { const router = (0, express_1.Router)(); logger_1.default.dir(options.dbList); router.use('/+:dbID/*', async (req, res, next) => { let { dbID } = req.params; if (dbID && options.dbList[dbID]) { logger_1.default.dir({ dbID, name: options.dbList[dbID].name, }); res.setHeader('Content-Type', 'application/xml'); let feed = await (0, db_1.default)(options, { dbID }); (0, search_1.addOpenSearch)(feed, 'calibre'); feed.books.forEach(entry => { var _a; (_a = entry.authors) !== null && _a !== void 0 ? _a : (entry.authors = []); entry.authors.unshift({ name: dbID }); }); res.send(feed.toXML()); } else { if (dbID) { logger_1.default.error(`dbID: ${dbID} 不存在`); } return next(); } }); let opdsIndex = async (req, res, next) => { res.setHeader('Content-Type', 'application/xml'); let feed = await (0, index_1.default)(options); (0, search_1.addOpenSearch)(feed, 'calibre'); feed.updated || (feed.updated = (0, moment_1.default)().startOf('day')); res.send(feed.toXML()); }; router.use('*', opdsIndex); return router; } exports.createLibraryHandler = createLibraryHandler; //# sourceMappingURL=library.js.map