Social-Time-Tracker/background.js
2024-10-17 12:05:14 +02:00

56 lines
1.7 KiB
JavaScript

let socialMediaSites = {
"facebook.com": "timeSpentFacebook",
"x.com": "timeSpentTwitter",
"instagram.com": "timeSpentInstagram"
};
let startTime = null;
let currentSite = null;
// Quand une page de réseau social est visitée
chrome.webNavigation.onCompleted.addListener(function(details) {
let url = new URL(details.url);
if (Object.keys(socialMediaSites).some(site => url.hostname.includes(site))) {
startTime = new Date();
currentSite = url.hostname;
}
});
// Quand l'utilisateur change d'onglet ou ferme un onglet
chrome.tabs.onActivated.addListener(saveTime);
chrome.tabs.onRemoved.addListener(saveTime);
function saveTime() {
if (startTime && currentSite) {
const endTime = new Date();
const timeSpent = (endTime - startTime) / 1000; // en secondes
let siteKey = Object.keys(socialMediaSites).find(site => currentSite.includes(site));
if (siteKey) {
let storageKey = socialMediaSites[siteKey];
chrome.storage.local.get([storageKey], function(data) {
let totalTimeSpent = data[storageKey] || 0;
totalTimeSpent += timeSpent;
chrome.storage.local.set({ [storageKey]: totalTimeSpent }, function() {
console.log(`Temps passé sur ${currentSite}: ${totalTimeSpent} secondes`);
});
});
}
startTime = null;
currentSite = null;
}
}
// Alarme pour garder le service worker actif
chrome.runtime.onInstalled.addListener(() => {
// Créer une alarme pour maintenir le service worker actif
chrome.alarms.create("keepAlive", { periodInMinutes: 1 });
});
chrome.alarms.onAlarm.addListener((alarm) => {
if (alarm.name === "keepAlive") {
console.log("Service worker toujours actif.");
}
});