/** * 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();