51degrees c-sdk native bindings for nodejs
C JavaScript C++ Python
Latest commit 0d6d87e Sep 9, 2015 @yorkie yorkie v1.8.1
Permalink
Failed to load latest commit information.
benchmark
properties
src
.gitignore
.npmignore Create .npmignore Sep 12, 2014
.travis.yml init graph Aug 30, 2014
51Degrees-Lite.dat
51Degrees-Lite.trie
License.txt
README.md 1.5.2 Mar 11, 2015
appveyor.yml add appveyor.yml Oct 18, 2014
binding.gyp
example.js fixed #8, add new api Oct 18, 2014
index.js
package.json
test.js
update.js fix bug Feb 25, 2015

README.md

51degrees.node

Gitter

51degrees c-sdk native bindings for nodejs, it helps you detect devices from userAgent in high performance.

NPM NPM

Windows Mac/Linux
Build status Build Status

API

.Parse(filename[, properties, options])
  • filename {String} your 51degrees data, lite or premium.

  • properties {Array} optional, required properties

  • options {Object}

  • options.autoUpdate {Boolean} enable/disable autoUpdate feature

  • options.key {String} auto-update requires a licesen key from 51Degrees

  • options.interval {Integer}, default value 30 * 60 * 1000 (half hours)

  • options.onupdated {Function} if auto updated, you will get call at this function

for more information, you could move to 51degrees documentation

parser.parse(userAgent)
  • userAgent {String}

parse the userAgent given by you, and return result of that.

Usage

var Parser = require('51degrees').Parser;
var psr = new Parser('51Degrees-Lite.dat');
var userAgent = '...'; // your userAgent in any clients(browser/ios/android)
var ret = psr.parse(userAgent);
console.log(ret);
Create an auto-updated pattern parser
var psr = new Parser('51Degrees-Lite.dat', [], {
  autoUpdate: true,
  key: 'your license key'
});

Note: this feature only is used at pattern data.

After the above program, you will get:

{ Id: '17595-21721-21635-18092',
  Canvas: true,
  CssTransforms: true,
  CssTransitions: true,
  History: true,
  Html5: true,
  IndexedDB: true,
  IsMobile: false,
  Json: true,
  PostMessage: true,
  Svg: true,
  TouchEvents: true,
  WebWorkers: true,
  method: 'trie',
  data: {} }
.ALL_PROPERTIES

51Degrees.node exposure ALL_PROPERTIES to shortly fetch all propertites from userAgent, just using like this:

var properties = require('51degrees').ALL_PROPERTIES;
var userAgent = '...' // your userAgent in any clients(browser/ios/android)
var psr = new Parser('51Degrees-Lite.trie', properties);
var ret = psr.parse(userAgent);
console.log(ret);

Then will print the whole properties, it's super useful for overview of this module and 51Degrees product.

Properties

The following list shows all properties that 51degrees would export in json:

  • AnimationTiming
  • BlobBuilder
  • Canvas
  • CssBackground
  • CssBorderImage
  • CssCanvas
  • CssColor
  • CssColumn
  • CssFlexbox
  • CssFont
  • CssImages
  • CssMediaQueries
  • CssMinMax
  • CssOverflow
  • CssPosition
  • CssText
  • CssTransforms
  • CssTransitions
  • CssUI
  • DataSet
  • DataUrl
  • DeviceOrientation
  • FileReader
  • FileSaver
  • FileWriter
  • FormData
  • Fullscreen
  • GeoLocation
  • History
  • Html5
  • Html-Media-Capture
  • Id
  • Iframe
  • IndexedDB
  • IsMobile
  • Json
  • LayoutEngine
  • Masking
  • PostMessage
  • Progress
  • Prompts
  • ScreenPixelsHeight
  • ScreenPixelsWidth
  • Selector
  • Svg
  • TouchEvents
  • Track
  • Video
  • Viewport
  • WebWorkers
  • Xhr

Installation

$ npm install 51degrees --save

License

MPL