More fixes to streak calculation

This commit is contained in:
terakilobyte
2015-05-05 21:13:46 -04:00
parent 30c4085d21
commit 517c37f633

View File

@ -285,6 +285,7 @@ exports.returnUser = function(req, res, next) {
var tmpLongest = 1; var tmpLongest = 1;
var timeKeys = R.keys(timeObject); var timeKeys = R.keys(timeObject);
user.longestStreak = 0;
for (var i = 1; i <= timeKeys.length; i++) { for (var i = 1; i <= timeKeys.length; i++) {
if (moment(timeKeys[i - 1]).add(1, 'd').toString() if (moment(timeKeys[i - 1]).add(1, 'd').toString()
=== moment(timeKeys[i]).toString()) { === moment(timeKeys[i]).toString()) {
@ -298,18 +299,28 @@ exports.returnUser = function(req, res, next) {
} }
timeKeys = timeKeys.reverse(); timeKeys = timeKeys.reverse();
var today = moment(Date.now()), currStreak = 1; tmpLongest = 1;
if (moment(timeKeys[0]).add(1, 'd').toString === today.toString()) {
for (var i = 2; i <= timeKeys.length; i++) { var today = moment(Date.now()).format('YYYY-MM-DD');
if (moment(timeKeys[i - 1]).add(1, 'd').toString()
=== moment(timeKeys[i]).toString()) { if (moment(today).toString() === moment(timeKeys[0]).toString() ||
currStreak++; moment(today).subtract(1, 'd').toString() ===
moment(timeKeys[0]).toString()) {
for (var i = 1; i <= timeKeys.length; i++) {
if (moment(timeKeys[i - 1]).subtract(1, 'd').toString()
=== moment(timeKeys[i]).toString()) {
debug(timeKeys[i - 1], timeKeys[i]);
tmpLongest++;
if (tmpLongest > user.currentStreak) {
user.currentStreak = tmpLongest;
}
} else { } else {
break; break;
} }
} }
} else {
user.currentStreak = 1;
} }
user.currentStreak = currStreak;
user.save(function(err) { user.save(function(err) {
if (err) { if (err) {