function methodApi(vars, callback) {
vars = typeof vars === 'object' ? vars : {};
vars.module = 'API';
vars.format = 'JSON';
vars.token_auth = app.settings.token;
talk ({
method: 'GET',
path: 'index.php',
query: vars,
callback: callback || null
});
return app;
}n/a
function methodLoadSpammers(callback) {
var options = {
timeout: app.settings.timeout
};
http.get (
'https://github.com/piwik/referrer-spam-blacklist/raw/master/spammers.txt',
options,
function (err, res) {
var data;
if (err) {
callback (err);
} else {
data = res.body
.trim()
.replace (/\s+\n/g, '\n')
.split ('\n')
.sort();
callback (null, data);
}
}
);
return app;
}n/a
function methodSetup(baseURL, token, timeout) {
var url = urltool.parse (baseURL, true);
app.settings.baseURL = url.protocol + '//' + url.host
+ url.pathname.replace (/\/[^\/]+$/, '/');
// token in baseURL?
app.settings.token = url.query && url.query.token_auth || null;
// override with custom token, and set timeout
if (typeof token === 'number') {
timeout = token;
} else if (token) {
app.settings.token = token;
}
app.settings.timeout = timeout || app.settings.timeout;
return app;
}n/a
function methodTrack(vars, callback) {
var bulk = {
requests: []
};
var i;
if (app.settings.token) {
bulk.token_auth = app.settings.token;
}
if (vars instanceof Array && vars[0] instanceof Object) {
// array with objects
for (i = 0; i < vars.length; i++) {
bulk.requests.push (trackObject2request (vars[i]));
}
} else if (vars instanceof Object) {
// object
bulk.requests.push (trackObject2request (vars));
}
talk ({
method: 'POST',
path: 'piwik.php',
body: JSON.stringify (bulk),
callback: function (err, data) {
if (err && callback) {
callback (err);
return;
}
if (data.status === 'success' && callback) {
callback (null, data);
} else if (callback) {
callbackError ('track failed', data, null, callback);
}
}
});
return app;
}n/a