UNPKG

novel-opds-now

Version:

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

57 lines 1.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.putEpubFileInfo = exports.getEpubFileInfo = void 0; const tslib_1 = require("tslib"); const index_1 = require("../util/index"); const bluebird_1 = (0, tslib_1.__importDefault)(require("bluebird")); const fetch_1 = (0, tslib_1.__importDefault)(require("../fetch")); const db_api_1 = require("@demonovel/db-api"); const util_1 = require("@demonovel/db-api/lib/util"); function getEpubFileInfo(_siteID, _novelID) { let { siteID, novelID } = (0, index_1.handleArgvList)(_siteID, _novelID); let timeout = 20 * 1000; return new bluebird_1.default((resolve, reject) => { let max = siteID.length * novelID.length; let i = 0; function _resolve(e) { i++; if (e && e.error === false) { return resolve(e.data); } if (i >= max) { return reject(e); } } function _reject(e) { i++; if (i >= max) { return reject(e); } } siteID.forEach(siteID => { novelID.forEach(novelID => { let url = (0, util_1.newFileURL)(siteID, novelID); (0, fetch_1.default)(url.href, { timeout, }) .then(v => v.json()) .then(_resolve) .catch(_reject); }); }); }) .timeout(timeout + 5 * 1000); } exports.getEpubFileInfo = getEpubFileInfo; function putEpubFileInfo(siteID, novelID, data) { return (0, db_api_1.putFileRecord)({ siteID, novelID, data, }) .tapCatch(e => { console.error(`putEpubFileInfo`, `上傳資料時發生錯誤`, e); }); } exports.putEpubFileInfo = putEpubFileInfo; //# sourceMappingURL=index.js.map