56 lines
1.7 KiB
JavaScript
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.");
|
|
}
|
|
});
|