Files
ghbot/lib/utils.js
2020-05-01 17:27:06 -07:00

51 lines
1.2 KiB
JavaScript
Executable File

// Converts seconds to human-readable time
String.prototype.toHHMMSS = function () {
let sec_num = parseInt(this, 10); // don't forget the second param
let hours = Math.floor(sec_num / 3600);
let minutes = Math.floor((sec_num - hours * 3600) / 60);
let seconds = sec_num - hours * 3600 - minutes * 60;
if (hours < 10) {
hours = "0" + hours;
}
if (minutes < 10) {
minutes = "0" + minutes;
}
if (seconds < 10) {
seconds = "0" + seconds;
}
return hours + ":" + minutes + ":" + seconds;
};
async function asyncForEach(array, callback) {
for (let index = 0; index < array.length; index++) {
await callback(array[index], index, array);
}
}
function randElement(arr) {
return arr[Math.floor(Math.random() * arr.length)];
}
function randSort() {
return 0.5 - Math.random();
}
function chunkSubstr(str, size) {
const numChunks = Math.ceil(str.length / size);
const chunks = new Array(numChunks);
for (let i = 0, o = 0; i < numChunks; ++i, o += size) {
chunks[i] = str.substr(o, size);
}
return chunks;
}
module.exports = {
asyncForEach,
randElement,
randSort,
chunkSubstr
};