lib-qqwry-yyyj
Version:
Using NodeJS analytical IP Library (qqwry.dat) module.
45 lines (40 loc) • 961 B
JavaScript
function csv_decode(str) {
return str.replace(/^(.*[,"\n].*)$/, function(k) {
// console.log(arguments);
return '"' + k.replace(/"/g, '""') + '"';
});
}
function format_csv(val) {
return (
val
.map(function(v) {
return csv_decode(String(v));
})
.join(',') + '\n'
);
}
function format_json(obj) {
return JSON.stringify(obj);
}
function format_text(arr) {
var _ipstr = arr[2] + ' - ' + arr[3];
_ipstr += _ipstr.length < 33 ? new Array(34 - _ipstr.length).join(' ') : '';
return _ipstr + ' ' + arr[4] + ' ' + arr[5] + '\n';
}
//arr [begInt, endInt, begIP, endIP, Country, Area]
//obj {begInt, endInt, begIP, endIP, Country, Area}
module.exports = function getFormatFn(fomat) {
switch (fomat) {
case 'object':
return function(val) {
return val;
};
case 'csv':
return format_csv;
case 'json':
return format_json;
case 'text':
default:
return format_text;
}
};