LocalCDN-Firefox-Chrome-Brave/modules/internal/stats.js

72 lines
1.8 KiB
JavaScript

/**
* Stats
* Belongs to LocalCDN (since 2020-02-26)
* (Origin: Decentraleyes)
*
* @author nobody
* @since 2020-02-26
*
* @license MPL 2.0
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/.
*/
'use strict';
/**
* Stats
*/
var stats = {};
/**
* Public Methods
*/
stats.setStats = function (injection) {
let data, today, cdn, framework, newEntry, pathSegments;
data = storageManager.statistics;
today = new Date().toISOString().slice(0, 10);
cdn = injection.source;
if (injection.bundle !== '') {
pathSegments = injection.path.split('/');
framework = `${pathSegments[0]}/${pathSegments[1]}/${pathSegments[2]}/`;
} else {
framework = injection.path;
}
if (today in data) {
if (cdn in data[today]['cdns']) {
data[today]['cdns'][cdn] = ++data[today]['cdns'][cdn];
} else {
Object.assign(data[today]['cdns'], {[cdn]: 1});
}
if (framework in data[today]['frameworks']) {
data[today]['frameworks'][framework] = ++data[today]['frameworks'][framework];
} else {
Object.assign(data[today]['frameworks'], {[framework]: 1});
}
} else {
newEntry = {'frameworks': {[framework]: 1}, 'cdns': {[cdn]: 1}};
data[today] = newEntry;
}
browser.storage.local.set({
[Setting.INTERNAL_STATISTICS_DATA]: data,
});
};
stats.getStats = function () {
browser.storage.local.get([Setting.INTERNAL_STATISTICS_DATA], function (items) {
storageManager.statistics = items.internalStatisticsData || {};
});
};
stats.getStats();