Socket
Socket
Sign inDemoInstall

googleanalytics

Package Overview
Dependencies
0
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.2.0 to 0.3.0

75

lib/ga.js
var https = require('https')
,querystring = require('querystring')
,emitter = require('events').EventEmitter
,DOMParser= require('xmldom').DOMParser
,$ = require('jquery')
,inherits = function (ctor, superCtor) {

@@ -98,6 +97,6 @@ ctor.super_ = superCtor;

var data_url = "/analytics/feeds/data?" + querystring.stringify(options);
var data_url = "/analytics/v3/data/ga?" + querystring.stringify(options);
var get_options = {
host: 'www.google.com',
host: 'www.googleapis.com',
port: 443,

@@ -120,34 +119,42 @@ path: data_url,

res.on('end', function() {
var entries = [];
var entries = []
,metric_index
,metric
,dimension
,dimension_index;
var data_data = combineChunks(chunks, length).toString();
var doc = new DOMParser().parseFromString(data_data);
$(doc).find('entry').each(function(){
var entry = {metrics:[], dimensions:[]};
$(this).children()
.filter(function() {
return ($(this).prop('tagName') === 'dxp:metric'
|| $(this).prop('tagName') === 'dxp:dimension');
}).each(function(){
var item =$(this);
var metric = false;
if (item.prop('tagName') === "dxp:metric") {
metric = true;
}
if (item.attr('name') && item.attr('value')) {
var o = {};
o[item.attr('name')] = (isNaN(item.attr('value'))) ? item.attr('value') : parseInt(item.attr('value'), 10);
if (metric) {
entry.metrics.push(o);
} else {
entry.dimensions.push(o);
}
}
});
if (entry.metrics.length > 0 || entry.dimensions.length > 0) {
self.emit('entry', entry);
entries.push(entry);
}
});
var parsed_data = JSON.parse(data_data);
if (typeof cb === 'function' ) cb(null, entries)
for (var col=0; col<parsed_data.columnHeaders.length; col++){
if(parsed_data.columnHeaders[col]['columnType'] === "METRIC"){
metric_index = col;
metric = parsed_data.columnHeaders[col];
}
if(parsed_data.columnHeaders[col]['columnType'] === "DIMENSION"){
dimension_index = col;
dimension = parsed_data.columnHeaders[col];
}
}
for (i=0; i<parsed_data.rows.length; i++){
var entry = {metrics:[], dimensions:[]};
var object_metric = {};
object_metric[metric.name] = parseInt(parsed_data.rows[i][metric_index], 10);
entry.metrics.push(object_metric);
var object_dimension = {};
object_dimension[dimension.name] = parsed_data.rows[i][dimension_index];
entry.dimensions.push(object_dimension);
self.emit('entry', entry);
entries.push(entry);
}
if (typeof cb === 'function' ) cb(null, entries);
});

@@ -154,0 +161,0 @@ });

@@ -5,6 +5,7 @@ {

"description": "Google Analytics library.",
"version": "0.2.0",
"version": "0.3.0",
"author": "Nick Campbell (http://github.com/ncb000gt)",
"contributors": [
{ "name": "Brian Zeligson (http://github.com/beezee)", "email": "brian.zeligson@gmail.com" }
{ "name": "Brian Zeligson (http://github.com/beezee)", "email": "brian.zeligson@gmail.com" },
{ "name": "Mike Schierberl (http://github.com/mschierberl)", "email": "mike@schierberl.com" }
],

@@ -20,7 +21,3 @@ "engines": { "node": ">= 0.4.0" },

}
],
"dependencies": {
"xmldom" : ""
,"jquery" : ""
}
]
}
SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc