/* *********************************************************************
* This Source Code Form is copyright of 51Degrees Mobile Experts Limited.
* Copyright 2017 51Degrees Mobile Experts Limited, 5 Charlotte Close,
* Caversham, Reading, Berkshire, United Kingdom RG4 7BY
*
* This Source Code Form is the subject of the following patents and patent
* applications, owned by 51Degrees Mobile Experts Limited of 5 Charlotte
* Close, Caversham, Reading, Berkshire, United Kingdom RG4 7BY:
* European Patent No. 2871816;
* European Patent Application No. 17184134.9;
* United States Patent Nos. 9,332,086 and 9,350,823; and
* United States Patent Application No. 15/686,066.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0.
*
* If a copy of the MPL was not distributed with this file, You can obtain
* one at http://mozilla.org/MPL/2.0/.
*
* This Source Code Form is "Incompatible With Secondary Licenses", as
* defined by the Mozilla Public License, v. 2.0.
********************************************************************** */
/*
var config = {"dataFile" : require("fiftyonedegreeslitepattern"),
"properties" : "IsMobile",
"cacheSize" : 10000,
"poolSize" : 4
};
var provider = new fiftyonedegrees.provider(config);
var inStream = fs.createReadStream(inputFile); var outStream = fs.createWriteStream(outputFile);
outStream.write('User-Agent')
provider.availableProperties.forEach(function(property) {
outStream.write('|' + property);
});
outStream.write('\n');
rl.on('line', function (userAgent) {
if (i < 20) {
outStream.write(userAgent);
var match = provider.getMatch(userAgent);
provider.availableProperties.forEach(function(property) {
outStream.write("|" + match[property]);
})
outStream.write("\n");
match.close();
}
i++;
});
*/
// Snippet Start
// Include 51Degrees.
var fiftyonedegrees = require("fiftyonedegreescore");
// Inlcude file modules.
var fs = require("fs"),
readline = require("readline");
// Set the config.
var config = {"dataFile" : require("fiftyonedegreeslitepattern"),
"properties" : "IsMobile,PlatformName,PlatformVersion",
"cacheSize" : 10000,
"poolSize" : 4,
};
var inputFile = __dirname + "/../../data/20000 User Agents.csv";
var outputFile = "offlineProcessingOutput.csv";
// Carries out match for first 20 User-Agents and prints results to
// output file.
var outputOfflineProcessing = function() {
var inStream = fs.createReadStream(inputFile),
rl = readline.createInterface(inStream, null),
outStream = fs.createWriteStream(outputFile);
inStream.on("close", function() {
outStream.close();
console.log("Output written to " + outputFile);
})
outStream.write("User-Agent");
provider.availableProperties.forEach(function(property) {
outStream.write("|" + property);
})
outStream.write("\n");
var i = 0;
rl.on('line', function (userAgent) {
if (i < 20) {
outStream.write(userAgent);
var match = provider.getMatch(userAgent);
provider.availableProperties.forEach(function(property) {
outStream.write("|" + match[property]);
})
outStream.write("\n");
match.close();
}
i++;
});
}
console.log("Starting Offline Processing Example.\n");
/*
Initialises the device detection provider with settings from the config.
By default this will use the packaged Lite data file. For more info see:
compare data options
*/
var provider = new fiftyonedegrees.provider(config);
outputOfflineProcessing();
// Snippet End