Node.js (hapi) backend for Shariff. Shariff enables website users to share their favorite content without compromising their privacy.
JavaScript
Latest commit 2bb9aac Nov 23, 2015 @compeak compeak 3.0.0
Permalink
Failed to load latest commit information.
lib remove Twitter api Nov 23, 2015
.gitignore init Nov 12, 2014
README.md remove Twitter api Nov 23, 2015
index.js remove Twitter api Nov 23, 2015
package.json 3.0.0 Nov 23, 2015
run.js init Nov 12, 2014
server.js Add a new index.js allowing custom servers to call a getCounts method Apr 10, 2015
shariff.json init Nov 12, 2014

README.md

Shariff Node Backend

Shariff is used to determine how often a page is shared in social media, but without generating requests from the displaying page to the social sites.

Shariff Logo © 2014 Heise Zeitschriften Verlag

This document describes the Node backend. The following backends are also available:

The frontend is available here:

Installing the Shariff backend on you own server

Option 1: Run the standalone server

Create a project folder and install the Shariff server using npm:

$ mkdir my-shariff-server
$ cd my-shariff-server
$ npm init
$ npm install --save shariff-backend-node

The node package contains a configuration file shariff.json. The following configuration options are available:

Key Type Description
port integer Port Shariff runs on
host string Host/IP address Shariff runs on
cache object Cache settings described below

Cache settings:

Key Type Description
engine string catbox backend
expiresIn integer Cache duration in milliseconds

Start Shariff with:

$ node node_modules/shariff-backend-node/run.js
141104/143603.929, info, Server ist running at: http://localhost:3001

Option 2:

Alternatively, you may call the Shariff backend from your own code. If called directly, the code will still use a cache and honor the expiresIn setting, the engine will however not be used in this case, just a simple object store.

Sample:

var Shariff = require('shariff-backend-node');

Shariff.getCounts('google.com').then(function(counts) {
    console.log('Success, counts:', counts);
}, function(err) {
    console.log('Failed to grab counts!', err);
});

If passed true as second parameter, the getCounts() method will not use its cache and instead re-query the services.

Testing your installation

Visit http://localhost:3001/?url=www.example.com to get a JSON structure containing the share counts:

{"facebook":1452,"googleplus":23}