Skip to content

Commit

Permalink
4sq is in
Browse files Browse the repository at this point in the history
  • Loading branch information
clintandrewhall committed Aug 29, 2010
1 parent d64086f commit 788b6ba
Show file tree
Hide file tree
Showing 9 changed files with 156 additions and 91 deletions.
1 change: 1 addition & 0 deletions config/log4js-config.js
Expand Up @@ -5,6 +5,7 @@
"ROUTES-USER" : "ALL",
"AUTH-MONGO" : "ALL",
"TWITTER-MONGO" : "ALL",
"GITHUB-MONGO" : "ALL",
"USER-MONGO" : "DEBUG"
}
}
9 changes: 2 additions & 7 deletions lib/datatypes.js
Expand Up @@ -31,12 +31,9 @@ datatypes = {

function fixTimeZones(tzo, acts) {
var ctzo = new Date().getTimezoneOffset()/60;
sys.log("Client: " + ctzo + ", User: " + tzo);
ctzo = (tzo - ctzo) * (1000*60*60);
for(var i = 0; i < acts.length; i++) {
sys.log("Before " + acts[i].date);
acts[i].date = new Date(new Date(acts[i].date) - ctzo);
sys.log("After " + acts[i].date);
}
return acts;
}
Expand All @@ -48,14 +45,13 @@ datatypeFunctions = {
});
},

processAndSortActions : function(tzo, acts) {
processAndSortActions : function(tzo, acts, callback) {
acts = fixTimeZones(tzo, acts);
this.sortActions(acts);
var start = new Date(acts[0].date), startDay = start.getDay(), result = [], items = [];

for(var i = 0; i < acts.length; i++) {
var act = acts[i], ad = new Date(act.date), adDay = ad.getDay();
sys.log("START: " + startDay + ", ad: " + adDay);

if(adDay == startDay) {
items.push(act);
Expand All @@ -70,8 +66,7 @@ datatypeFunctions = {
startDay = start.getDay();
}
}
sys.log(sys.inspect(result));
return result;
callback(result);
}
};

Expand Down
25 changes: 22 additions & 3 deletions lib/providers/foursquare-mongodb.js
Expand Up @@ -57,16 +57,35 @@ FoursquareProvider = function() {

function getCheckins(cred, boundary, callback) {
if(!cred) {
logger.error("No credentials.");
callback(null, null);
}
else {
oa.getProtectedResource("http://api.foursquare.com/v1/history?l=250", "GET", cred.oauth.token, cred.oauth.secret, function (error, data, response) {
oa.getProtectedResource("http://api.foursquare.com/v1/history.json?l=100", "GET", cred.oauth.token, cred.oauth.secret, function (error, data, response) {
if (error) {
logger.error("Error in OA.");
callback(error);
}
else {
var checkins = JSON.parse(data), valid = [];
callback(null, data);
var checkins = JSON.parse(data).checkins, valid = [], start = new Date(checkins[0].created).getDay(), track = 0;
for(var i = 0; i < checkins.length && track < boundary; i++) {
var checkin = checkins[i], day = new Date(checkin.created).getDay();
if(day == start) {
valid.push(new dt.action("foursquare", "checkin", checkin.created, checkin.venue.name, ""));
}
else {
track++;
if(track < boundary) {
start = day;
valid.push(new dt.action("foursquare", "checkin", checkin.created, checkin.venue.name, ""));
}
else {
break;
}
}
}
logger.debug("Total Checkins: " + checkins.length + "; total within boundary: " + valid.length);
callback(null, valid);
}
});
}
Expand Down
75 changes: 50 additions & 25 deletions lib/providers/github-mongodb.js
Expand Up @@ -4,7 +4,13 @@ require.paths.unshift("../../lib");
var sys = require("sys"),
GitHubApi = require("github/lib/github").GitHubApi,
config = require("config-dev").config,
githubapi = new GitHubApi(true);
githubapi = new GitHubApi(true),
log4js = require('log4js'),
dt = require('datatypes').datatypes,
df = require('datatypes').datatypeFunctions;

log4js.configure("./config/log4js-config.js");
var logger = log4js.getLogger("GITHUB-MONGO");

GithubProvider = function() {

Expand Down Expand Up @@ -101,32 +107,72 @@ GithubProvider = function() {
function getCreds(user) {
var cred = null;
for(var i = 0; i < user.creds.length; i++) {
if(user.creds[i].service == "foursquare") {
if(user.creds[i].service == "github") {
cred = user.creds[i];
break;
}
}
return cred;
}


function getNkoRepositoriesCommits(cred, callback) {
getNkoRepositories(function(error, repositories) {
if(error) {
callback(error);
}
else {
for (var i=0; i < repositories.length; i++){
repository = repositories[i];
var results = [];
githubapi.getCommitApi().getBranchCommits("nko", repository.name, "master", function(error, commit) {
if(error) {
callback(error);
}
else {
for(var i = 0; i < commit.length; i++) {
var c = commit[i];

var date = c.committed_date, split = date.split("T"),
ymd = split[0].split("-"), t = split[1].split("-"), hms = t[0].split(":");

date = new Date(ymd[0], ymd[1], ymd[2], hms[0], hms[1], hms[2]);

if(c.committer.login == cred.name) {
results.push(dt.action("github", "commit", date, c.message, c.url));
}
}
//logger.debug(sys.inspect(results));
callback(null, results);
}
});
}
}
});
}

function getUserRepositoriesCommits(cred, user, callback) {
if(!cred) {
logger.error("No credentials.");
callback(null, null);
}
else {
getUserRepositories(user, function(error, repositories) {
if(error) {
logger.error(error.message);
callback(error);
}
else {
for (var i=0; i < repositories.length; i++){
repository = repositories[i];
logger.debug("Repository: " + sys.inspect(repository));
githubapi.getCommitApi().getBranchCommits(cred.name, repository.name, "master", function(error, commit) {
if(error) {
sys.log(sys.inspect(repository.name));
logger.error(sys.inspect(repository.name));
callback(error);
}
else {
logger.debug("Commits: " + sys.inspect(commit));
callback(null, commit);
}
});
Expand All @@ -146,27 +192,6 @@ GithubProvider = function() {
}
});
}

function getNkoRepoitoriesCommits(callback) {
getNkoRepositories(function(error, repositories) {
if(error) {
callback(error);
}
else {
for (var i=0; i < repositories.length; i++){
repository = repositories[i]
githubapi.getCommitApi().getBranchCommits("nko", repository.name, "master", function(error, commit) {
if(error) {
callback(error);
}
else {
callback(null, commit);
}
});
}
}
});
}

return {
"getCreds" : getCreds,
Expand All @@ -177,7 +202,7 @@ GithubProvider = function() {
"getUserRepositoryCommits" : getUserRepositoryCommits,
"getUserRepositoriesCommits" : getUserRepositoriesCommits,
"getNkoRepositories" : getNkoRepositories,
"getNkoRepoitoriesCommits" : getNkoRepoitoriesCommits
"getNkoRepositoriesCommits" : getNkoRepositoriesCommits
}
};

Expand Down
3 changes: 0 additions & 3 deletions lib/providers/twitter-mongodb.js
Expand Up @@ -98,14 +98,11 @@ TwitterProvider = function() {

for(var i = 0; i < tweets.length && track < boundary; i++) {
var tweet = tweets[i], day = new Date(tweet.created_at).getDay();
logger.debug("Day: " + day + ", start: " + start + ", track: " + track);
if(day == start) {
valid.push(new dt.action("twitter", "tweet", tweet.created_at, tweet.text, "http://www.twitter.com/" + cred.name + "/status/" + tweet.id));
}
else {
logger.debug("Moving to the next day.");
track++;
logger.debug("track: " + track + ", boundary: " + boundary);
if(track < boundary) {
start = day;
valid.push(new dt.action("twitter", "tweet", tweet.created_at, tweet.text, "http://www.twitter.com/" + cred.name + "/status/" + tweet.id));
Expand Down
16 changes: 10 additions & 6 deletions lib/providers/user-mongodb.js
Expand Up @@ -291,28 +291,32 @@ UserProvider = function() {
logger.debug("EXITING: UserProvider.getUserByCredentials");
}

function refreshUserData(user, twitterProvider, githubProvider, foursquareProvider, callback) {
function refreshUserData(req, user, twitterProvider, githubProvider, foursquareProvider, callback) {

logger.debug("ENTERING: refreshUserData");
if(!user.actions) {
user.actions = {};
}

twitterProvider.getWeekTweets(twitterProvider.getTwitterCreds(user), function(error, tweets) {
foursquareProvider.getWeekCheckins(foursquareProvider.getCreds(user), function(error, checkins) {
githubProvider.getUserRepositoriesCommits(githubProvider.getCreds(user), user, function(error, commits) {
//githubProvider.getNkoRepositoriesCommits(githubProvider.getCreds(user), function(error, commits) {
//logger.debug("ENTERING: getNkoRepositoriesCommits");
if(tweets) {
user.actions.tweets = tweets;
}
if(checkins) {
user.actions.checkins = checkins;
}
if(commits) {
user.actions.commits = commits;
}
//if(commits) {
// user.actions.commits = commits;
//}

save(user, function(error, user) {
setCurrentUser(req, user);
callback(null, user);
});
});
//});
});
});
}
Expand Down

0 comments on commit 788b6ba

Please sign in to comment.