JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 4
  • Score
    100M100P100Q36770F
  • License MIT

Identify a device based on user-agent, patterns learn based on

Package Exports

  • deviceprofiler

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (deviceprofiler) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

This library is of part of mediascape european project framework. Aims to facility on identifing different type of device using a long data base reforced with a intelligent learning system. It is capable to learn different patterns based on user-agent token. The API can identify the followings type of devices: desktop,tablet,mobile and TV, but it's open to identify much more devices Types.

Installation

npm install deviceProfiler

Binary version:

sudo npm install deviceprofiler -g

Usage

Standalone version:

var deviceProfiler = require('deviceprofiler');
deviceProfiler.listen(8080);

Express version:

var express = require('express');
var app = express();
var server = require('http').createServer(app);
app.listen(6675, function () {
  console.log('Device Profiler API listening on  port 6675!')
})
var profilingServer = require('deviceprofiler').listen(app);

Web API

Identify device by user-agent:

 http://IP:PORT/checkDevice?agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/55.0.2883.87 Chrome/55.0.2883.87 Safari/537.36

Response:

{"deviceType":"desktop","fiability":0.7865514693138671,"userAgent":"\"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/55.0.2883.87 Chrome/55.0.2883.87 Safari/537.36\""}

Is not identifying correctly ? Just give a chance to learn !

 http://IP:PORT/learn?device=Desktop&agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/55.0.2883.87 Chrome/55.0.2883.87 Safari/537.36

Will take awhile ... Response:

{"learn":true}

Import notes about learning

On time of learning, it's important to exit from terminal with Crtl + C and gives a response "Yes" to the question, otherwise the new learns will not be saved (roadmap:To be improved).

It is not recommend to learn when server is on production.