From 0e37d384e1f6fa88363cddf2239400a9d8a88b4e Mon Sep 17 00:00:00 2001 From: nobody Date: Sat, 8 Aug 2020 07:27:52 +0200 Subject: [PATCH] Implemented statistics mechanism (#74) --- modules/internal/stats.js | 62 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 modules/internal/stats.js diff --git a/modules/internal/stats.js b/modules/internal/stats.js new file mode 100644 index 00000000..ca2456e5 --- /dev/null +++ b/modules/internal/stats.js @@ -0,0 +1,62 @@ +/** + * 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 = {}; + +stats.setStats = function (injection) { + let data, today, cdn, framework, newEntry; + + data = stats.data; + today = new Date().toISOString().slice(0, 10); + cdn = injection.source; + 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; + } + + chrome.storage.local.set({ + [Setting.INTERNAL_STATISTICS_DATA]: data, + }); +}; + +stats.getStats = function () { + chrome.storage.local.get([Setting.INTERNAL_STATISTICS_DATA], function (items) { + stats.data = items.internalStatisticsData || {}; + }); +}; + +stats.getStats(); + +stats.data = {};