UNPKG

get-tweets

Version:
48 lines (34 loc) 1.39 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = getTweets; var _twit = require('twit'); var _twit2 = _interopRequireDefault(_twit); var _bignumDec = require('bignum-dec'); var _bignumDec2 = _interopRequireDefault(_bignumDec); var _ramda = require('ramda'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var defaults = { count: 200, trim_user: true, include_rts: true, exclude_replies: false }; function getNextOptions(options, tweets) { return (0, _ramda.isEmpty)(tweets) ? options : (0, _ramda.merge)(options, { max_id: (0, _ramda.pipe)(_ramda.last, (0, _ramda.prop)('id_str'), _bignumDec2.default)(tweets) }); } function accumulate(client, options, tweets) { var nextOptions = getNextOptions(options, tweets); return client.get('statuses/user_timeline', nextOptions).then(function (_ref) { var data = _ref.data; var accumulatedTweets = (0, _ramda.concat)(tweets, data); return (0, _ramda.isEmpty)(data) ? accumulatedTweets : accumulate(client, nextOptions, accumulatedTweets); }); } function getTweets(tokens, username, sinceId) { var client = new _twit2.default(tokens); var options = (0, _ramda.merge)(defaults, { screen_name: username, since_id: sinceId }); return accumulate(client, options, []); } module.exports = exports['default'];