@sugarcube/plugin-twitter
Version:
Query the Twitter API as a SugarCube plugin.
50 lines (39 loc) • 1.33 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 _twitter = require("./twitter");
var _assertions = require("./assertions");
const querySource = "twitter_query";
const searchPlugin = (envelope, {
log,
cfg
}) => {
const queries = _core.envelope.queriesByType(querySource, envelope);
log.debug(`Searching for ${queries.join(", ")}.`);
return (0, _dashp.flowP)([(0, _twitter.search)(cfg, log), (0, _dashp.tapP)(rs => log.info(`Fetched ${(0, _fp.size)(rs)} search results.`)), rs => _core.envelope.concatData(rs, envelope)], queries);
};
const plugin = _core.plugin.liftManyA2([_assertions.assertCredentials, searchPlugin]);
plugin.desc = "Search the Twitter API for a search term or hashtag.";
plugin.argv = {
"twitter.language": {
type: "string",
nargs: 1,
desc: "Limit tweets to a languag, specified as language code, e.g. pt."
},
"twitter.geocode": {
type: "string",
nargs: 1,
desc: "Limit tweets located within a given radius of the given geo" + " location, e.g. 37.781157 -122.398720 1km"
}
};
plugin.source = {
name: querySource,
desc: "A search term"
};
var _default = plugin;
exports.default = _default;