Skip to content

Instantly share code, notes, and snippets.

@fionera
Created June 8, 2016 22:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fionera/af08ed4ecd730fd933f08c7374fcb78c to your computer and use it in GitHub Desktop.
Save fionera/af08ed4ecd730fd933f08c7374fcb78c to your computer and use it in GitHub Desktop.
Twitterbot which tweets when you commit
/**
* Created by fionera on 08.06.16.
*/
request = require("request");
var fs = require("fs");
var Twitter = require('twitter');
var config = require('./config');
var userdata = config.userdata;
var consumer_key = config.consumer_key;
var consumer_secret = config.consumer_secret;
var access_token_key = config.access_token_key;
var access_token_secret = config.access_token_secret;
var client = new Twitter(consumer_key, consumer_secret, access_token_key, access_token_secret);
function requestData(username, repository) {
request('https://api.github.com/repos/' + username + '/' + repository + '/commits', function (error, response, body) {
if (!error && response.statusCode == 200) {
checkNewCommit(username, repository, body);
}
});
}
function checkNewCommit(username, repository, response) {
if (userdata[username][repository].lastamount != undefined && response.length > userdata[username][repository].lastamount) {
//console.log(response[response.length - 1].commit.message);
sendTweet(response[response.length - 1].commit.message);
}
userdata[username][repository].lastamount = response.length;
}
function sendTweet(message) {
client.post('statuses/update', {status: message}, function (error, tweet, response) {
if (error) {
console.log("Error at Sending Tweet");
} else {
console.log("Completed sending Tweet");
}
});
}
function work() {
for (var i = 0; i < userdata.length; i++) {
for (var a = 0; a < userdata[i].repositorys; a++) {
requestData(userdata[i], userdata[i][a]);
}
}
}
setTimeout(work, 60000);
work();
var userdata = [{
"username": "fionera",
"repositorys": ["JavaMailer"],
"lastamount": ""
}];
var consumer_key = "";
var consumer_secret = "";
var access_token_key = "";
var access_token_secret = "";
exports.consumer_key = consumer_key;
exports.consumer_secret = consumer_secret;
exports.access_token_key = access_token_key;
exports.access_token_secret = access_token_secret;
exports.userdata = userdata;
{
"name": "github-twitter-bot",
"version": "0.0.1",
"dependencies": {
"request": "latest",
"twitter": "^1.3.0"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment