showing the processing status for the antispam filter. see #658

This commit is contained in:
mic 2026-02-16 21:54:17 +01:00
parent 25a979e9fb
commit ae44596106
3 changed files with 51 additions and 0 deletions

View file

@ -1888,5 +1888,9 @@
"copy_text": {
"message": "copy",
"description": ""
},
"spam_check_in_progress": {
"message": "Spam check in progress...",
"description": ""
}
}

View file

@ -617,7 +617,38 @@ switch (message.command) {
break;
case "showSpamCheckInProgress":
if(document.getElementById('mzta-spam-report-banner')) return Promise.resolve(true);
if(document.getElementById('mzta-spam-check-progress')) return Promise.resolve(true);
const containerProgress = document.createElement('div');
containerProgress.id = 'mzta-spam-check-progress';
const isDarkProgress = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
let bgColorProgress = isDarkProgress ? '#003366' : '#e6f2ff';
let textColorProgress = isDarkProgress ? '#cce5ff' : '#004085';
let borderColorProgress = isDarkProgress ? '#004085' : '#b8daff';
containerProgress.style.cssText = `background-color: ${bgColorProgress}; color: ${textColorProgress}; border-bottom: 1px solid ${borderColorProgress}; padding: 8px 12px; font-family: system-ui, -apple-system, sans-serif; font-size: 13px; display: flex; align-items: center; gap: 15px; width: 100%; box-sizing: border-box;`;
const textProgress = document.createElement('strong');
textProgress.textContent = browser.i18n.getMessage("spam_check_in_progress");
const loadingImg = document.createElement('img');
loadingImg.src = browser.runtime.getURL("/images/loading.gif");
loadingImg.style.cssText = "height: 16px; width: 16px;";
containerProgress.appendChild(loadingImg);
containerProgress.appendChild(textProgress);
document.body.insertBefore(containerProgress, document.body.firstChild);
return Promise.resolve(true);
case "showSpamReport":
const progressBanner = document.getElementById('mzta-spam-check-progress');
if(progressBanner) progressBanner.remove();
const data = message.data;
if(document.getElementById('mzta-spam-report-banner')) return Promise.resolve(true);

View file

@ -371,6 +371,8 @@ messenger.runtime.onMessage.addListener((message, sender, sendResponse) => {
let report = await taSpamReport.loadReportData(message.headerMessageId);
if (report) {
browser.tabs.sendMessage(tabId, { command: "showSpamReport", data: report });
} else if (await taSpamReport.isProcessing(message.headerMessageId)) {
browser.tabs.sendMessage(tabId, { command: "showSpamCheckInProgress" });
}
} catch (e) {
taLog.error("Error in checkSpamReport: " + e);
@ -1180,6 +1182,20 @@ async function processEmails(args) {
continue;
}
}
await taSpamReport.setProcessing(message.headerMessageId);
if (prefs_init.spamfilter_show_msg_panel) {
let tabs = await browser.tabs.query({ active: true, currentWindow: true });
if (tabs.length > 0) {
let activeTab = tabs[0];
let displayedMessage = await browser.messageDisplay.getDisplayedMessage(activeTab.id);
if (displayedMessage && displayedMessage.id === message.id) {
browser.tabs.sendMessage(activeTab.id, { command: "showSpamCheckInProgress" });
}
}
}
let curr_prompt_spamfilter = await getSpamFilterPrompt();
// console.log(">>>>>>>>>>>>> curr_prompt_spamfilter: " + JSON.stringify(curr_prompt_spamfilter));
let chatgpt_lang = await taPromptUtils.getDefaultLang(curr_prompt_spamfilter);