UNPKG

woothee

Version:

User-Agent string parser (js implementation)

65 lines (56 loc) 2.04 kB
/* HEADER BEGIN */ var util = require('./util'), updateMap = util.updateMap, updateVersion = util.updateVersion, updateCategory = util.updateCategory, updateOs = util.updateOs, updateOsVersion = util.updateOsVersion, dataset = require('./dataset'); /* HEADER END */ var challengePlaystation = exports.challengePlaystation = function(ua, result) { var data = null; var os_version = null; var match; if (ua.indexOf('PSP (PlayStation Portable);') >= 0) { data = dataset.get('PSP'); if ((match = /PSP \(PlayStation Portable\); ([.0-9]+)\)/.exec(ua))) os_version = match[1]; } else if (ua.indexOf('PlayStation Vita') >= 0) { data = dataset.get('PSVita'); if ((match = /PlayStation Vita ([.0-9]+)\)/.exec(ua))) os_version = match[1]; } else if (ua.indexOf('PLAYSTATION 3 ') >= 0 || ua.indexOf('PLAYSTATION 3;') >= 0) { data = dataset.get('PS3'); if ((match = /PLAYSTATION 3;? ([.0-9]+)\)/.exec(ua))) os_version = match[1]; } else if (ua.indexOf('PlayStation 4 ') >= 0) { data = dataset.get('PS4'); if ((match = /PlayStation 4 ([.0-9]+)\)/.exec(ua))) os_version = match[1]; } if (! data) return false; updateMap(result, data); if (os_version) updateOsVersion(result, os_version); return true; }; var challengeNintendo = exports.challengeNintendo = function(ua, result) { var data = null; if (ua.indexOf('Nintendo 3DS;') >= 0) data = dataset.get('Nintendo3DS'); else if (ua.indexOf('Nintendo DSi;') >= 0) data = dataset.get('NintendoDSi'); else if (ua.indexOf('Nintendo Wii;') >= 0) data = dataset.get('NintendoWii'); else if (ua.indexOf('(Nintendo WiiU)') >= 0) data = dataset.get('NintendoWiiU'); if (! data) return false; updateMap(result, data); return true; }; var challengeDigitalTV = exports.challengeDigitalTV = function(ua, result) { var data = null; if (ua.indexOf('InettvBrowser/') >= 0) data = dataset.get('DigitalTV'); if (! data) return false; updateMap(result, data); return true; };