From 43b5094489de6c2a60eb4f43238a108efbf556b1 Mon Sep 17 00:00:00 2001 From: kiu Date: Thu, 17 Oct 2024 12:05:14 +0200 Subject: [PATCH] version 0.2 --- background.js | 55 +++++++++++++++++++++ content.js | 59 +++++++++++++++++++++++ images/logo-128.png | Bin 0 -> 27692 bytes images/logo-16.png | Bin 0 -> 732 bytes images/logo-48.png | Bin 0 -> 4791 bytes manifest.json | 35 ++++++++++++++ popup.html | 113 ++++++++++++++++++++++++++++++++++++++++++++ popup.js | 38 +++++++++++++++ 8 files changed, 300 insertions(+) create mode 100644 background.js create mode 100644 content.js create mode 100644 images/logo-128.png create mode 100644 images/logo-16.png create mode 100644 images/logo-48.png create mode 100644 manifest.json create mode 100644 popup.html create mode 100644 popup.js diff --git a/background.js b/background.js new file mode 100644 index 0000000..1d97627 --- /dev/null +++ b/background.js @@ -0,0 +1,55 @@ +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."); + } +}); diff --git a/content.js b/content.js new file mode 100644 index 0000000..b23e0f8 --- /dev/null +++ b/content.js @@ -0,0 +1,59 @@ +// Barre de chargement à injecter +function createLoadingBar(percentage) { + const existingBar = document.getElementById('socialTimeBar'); + if (existingBar) { + existingBar.style.width = `${percentage}%`; + return; + } + + const barContainer = document.createElement('div'); + barContainer.style.position = 'fixed'; + barContainer.style.top = '0'; // Barre en haut de la page + barContainer.style.left = '0'; + barContainer.style.width = '100%'; + barContainer.style.height = '6px'; // Barre 3 fois moins épaisse + barContainer.style.backgroundColor = 'lightgray'; + barContainer.style.zIndex = '9999'; + + const bar = document.createElement('div'); + bar.id = 'socialTimeBar'; + bar.style.height = '100%'; + bar.style.width = `${percentage}%`; + bar.style.backgroundColor = 'green'; // Couleur verte + + // Ajout de graduations à 25%, 50%, 75% + for (let i = 25; i <= 75; i += 25) { + const marker = document.createElement('div'); + marker.style.position = 'absolute'; + marker.style.height = '100%'; + marker.style.width = '1px'; // Largeur des marques ajustée + marker.style.backgroundColor = 'black'; // Couleur des marques + marker.style.left = `${i}%`; // Position à chaque 25% + barContainer.appendChild(marker); + } + + barContainer.appendChild(bar); + document.body.appendChild(barContainer); +} + +// Fonction pour récupérer le temps passé et mettre à jour la barre +function updateLoadingBar() { + chrome.storage.local.get(['timeSpent', 'timeLimit'], function(data) { + if (chrome.runtime.lastError) { + console.error("Erreur de récupération chrome.storage:", chrome.runtime.lastError); + return; + } + + const totalTimeSpent = data.timeSpent || 0; + const timeLimit = data.timeLimit || 4 * 60 * 60; // 4 heures en secondes par défaut + const percentage = Math.min((totalTimeSpent / timeLimit) * 100, 100); + + createLoadingBar(percentage); + }); +} + +// Mettre à jour la barre toutes les 30 secondes +setInterval(updateLoadingBar, 30000); + +// Mettre à jour la barre au chargement initial +updateLoadingBar(); diff --git a/images/logo-128.png b/images/logo-128.png new file mode 100644 index 0000000000000000000000000000000000000000..8b63d506c8229a51429dae776402e0ab2f87c640 GIT binary patch literal 27692 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 rZivD^YLd(;A!(8QCjJS=c<}0x8wU;~ zMo38Tpaz7Dty#%w7a9bKVxUEAmRe%~HAziuyCc=#w}LQy~jgsK1{LQ=rc zh!7nIPftQXYXk=H06?fQMni@35Kz4Pt+-*WJvu!Kf>5Eegg7-qikQeqx!$_C)+*I^ zjB3^-KmX_Aw0CGCm+kL!6c4rVo(ez%y0iamwN}^XYV{M38?xyahlh%j@x*RBn2j6> z?*J%8L?mNye(CvY`SN$!bDuuEm38fboSZ0Euim&5ws@u7w8l^rpoOT4t88@^%gaAa zec!IXa^sU9;zREV{H4oxj$HWn)b-+*yZdIx`ok!I6BQsZ_GT?TuyL(+E4&??-2dUx z(OrXotUPVKJ$Ze8&)r^V*BeWl+kpxI`*LGrd*`oa{$TLM-pus)aOU$1cRS7AkDpDQ zS?;{}_@j37UZvSJB2cv=P;kh|)&$N>HIMbu*;eP9x$#V7yF1Avx`kw`=DHC=0w67* zsmg(osGgr${ou7Hr5AgaSLXK>dam_Lv36-}x;il&J=mNcjz}+{0!%&M8qdvbkA^pc z^+Ixdta$9+mE+gizxKWP?d&f9U~P6FeIp)lo+4@~;>jQizn&Sb{@z)7Qfkh$uMTtv zALrw$T`Ar#^fteGe+)t3Q%6w#EL8(|RRn4(mFK4yo-Q_?HMt#j^TtI%oii^SJ~=?|=?q;wUO0=)D-wQy>tMBJw}F0Al O0000VgIwoc=sOfJKr_u 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"], + "js": ["content.js"] + } + ] +} diff --git a/popup.html b/popup.html new file mode 100644 index 0000000..d76cbfc --- /dev/null +++ b/popup.html @@ -0,0 +1,113 @@ + + + + + + Paramètres d'utilisation + Graphique Chart.js + + + + + + + + + +

Temps limite d'utilisation

+ + + + + + + + + + + + + +

Mon graphique en camembert

+ + + + + + + diff --git a/popup.js b/popup.js new file mode 100644 index 0000000..21b4a78 --- /dev/null +++ b/popup.js @@ -0,0 +1,38 @@ +document.getElementById('saveSettings').addEventListener('click', function() { + const hours = document.getElementById('timeLimitHours').value; + const minutes = document.getElementById('timeLimitMinutes').value; + + const timeLimitInSeconds = (parseInt(hours) * 60 * 60) + (parseInt(minutes) * 60); + + chrome.storage.local.set({ timeLimit: timeLimitInSeconds }, function() { + alert('Temps limite mis à jour !'); + }); +}); + +// Fonction pour afficher le diagramme +function displayPieChart(data) { + const ctx = document.getElementById('socialMediaChart').getContext('2d'); + new Chart(ctx, { + type: 'pie', + data: { + labels: ['Facebook', 'Twitter', 'Instagram'], // Noms des réseaux sociaux + datasets: [{ + label: 'Temps passé (en secondes)', + data: [data.facebook, data.twitter, data.instagram], // Temps passé sur chaque réseau + backgroundColor: ['#3b5998', '#1DA1F2', '#E1306C'], // Couleurs personnalisées + hoverOffset: 4 + }] + } + }); +} + +// Simuler la récupération des données sur le temps passé (tu devrais les récupérer depuis chrome.storage.local) +chrome.storage.local.get(['timeSpentFacebook', 'timeSpentTwitter', 'timeSpentInstagram'], function(data) { + const timeSpentData = { + facebook: data.timeSpentFacebook || 0, + twitter: data.timeSpentTwitter || 0, + instagram: data.timeSpentInstagram || 0 + }; + + displayPieChart(timeSpentData); +});