novel-opds-now
Version:
按需生成 epub,此模組不使用排程任務來生成 epub
57 lines • 2.56 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.getPubsubPeers = exports.pubsubSubscribe = exports.pubsubPublish = exports.pubsubPublishEpub = exports.pubsubUnSubscribe = exports.EPUB_TOPIC = void 0;
const tslib_1 = require("tslib");
const logger_1 = (0, tslib_1.__importDefault)(require("debug-color2/logger"));
const handler_1 = require("./handler");
const bluebird_1 = (0, tslib_1.__importDefault)(require("bluebird"));
const get_mixin_peers_1 = require("@lazy-ipfs/get-mixin-peers");
exports.EPUB_TOPIC = 'novel-opds-now';
async function pubsubUnSubscribe(ipfs) {
return ipfs.pubsub.unsubscribe(exports.EPUB_TOPIC, handler_1.pubsubHandler)
.then(r => logger_1.default.debug(`[IPFS]`, `[pubsub.unsubscribe]`, `unsubscribed from ${exports.EPUB_TOPIC}`))
.catch(e => logger_1.default.warn(`[IPFS]`, `[pubsub.unsubscribe]`, String(e)));
}
exports.pubsubUnSubscribe = pubsubUnSubscribe;
async function pubsubPublishEpub(ipfs, { siteID, novelID, ...data }, peers) {
let msgData = {
...data,
siteID,
novelID,
};
msgData.data = {
...msgData.data,
cid: msgData.data.cid.toString(),
};
return pubsubPublish(ipfs, msgData, peers);
}
exports.pubsubPublishEpub = pubsubPublishEpub;
async function pubsubPublish(ipfs, data, peers) {
return Promise.resolve(peers).then((peers) => {
if (data && !(data.peerID && data.type)) {
logger_1.default.debug(`[IPFS]`, `[pubsubPublish]`, data, peers === null || peers === void 0 ? void 0 : peers.length);
}
return ipfs
.pubsub
.publish(exports.EPUB_TOPIC, Buffer.from(JSON.stringify({
...data,
peers: peers !== null && peers !== void 0 ? peers : data.peers,
})));
})
.catch(e => logger_1.default.warn(`[IPFS]`, `[pubsubPublish]`, String(e)));
}
exports.pubsubPublish = pubsubPublish;
function pubsubSubscribe(ipfs) {
return bluebird_1.default.resolve(ipfs.pubsub.subscribe(exports.EPUB_TOPIC, handler_1.pubsubHandler))
.then(r => logger_1.default.debug(`[IPFS]`, `[pubsub.subscribe]`, `subscribed to ${exports.EPUB_TOPIC}`))
.catch(e => logger_1.default.warn(`[IPFS]`, `[pubsub.subscribe]`, String(e)));
}
exports.pubsubSubscribe = pubsubSubscribe;
function getPubsubPeers(ipfs) {
return (0, get_mixin_peers_1.ipfsPubsubPeers)(ipfs, exports.EPUB_TOPIC)
.catch(e => {
return null;
});
}
exports.getPubsubPeers = getPubsubPeers;
//# sourceMappingURL=index.js.map
;