Properly handle when days roll over to being negative
This commit is contained in:
parent
b2832c7427
commit
c5390c3909
2 changed files with 17 additions and 8 deletions
13
api/app.js
13
api/app.js
|
@ -173,9 +173,14 @@ async function report() {
|
||||||
function predictSpeed(goalDate, goalNumber, currentNumber) {
|
function predictSpeed(goalDate, goalNumber, currentNumber) {
|
||||||
let today = new Date();
|
let today = new Date();
|
||||||
let goal = new Date(goalDate);
|
let goal = new Date(goalDate);
|
||||||
let timeRemaining = Math.abs(goal - today);
|
let timeRemaining = goal - today;
|
||||||
let daysRemaining = Math.ceil(timeRemaining / (1000 * 60 * 60 * 24));
|
let daysRemaining
|
||||||
let neededSpeed = (goalNumber - currentNumber) / daysRemaining;
|
if (timeRemaining >= 0) {
|
||||||
|
daysRemaining = Math.ceil(timeRemaining / (1000 * 60 * 60 * 24));
|
||||||
|
else {
|
||||||
|
daysRemaining = math.floor(timeRemaining / (1000 * 60 * 60 * 24));
|
||||||
|
}
|
||||||
|
let neededSpeed = (goalNumber - currentNumber) / Math.abs(daysRemaining);
|
||||||
return [daysRemaining, neededSpeed];
|
return [daysRemaining, neededSpeed];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -238,4 +243,4 @@ app.event('app_mention', async (body) => {
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
}
|
}
|
||||||
})();
|
})();
|
|
@ -22,19 +22,23 @@ let regularEndQuotes = [
|
||||||
|
|
||||||
function addQuotes(message, rawGoals, rawSpeed) {
|
function addQuotes(message, rawGoals, rawSpeed) {
|
||||||
let start = regularStartQuotes[Math.floor(Math.random() * regularStartQuotes.length)]
|
let start = regularStartQuotes[Math.floor(Math.random() * regularStartQuotes.length)]
|
||||||
let end =regularEndQuotes[Math.floor(Math.random() * regularEndQuotes.length)];
|
let end = regularEndQuotes[Math.floor(Math.random() * regularEndQuotes.length)];
|
||||||
let goals = Math.ceil(rawGoals[1]);
|
let goals = Math.ceil(rawGoals[1]);
|
||||||
let days = rawGoals[0];
|
let days = rawGoals[0];
|
||||||
let speed = Math.round(rawSpeed);
|
let speed = Math.round(rawSpeed);
|
||||||
let diff = goals - speed;
|
let diff = goals - speed;
|
||||||
if (goals <= 0) {
|
if (goals <= 0) {
|
||||||
end = `:tada: YOU DID IT, MY LOYAL SERVANTS! YOU'VE REACHED OUR GOAL ON TIME! :tada: But there's still loads of time before we reach a million-- let's keep up the pace!`
|
end = `:tada: YOU DID IT, MY LOYAL SERVANTS! YOU'VE REACHED OUR GOAL ON TIME! :tada: But there's still loads of time before we reach a million-- let's keep up the pace!`
|
||||||
} else if (diff < 10) {
|
} else if (diff < 10 && days > 0) {
|
||||||
end = `You're doing well, my lackeys! Keep up that speed of at least *+${speed}* if you want to reach that goal! You have *${days}* days remaining to get there!`
|
end = `You're doing well, my lackeys! Keep up that speed of at least *+${speed}* if you want to reach that goal! You have *${days}* days remaining to get there!`
|
||||||
} else if (diff > 10 && diff < 1000) {
|
} else if (diff > 10 && diff < 1000 && days > 0) {
|
||||||
end = `Still room to improve your performance, my underlings-- you're only at *${speed}* a day! Get that speed up to at least *+${goals}* to get there on time! You have *${days}* days left!`
|
end = `Still room to improve your performance, my underlings-- you're only at *${speed}* a day! Get that speed up to at least *+${goals}* to get there on time! You have *${days}* days left!`
|
||||||
} else if (diff > 1000) {
|
} else if (diff > 1000 && days > 0) {
|
||||||
end = `You're slogging behind, my minions! Only *${speed}* a day? RiDONKulous! Get that speed up to at least *+${goals}* to get there on time! Hurry up!!! You have *${days}* days left to get there!`
|
end = `You're slogging behind, my minions! Only *${speed}* a day? RiDONKulous! Get that speed up to at least *+${goals}* to get there on time! Hurry up!!! You have *${days}* days left to get there!`
|
||||||
|
} else if (days == 0) {
|
||||||
|
end = `Today's the deadline my minions! I hope you can count at least *+${goals}* today, otherwise we'll miss the deadline!`
|
||||||
|
} else if (days < 0) {
|
||||||
|
end = `We've missed the deadline by ${Math.abs(days)} day${(days < -1)? 's': ''} my underlings-- I hope you can make the next one. In the meantime, I recommend counting *+${goals}* numbers today.`
|
||||||
}
|
}
|
||||||
return start + "\n" + message + "\n" + end;
|
return start + "\n" + message + "\n" + end;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue