novel-opds-now
Version:
按需生成 epub,此模組不使用排程任務來生成 epub
64 lines • 2.89 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.publishAndPokeIPFS = void 0;
const tslib_1 = require("tslib");
const use_1 = require("../use");
const put_1 = require("fetch-ipfs/put");
const ipfs_server_list_1 = require("ipfs-server-list");
const pokeAll_1 = require("../pokeAll");
const bluebird_1 = (0, tslib_1.__importDefault)(require("bluebird"));
const logger_1 = (0, tslib_1.__importDefault)(require("debug-color2/logger"));
const deepEntryListMap_1 = require("../mfs/deepEntryListMap");
function publishAndPokeIPFS(content, options, ...msg) {
var _a, _b;
return bluebird_1.default.props({
ipfs: (_a = options === null || options === void 0 ? void 0 : options.ipfs) !== null && _a !== void 0 ? _a : (0, use_1.getIPFS)().catch(e => null),
timeout: (_b = options === null || options === void 0 ? void 0 : options.timeout) !== null && _b !== void 0 ? _b : 30 * 60 * 1000,
filename: options === null || options === void 0 ? void 0 : options.filename,
content,
options,
})
.then(({ ipfs, timeout, filename, content, options, }) => {
return (0, put_1.publishToIPFSRace)({
path: filename,
content,
}, [
ipfs,
...(0, ipfs_server_list_1.filterList)('API'),
], {
addOptions: {
pin: false,
},
timeout,
})
.tap(async (ret) => {
var _a;
let result;
let cid;
ret.find(settledResult => {
var _a, _b;
let value = (_a = settledResult.value) !== null && _a !== void 0 ? _a : (_b = settledResult.reason) === null || _b === void 0 ? void 0 : _b.value;
if (value === null || value === void 0 ? void 0 : value.length) {
result = value[0];
const resultCID = result.cid.toString();
if (resultCID.length) {
cid = resultCID;
logger_1.default.debug(`[IPFS]`, `publishAndPokeIPFS`, `[${settledResult.status}]`, cid, ...msg);
return true;
}
}
});
let data = {
filename,
};
await ((_a = options === null || options === void 0 ? void 0 : options.cb) === null || _a === void 0 ? void 0 : _a.call(options, cid, ipfs, data, result));
return !options.noPoke && (0, pokeAll_1.pokeAll)(cid, ipfs, data)
.tap(settledResult => {
return (0, pokeAll_1.reportPokeAllSettledResult)(settledResult, cid, data.filename, ...msg);
});
});
})
.tap(deepEntryListMap_1.saveDeepEntryListMapToMixin);
}
exports.publishAndPokeIPFS = publishAndPokeIPFS;
//# sourceMappingURL=publishAndPoke.js.map
;