jschan - Anonymous imageboard software. Classic look, modern features and feel. Works without JavaScript and supports Tor, I2P, Lokinet, etc.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

76 lines
2.0 KiB

'use strict';
const YEAR = 31536000000
, MONTH = 2629800000
, WEEK = 604800000
, DAY = 86400000
, HOUR = 3600000
, MINUTE = 60000;
module.exports = {
YEAR, MONTH, WEEK, DAY, HOUR, MINUTE,
//ms until next hour
'nextHour': () => {
return 3600000 - new Date().getTime() % 3600000;
},
//string representing how long since date A to date B
'relativeString': (now, relativeTo) => {
const difference = now.getTime() - relativeTo.getTime();
let amount = 0;
let ret = '';
if (difference < MINUTE) {
return 'Now';
} else if (difference < MINUTE*59.5) {
amount = Math.round(difference / MINUTE);
ret += `${amount} minute`;
} else if (difference < HOUR*23.5) {
amount = Math.round(difference / HOUR);
ret += `${amount} hour`;
} else if (difference < DAY*6.5) {
amount = Math.round(difference / DAY);
ret += `${amount} day`;
} else if (difference < WEEK*3.5) {
amount = Math.round(difference / WEEK);
ret += `${amount} week`;
} else if (difference < MONTH*11.5) {
amount = Math.round(difference / MONTH);
ret += `${amount} month`;
} else {
return 'More than a year ago';
}
return `${ret}${amount > 1 ? 's' : ''} ago`;
},
'relativeColor': (now, relativeTo) => {
const difference = now.getTime() - relativeTo.getTime();
let r = 0
, g = 0
, b = 0;
if (difference < MINUTE) {
g = 170;
b = 255;
} else if (difference < HOUR) {
r = (difference / HOUR) * 127;
g = 255;
} else if (difference < DAY) {
r = 127 + (difference / DAY) * 127;
g = 255;
} else if (difference < WEEK) {
g = 255 - (difference / WEEK) * 127;
r = 255;
} else if (difference < MONTH) {
g = 128 - (difference / MONTH) * 127;
r = 255;
} else if (difference < YEAR) {
r = 255 - (difference / YEAR) * 255
} //else, leave it black for >1 year
r = (Math.round(r*0.85).toString(16)).padStart(2, '0');
g = (Math.round(g*0.85).toString(16)).padStart(2, '0');
b = (Math.round(b).toString(16)).padStart(2, '0');
return `#${r}${g}${b}`;
}
};