novel-opds-now
Version:
按需生成 epub,此模組不使用排程任務來生成 epub
57 lines • 1.9 kB
JavaScript
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
;