Fix messages API usage

This commit is contained in:
Jordan Wages 2025-06-24 22:41:22 -05:00
commit 1dc9f5c90e

View file

@ -17,8 +17,12 @@ let AiClassifier;
logger = await import(browser.runtime.getURL("logger.js")); logger = await import(browser.runtime.getURL("logger.js"));
logger.aiLog("background.js loaded ready to classify", {debug: true}); logger.aiLog("background.js loaded ready to classify", {debug: true});
try { try {
({ AiClassifier } = ChromeUtils.import("resource://aifilter/modules/AiClassifier.jsm")); if (typeof ChromeUtils !== "undefined") {
logger.aiLog("AiClassifier imported", {debug: true}); ({ AiClassifier } = ChromeUtils.import("resource://aifilter/modules/AiClassifier.jsm"));
logger.aiLog("AiClassifier imported", {debug: true});
} else {
logger.aiLog("ChromeUtils is undefined, skipping AiClassifier import", {level: 'warn'});
}
} catch (e) { } catch (e) {
logger.aiLog("failed to import AiClassifier", {level: 'error'}, e); logger.aiLog("failed to import AiClassifier", {level: 'error'}, e);
} }
@ -68,23 +72,27 @@ browser.runtime.onMessage.addListener(async (msg) => {
}); });
// Automatically classify new messages // Automatically classify new messages
browser.messages.onNewMailReceived.addListener(async (folder, messages) => { if (typeof messenger !== "undefined" && messenger.messages?.onNewMailReceived) {
logger.aiLog("onNewMailReceived", {debug: true}, messages); messenger.messages.onNewMailReceived.addListener(async (folder, messages) => {
for (const msg of (messages?.messages || messages || [])) { logger.aiLog("onNewMailReceived", {debug: true}, messages);
const id = msg.id ?? msg; for (const msg of (messages?.messages || messages || [])) {
try { const id = msg.id ?? msg;
const full = await browser.messages.getFull(id); try {
const text = full?.parts?.[0]?.body || ""; const full = await messenger.messages.getFull(id);
const criterion = (await browser.storage.local.get("autoCriterion")).autoCriterion || ""; const text = full?.parts?.[0]?.body || "";
const matched = await AiClassifier.classifyText(text, criterion); const criterion = (await browser.storage.local.get("autoCriterion")).autoCriterion || "";
if (matched) { const matched = await AiClassifier.classifyText(text, criterion);
await browser.messages.update(id, {tags: ["$label1"]}); if (matched) {
await messenger.messages.update(id, {tags: ["$label1"]});
}
} catch (e) {
logger.aiLog("failed to classify new mail", {level: 'error'}, e);
} }
} catch (e) {
logger.aiLog("failed to classify new mail", {level: 'error'}, e);
} }
} });
}); } else {
logger.aiLog("messenger.messages API unavailable, skipping new mail listener", {level: 'warn'});
}
// Catch any unhandled rejections // Catch any unhandled rejections
window.addEventListener("unhandledrejection", ev => { window.addEventListener("unhandledrejection", ev => {