This is official (NativeExtractor)[https://github.com/SpongeData-cz/nativeextractor] binding for Node.js
- Node.JS >=10
npm
build-essential
(gcc, make)libglib2.0
,libglib2.0-dev
We recommend to use virtual environments.
sudo pip install nodeenv
nodeenv myproject
source myproject/bin/activate
TODO:
npm install nativeextractor.js
-
Clone the repo
git clone --recurse-submodules https://github.com/SpongeData-cz/nativeextractor-js.git
-
Install via
npm
npm install ./nativeextractor.js/
const ne = require('nativeextractor.js');
const path = require('path');
// Accumulated results
let results = [];
function test() {
// Instantiate Extractor
const ex = new ne.Extractor();
// Add naive email miner - see src/example/naive_email_miner.c for details
if (!ex.addMiner(path.join(ne.defaultMinersPath, "naive_email_miner.so"), "match_email_naive")) {
console.log(ex.getLastError());
return;
}
// String to extract on
const buffer = "some@email.org dead beaf";
// Create buffer stream (from memory)
const stream = new ne.BufferStream(buffer);
// Set the stream to the extractor
ex.setStream(stream);
// Check if stream is already on its end
if (ex.eof()) {
return;
}
// Pick next batch of result
ex.next(function (err, res) {
// Print found results
console.log(res);
results = [...results, ...res];
if (ex.eof()) {
// Unset stream for sure
ex.unsetStream();
return;
}
// Asynchronous recursion
ex.next(arguments.callee);
});
}
test();