From 5e8114f206d4c76387379e92c13f47953f833b76 Mon Sep 17 00:00:00 2001 From: sto Date: Mon, 14 Apr 2025 19:27:45 +0200 Subject: [PATCH] Don't display and save completion times when data is reset --- scripts/content.js | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/scripts/content.js b/scripts/content.js index 00d34d7..8ae6867 100644 --- a/scripts/content.js +++ b/scripts/content.js @@ -38,23 +38,33 @@ function checkNewMessages() { // Check in-call messages. const messageElements = document.querySelectorAll("div[data-message-id] div[jscontroller]"); + let newElements = false; for (let e of messageElements) { if (seenMessages.has(e)) continue; + newElements = true; seenMessages.add(e); let completionTime = Math.floor((Date.now() - startTime) / 1000); // If awaiting times are available, use them first (i.e. the messages section just got opened). if (awaitingTimes.length) completionTime = awaitingTimes.shift(); + const messageNode = e.parentNode.parentNode.parentNode.parentNode; const rootNode = messageNode.parentNode.parentNode; const name = rootNode.firstChild.firstChild.innerHTML; const dTime = displayTime(completionTime); - messages.push({completionTime: completionTime, name: name, text: e.innerHTML, displayTime: dTime}); - setTimeout(() => { - e.innerHTML = `(${dTime}) ${e.innerHTML}`; - }, 20); + if (startTime > 0) { + messages.push({completionTime: completionTime, name: name, text: e.innerHTML, displayTime: dTime}); + + // Set timeout for rendering the completion time, required to avoid weird stuff. + setTimeout(() => { + e.innerHTML = `(${dTime}) ${e.innerHTML}`; + }, 20); + } + } + + if (newElements) { + chrome.storage.local.set({ messages: messages }); } - chrome.storage.local.set({ messages: messages }); // If awaiting messages are still present, but the messages section is opened with no new messages, // delete all awaiting messages (that should never happen though, there was an error somewhere).