@sugarcube/plugin-instagram
Version:
A SugarCube plugin to query Instagram.
41 lines (32 loc) • 1.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _fp = require("lodash/fp");
var _dashp = require("dashp");
var _core = require("@sugarcube/core");
var _instagram = require("./instagram");
const querySource = "instagram_user";
const plugin = (envelope, {
log,
cfg
}) => {
const queries = _core.envelope.queriesByType(querySource, envelope);
const postCount = (0, _fp.get)("instagram.post_count", cfg);
log.debug(`Found ${(0, _fp.size)(queries)} queries.`);
return (0, _dashp.flow)([(0, _dashp.flatmap)(u => (0, _dashp.flow)([(0, _instagram.feed)(postCount), (0, _dashp.tap)(xs => log.info(`Fetched ${(0, _fp.size)(xs)} posts for ${u}'s feed.`))])(u)), (0, _dashp.tap)(rs => {
const c = (0, _fp.size)(queries);
log.info(`Fetched ${(0, _fp.size)(rs)} posts for ${c} feed${c > 1 ? "s" : ""}.`);
}), _dashp.Future.map(rs => _core.envelope.concatData(rs, envelope))], queries);
};
plugin.desc = "Fetches posts from an Instagram feed.";
plugin.argv = {
"instagram.post_count": {
default: 100,
nargs: 1,
desc: "Number of posts to fetch."
}
};
var _default = plugin;
exports.default = _default;