getAllPages(function(err, comments) { if (err || !comments) { return console.error('Error getting comments of talk thread.', err); } var msg = eliza.getInitial(), lastUser = ''; for (var i=0; i < comments.length; i++) { if (comments[i].user.login !== config.user) { msg = eliza.transform(comments[i].body); } lastUser = comments[i].user.login; } if (lastUser !== config.user) { gh.issues.createComment({ user: THREAD.user, repo: THREAD.repo, number: THREAD.number, body: msg }); } });
module.exports = function(config, gh) { console.log("Initializing talk."); var eliza = new ElizaBot(); // returns all results of a paginated function function getAllPages(cb, n, results) { if(!results) { results = []; } if(!n) { n = 0; } gh.issues.getComments({ user: THREAD.user, repo: THREAD.repo, number: THREAD.number, page: n, per_page: 100, // jshint ignore:line }, function(err, res) { if(err || !res) { return cb(err); } results = results.concat(res); // if we got to the end of the results, return them if(res.length < 100) { return cb(null, results); } // otherwise keep getting more pages recursively getAllPages(cb, n+1, results); }); } return { speak: function() { getAllPages(function(err, comments) { if (err || !comments) { return console.error('Error getting comments of talk thread.', err); } var msg = eliza.getInitial(), lastUser = ''; for (var i=0; i < comments.length; i++) { if (comments[i].user.login !== config.user) { msg = eliza.transform(comments[i].body); } lastUser = comments[i].user.login; } if (lastUser !== config.user) { gh.issues.createComment({ user: THREAD.user, repo: THREAD.repo, number: THREAD.number, body: msg }); } }); } }; };