hau
Version:
Easily track hourly daily, weekly, and monthly active users with Redis.
43 lines (33 loc) • 1.22 kB
JavaScript
//-----------------------------------------------------------------------------
// Requirements
//-----------------------------------------------------------------------------
var moment = require('moment');
//-----------------------------------------------------------------------------
// Public
//-----------------------------------------------------------------------------
function keyFor (action, date) {
action = action || 'active';
if (!moment.isMoment(date)) {
date = date ? moment.utc(date) : moment.utc();
}
date = date.format('YYYY-MM-DD-hh');
return [action, date].join('-');
}
function toBinaryString (buffer) {
const buffer64 = to64Bits(buffer);
var binaryBigint = buffer64.readBigInt64BE();
return binaryBigint.toString(2);
}
function to64Bits (buffer) {
if (buffer.length < 8) {
const bufZeros = Buffer.alloc(8 - buffer.length);
buffer = Buffer.concat([bufZeros, buffer], 8);
}
return buffer;
}
//-----------------------------------------------------------------------------
// Exports
//-----------------------------------------------------------------------------
exports.keyFor = keyFor;
exports.toBinaryString = toBinaryString;
exports.to64Bits = to64Bits;