showing spam value. see #506
This commit is contained in:
parent
10a26210d0
commit
a940228a43
3 changed files with 64 additions and 1 deletions
|
|
@ -1379,6 +1379,14 @@
|
||||||
"message": "Spam Value",
|
"message": "Spam Value",
|
||||||
"description": ""
|
"description": ""
|
||||||
},
|
},
|
||||||
|
"Spam": {
|
||||||
|
"message": "Spam",
|
||||||
|
"description": ""
|
||||||
|
},
|
||||||
|
"Valid": {
|
||||||
|
"message": "Valid",
|
||||||
|
"description": ""
|
||||||
|
},
|
||||||
"Moved_to_Spam": {
|
"Moved_to_Spam": {
|
||||||
"message": "Moved to Spam",
|
"message": "Moved to Spam",
|
||||||
"description": ""
|
"description": ""
|
||||||
|
|
|
||||||
|
|
@ -617,9 +617,48 @@ switch (message.command) {
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case "showSpamReport":
|
||||||
|
const data = message.data;
|
||||||
|
if(document.getElementById('mzta-spam-report-banner')) return Promise.resolve(true);
|
||||||
|
|
||||||
|
const container = document.createElement('div');
|
||||||
|
container.id = 'mzta-spam-report-banner';
|
||||||
|
|
||||||
|
const isDark = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
|
||||||
|
|
||||||
|
let bgColor = '#f8f9fa';
|
||||||
|
let textColor = '#333';
|
||||||
|
let borderColor = '#ccc';
|
||||||
|
|
||||||
|
if (data.spamValue < (data.SpamThreshold || 50)) {
|
||||||
|
bgColor = isDark ? '#5a1a1a' : '#ffe6e6';
|
||||||
|
textColor = isDark ? '#ffcccc' : '#cc0000';
|
||||||
|
borderColor = '#cc0000';
|
||||||
|
} else {
|
||||||
|
bgColor = isDark ? '#1a401a' : '#e6ffe6';
|
||||||
|
textColor = isDark ? '#ccffcc' : '#006600';
|
||||||
|
borderColor = '#006600';
|
||||||
|
}
|
||||||
|
|
||||||
|
container.style.cssText = `background-color: ${bgColor}; color: ${textColor}; border-bottom: 1px solid ${borderColor}; 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 scoreText = document.createElement('strong');
|
||||||
|
scoreText.textContent = ((data.spamValue < (data.SpamThreshold || 50)) ? browser.i18n.getMessage("Spam") : browser.i18n.getMessage("Valid")) + " [" + data.spamValue + "/100]";
|
||||||
|
|
||||||
|
const reasonText = document.createElement('span');
|
||||||
|
reasonText.textContent = browser.i18n.getMessage("Explanation") + ": " + data.explanation;
|
||||||
|
|
||||||
|
container.appendChild(scoreText);
|
||||||
|
container.appendChild(reasonText);
|
||||||
|
|
||||||
|
document.body.insertBefore(container, document.body.firstChild);
|
||||||
|
return Promise.resolve(true);
|
||||||
|
|
||||||
default:
|
default:
|
||||||
// do nothing
|
// do nothing
|
||||||
return Promise.resolve(false);
|
return Promise.resolve(false);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
browser.runtime.sendMessage({ command: "checkSpamReport" });
|
||||||
|
|
@ -358,6 +358,22 @@ messenger.runtime.onMessage.addListener((message, sender, sendResponse) => {
|
||||||
case 'api_send_custom_text':
|
case 'api_send_custom_text':
|
||||||
browser.tabs.sendMessage(message.tabId, { command: "api_send_custom_text", custom_text: message.custom_text });
|
browser.tabs.sendMessage(message.tabId, { command: "api_send_custom_text", custom_text: message.custom_text });
|
||||||
break;
|
break;
|
||||||
|
case 'checkSpamReport':
|
||||||
|
async function _checkSpamReport(tabId) {
|
||||||
|
try {
|
||||||
|
if (sender.tab.type !== 'messageDisplay' && sender.tab.type !== 'mail') return;
|
||||||
|
let message = await browser.messageDisplay.getDisplayedMessage(tabId);
|
||||||
|
if (!message) return;
|
||||||
|
let report = await taSpamReport.loadReportData(message.headerMessageId);
|
||||||
|
if (report) {
|
||||||
|
browser.tabs.sendMessage(tabId, { command: "showSpamReport", data: report });
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
taLog.error("Error in checkSpamReport: " + e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_checkSpamReport(sender.tab.id);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue