New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

hau

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

hau

Easily track hourly daily, weekly, and monthly active users with Redis.

latest
Source
npmnpm
Version
0.3.0
Version published
Maintainers
1
Created
Source

Hourly Active User

The hau module allows you to quickly track hourly, daily, weekly, and monthly active users in Redis.

Hourly? Yeah, hourly.

Check out this article to better understand library implementation: https://blog.getspool.com/2011/11/29/fast-easy-realtime-metrics-using-redis-bitmaps/

Installing and Getting Started

You can install the hau module via npm. You will also need to have a Redis server instance running.

npm install hau

Once hau is installed we need a client:

var hau = require('hau');

var activity = hau.createClient(REDIS_PORT, REDIS_HOST, REDIS_OPTIONS);

Tracking

###activity.track(id, [action]);

Tracking is a very simple operation:

activity.track(10, 'commented');
activity.track(1);

Where the id is the id of the user you want to track and the action is the action they performed.

###activity.untrack(id, [action]);

You may also undo a tracked action for a user with untrack:

activity.untrack(10, 'commented');
activity.untrack(1);

Reporting

You can fetch the daily, weekly, and monthly active users easily:

###activity.daily([action], [date], callback);

// Fetching the number of users who commented on Nov 21, 2013
activity.daily('commented', '2013-11-21', function (err, num) {
  console.log(num);
});

// Fetching the number of daily active users for the current day
activity.daily(function (err, num) {
  console.log(num);
});

// Using promises to fetch the number of users who commented on Nov 21, 2013
const { promisify } = require('util');
const activityDaily = promisify(activity.daily);
const daily = await activityDaily('commented', '2013-11-21');

// Using promises to fetch the number of daily active users for the current day
const { promisify } = require('util');
const activityDaily = promisify(activity.daily);
const daily = await activityDaily();

###activity.weekly([action], [date], callback);

// Fetching the number of users who commented the week containing Nov 21, 2013
activity.weekly('commented', '2013-11-21', function (err, num) {
  console.log(num);
});

// Fetching the number of daily active users for the current week
activity.weekly(function (err, num) {
  console.log(num);
});

###activity.monthly([action], [date], callback);

// Fetching the number of users who commented the month of Nov 2013
activity.monthly('commented', '2013-11', function (err, num) {
  console.log(num);
});

// Fetching the number of daily active users for the current month
activity.monthly(function (err, num) {
  console.log(num);
});

Release History

  • 0.0.1
  • 0.2.0
    • New updates made by malcolmocean's adding hourly support, and changing the dependency bigint to bignum
  • 0.3.0
    • Remove dependency on bignum, now using BigInt, which is a native JS object

Keywords

active-user

FAQs

Package last updated on 12 Dec 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts