Socket
Socket
Sign inDemoInstall

crawler-js

Package Overview
Dependencies
Maintainers
1
Versions
48
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

crawler-js - npm Package Compare versions

Comparing version 0.0.13 to 0.0.14

test.csv

18

lib/csv_to_json.js
readCsv = function(font,url,config){
var file = './' + font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['file'];
var stream = fs.createReadStream(file);
var first = 1;
stream.on('data', onData).buffer = '';

@@ -8,5 +9,5 @@

var i, hasData = Buffer.isBuffer(chunk);
if (hasData){
if(hasData){
stream.buffer += chunk.toString('utf8');
if (stream.paused)
if(stream.paused)
return;

@@ -19,3 +20,3 @@ }

stream.paused = true;
onLine(font, url, config, line, onData);
onLine(font, url, config, line, onData, first);
} else if (!hasData) {

@@ -27,2 +28,8 @@ stream.resume();

function onLine(font, url, config, line, cb){
if(first == 1){
first = 0;
var interval = 0;
}else{
var interval = font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['interval'];
}
setTimeout(function(){

@@ -36,3 +43,3 @@ line = line.replace('\r','').replace(/^"(.+(?="$))"$/, '$1');

cb();
}, parseInt(font.interval/font.limiter));
}, interval);
}

@@ -49,5 +56,6 @@ }

}
if(typeof font['encode'+font['type']] != 'undefined'){
if(typeof font['encode'+font['type']] == 'undefined'){
row[data] = encodeURIComponent(row[data]);
}
console.log(font[font['type']+'Attributes']);
url[font['type']] = font[font['type']].replace(font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['parameter'], row[data]);

@@ -54,0 +62,0 @@ var fontTemp = clone(font);

@@ -47,15 +47,9 @@ CrawlerJS = function(font,config){

getAttributes = function(entry){
var csv = /\[csv:[^:]{0,}:[^:]{0,}:(.[0-9]{0,10}?):(.[0-9]{0,10}?)\]/gim;
var mongodb = /\[mongodb:[^:]{0,}:[^:]{0,}:[^:]{0,}\]/gim;
var words = /\[words:\[[^\]]{0,}\]\]/gim;
var numbers = /\[numbers:(.[0-9]{0,10}?):(.[0-9]{0,10}?):(.[0-9]{0,10}?)\]/gim;
var letters = /\[letters:(.[0-9]{0,}?)\]/gim;
var csv = /\[csv:(.*?){0,}:(.*?){0,}:(.[0-9]{0,10}?):(.[0-9]{0,10}?)\]/gim;
var mongodb = /\[mongodb:(.[\w]{0,}?):(.[\w]{0,}?):(.[\w]{0,}?)\]/gim;
var words = /\[words:\[(.*?){0,}\]\]/gim;
var types = [];
if(csv.test(entry) == true){
var types = types.concat(entry.match(csv));
}
if(mongodb.test(entry) == true){
var types = types.concat(entry.match(mongodb));
}
if(words.test(entry) == true){

@@ -70,2 +64,8 @@ var types = types.concat(entry.match(words));

}
if(mongodb.test(entry) == true){
var types = types.concat(entry.match(mongodb));
}
if(csv.test(entry) == true){
var types = types.concat(entry.match(csv));
}

@@ -82,15 +82,24 @@ var allAttributes = [];

if(attribute[0] == 'numbers'){
if(attribute[0] == 'words'){
attribute = attribute.splice(1);
attributes['init'] = 0;
attributes['words'] = attribute;
attributes['total'] = attribute.length-1;
}
else if(attribute[0] == 'numbers'){
attributes['init'] = parseInt(attribute[1]);
attributes['size'] = parseInt(attribute[2]);
attributes['diff'] = parseInt(attribute[3]);
attributes['position'] = parseInt(attribute[1]);
attributes['total'] = parseInt((attributes['size']-attributes['init'])/attributes['diff']);
}
else if(attribute[0] == 'letters'){
attributes['init'] = 0;
attributes['size'] = parseInt(attribute[1]);
attributes['position'] = 0;
attributes['letters'] = lettersCombinations(parseInt(attribute[1]));
attributes['size'] = attributes['letters'].length-1;
attributes['total'] = attributes['letters'].length-1;
}
else if(attribute[0] == 'mongodb'){
attributes['collection'] =attribute[1];
attributes['key'] = attribute[2];
attributes['id'] = attribute[3];
}
else if(attribute[0] == 'csv'){

@@ -101,19 +110,18 @@ attributes['file'] = attribute[1];

attributes['csvId'] = attribute[4];
attributes['position'] = 0;
attributes['size'] = 1;
attributes['total'] = 0;
fs.createReadStream(attributes['file'])
.on('data',function(chunk){
for(var i=0; i < chunk.length; ++i){
if(chunk[i] == 10){attributes['total']++};
}
})
}
if(attribute[0] == 'mongodb'){
attributes['collection'] =attribute[1];
attributes['key'] = attribute[2];
attributes['id'] = attribute[3];
}
else if(attribute[0] == 'words'){
attribute = attribute.splice(1);
attributes['init'] = 0;
attributes['words'] = attribute;
attributes['position'] = 1;
attributes['size'] = attribute.length-1;
}
if(attributes['total'] == 0){attributes['total']=1;}
attributes['first']=1;
allAttributes[n] = attributes;
}
return allAttributes;

@@ -124,64 +132,26 @@ }

if(typeof font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']] !== 'undefined'){
if(font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['name'] == 'numbers'){
var count = 0;
for(i=font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['init']; i<=font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['size']; i=i+font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['diff']){
url[font['type']] = font[font['type']].replace(font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['parameter'],i);
var fontTemp = clone(font);
if(count == font.limiter){
fontTemp[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['init'] = i+font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['diff'];
setTimeout(function(){getEntry(fontTemp,url,config)}, fontTemp.interval);
break;
}else{
fontTemp[font['type']+'CurrentEntry']++;
fontTemp[font['type']] = url[font['type']];
getEntry(fontTemp,url,config);
}
count++;
for(var c = font[font['type']+'Attributes'].length-1; c>=0; c--){
if(c == font[font['type']+'Attributes'].length-1){
font[font['type']+'Attributes'][c]['interval'] = font.interval;
}else{
font[font['type']+'Attributes'][c]['interval'] = font[font['type']+'Attributes'][c+1]['interval']*(font[font['type']+'Attributes'][c+1]['total']+1);
}
}
else if(font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['name'] == 'letters'){
var count = 0;
for(var i=font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['init']; i<font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['letters'].length; i++){
url[font['type']] = font[font['type']].replace(font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['parameter'],font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['letters'][i]);
var fontTemp = clone(font);
if(count == font.limiter){
fontTemp[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['init'] = i;
setTimeout(function(){getEntry(fontTemp,url,config)}, fontTemp.interval);
break;
}else{
fontTemp[font['type']+'CurrentEntry']++;
fontTemp[font['type']] = url[font['type']];
getEntry(fontTemp,url,config);
}
count++;
}
var count = 0;
if(font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['first'] == 1){
font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['first'] = 0;
getTypeUrl(font,url,config);
count++;
}
else if(font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['name'] == 'words'){
var count = 0;
for(var i=font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['init']; i<font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['words'].length; i++){
if(typeof font['encode'+font['type']] != 'undefined'){
var urlTemp = encodeURIComponent(font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['words'][i]);
}else{
var urlTemp = font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['words'][i];
}
url[font['type']] = font[font['type']].replace(font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['parameter'],urlTemp);
var fontTemp = clone(font);
if(count == font.limiter){
fontTemp[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['init'] = i;
setTimeout(function(){getEntry(fontTemp,url,config)}, fontTemp.interval);
break;
}else{
fontTemp[font['type']+'CurrentEntry']++;
fontTemp[font['type']] = url[font['type']];
getEntry(fontTemp,url,config);
}
count++;
var i = setInterval(function(){
getTypeUrl(font,url,config);
count++;
if(count > font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['total']){
clearInterval(i);
}
}
else if(font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['name'] == 'csv'){
readCsv(font,url,config);
}
else if(font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['name'] == 'mongodb'){
readMongodb(font,url,config);
}
}, font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['interval']);
}else{

@@ -205,12 +175,50 @@ if(font[font['type']+'Attributes'].length == 0){

clone = function(obj){
if(obj === null || typeof obj !== 'object'){
return obj;
getTypeUrl = function(font,url,config){
if(font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['name'] == 'words'){
words(font,url,config);
}
else if(font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['name'] == 'numbers'){
numbers(font,url,config);
}
else if(font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['name'] == 'letters'){
letters(font,url,config);
}
else if(font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['name'] == 'mongodb'){
readMongodb(font,url,config);
}
else if(font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['name'] == 'csv'){
readCsv(font,url,config);
}
}
numbers = function(font,url,config){
url[font['type']] = font[font['type']].replace(font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['parameter'],font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['init']);
font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['init'] = font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['init']+font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['diff'];
var fontTemp = clone(font);
fontTemp[font['type']+'CurrentEntry']++;
fontTemp[font['type']] = url[font['type']];
getEntry(fontTemp,url,config);
}
letters = function(font,url,config){
url[font['type']] = font[font['type']].replace(font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['parameter'],font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['letters'][font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['init']]);
font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['init'] = font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['init']+1;
var fontTemp = clone(font);
fontTemp[font['type']+'CurrentEntry']++;
fontTemp[font['type']] = url[font['type']];
getEntry(fontTemp,url,config);
}
words = function(font,url,config){
if(typeof font['encode'+font['type']] != 'undefined' && font['encode'+font['type']] == 0){
var urlTemp = font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['words'][font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['init']];
}else{
var temp = obj.constructor();
for(var key in obj){
temp[key] = clone(obj[key]);
}
return temp;
var urlTemp = encodeURIComponent(font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['words'][font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['init']]);
}
url[font['type']] = font[font['type']].replace(font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['parameter'],urlTemp);
font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['init'] = font[font['type']+'Attributes'][font[font['type']+'CurrentEntry']]['init']+1;
var fontTemp = clone(font);
fontTemp[font['type']+'CurrentEntry']++;
fontTemp[font['type']] = url[font['type']];
getEntry(fontTemp,url,config);
}

@@ -217,0 +225,0 @@

@@ -21,2 +21,14 @@ getUrlParams = function(qs){

return mask.replace(/[xy]/g, function(c) {var r = Math.random()*16|0,v=c=='x'?r:r&0x3|0x8;return v.toString(16);});
}
}
clone = function(obj){
if(obj === null || typeof obj !== 'object'){
return obj;
}else{
var temp = obj.constructor();
for(var key in obj){
temp[key] = clone(obj[key]);
}
return temp;
}
}

@@ -5,3 +5,3 @@ {

"homepage" : "http://crawlerjs.org",
"version": "0.0.13",
"version": "0.0.14",
"keywords": [

@@ -8,0 +8,0 @@ "crawler",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc