Skip to content

Commit

Permalink
Support classification of more than 100 selected mails
Browse files Browse the repository at this point in the history
  • Loading branch information
minutogit committed Feb 3, 2025
1 parent 7f84496 commit 5341ab3
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 35 deletions.
77 changes: 43 additions & 34 deletions src/background.js
Original file line number Diff line number Diff line change
Expand Up @@ -399,50 +399,59 @@ messenger.menus.onClicked.addListener((info, tab) => {


function handleMenuClick(info, messageId) {
// Lade die neuesten bayesData bei jedem Klick
// Lade die neuesten bayesData
messenger.storage.local
.get("bayesData")
.then((result) => {
bayesData = result.bayesData || {}; // Stelle sicher, dass die neuesten Daten geladen sind
bayesData = result.bayesData || {};
return messenger.messages.listTags();
})
.then((tags) => {
allTags = tags;
tagKeyToNameMap = {};
tagNameToKeyMap = {};
allTags.forEach((tag) => {
tagKeyToNameMap[tag.key] = tag.tag;
tagNameToKeyMap[tag.tag] = tag.key;
});

// Aktualisiere die Tags und Mappings
messenger.messages.listTags().then((tags) => {
allTags = tags;
tagKeyToNameMap = {};
tagNameToKeyMap = {};
allTags.forEach((tag) => {
tagKeyToNameMap[tag.key] = tag.tag;
tagNameToKeyMap[tag.tag] = tag.key;
});
const selectedMessagesPage = info.selectedMessages;

const messages = info.selectedMessages.messages;
if (info.menuItemId.startsWith("learn_") || info.menuItemId.startsWith("unlearn_")) {
const isPositive = info.menuItemId.startsWith("learn_");
const tagKey = info.menuItemId.split("_")[1]; // Extrahiere den tagKey
const tagName = tagKeyToNameMap[tagKey]; // Hole den korrekten tagName aus der Map

if (info.menuItemId.startsWith("learn_") || info.menuItemId.startsWith("unlearn_")) {
const isPositive = info.menuItemId.startsWith("learn_");
const tagKey = info.menuItemId.split("_")[1]; // Extrahiere den tagKey
const tagName = tagKeyToNameMap[tagKey]; // Hole den korrekten tagName aus der Map
if (!tagName) {
console.warn(`No valid tag name for key "${tagKey}" found.`);
return;
}

if (!tagName) {
console.warn(`No valid tag name for key "${tagKey}" found.`);
return;
selectedMessagesPage.messages.forEach((message) => {
learnTagFromMail(message.id, tagName, isPositive);
});
const popupMessage = trans(isPositive ? "trainingCompleteMessage" : "untrainingCompleteMessage",[tagName]);
openPopupWithMessage(popupMessage);
} else if (info.menuItemId === "classify") {
(async () => {
let page = selectedMessagesPage;
while (true) {
for (let message of page.messages) {
classifyEmail(message.id);
}
if (page.id) {
page = await messenger.messages.continueList(page.id);
} else {
break;
}
}

messages.forEach((message) => {
learnTagFromMail(message.id, tagName, isPositive);
const popupMessage = trans(isPositive ? 'trainingCompleteMessage' : 'untrainingCompleteMessage', [tagName]);
openPopupWithMessage(popupMessage);
});
} else if (info.menuItemId === "classify") {
messages.forEach((message) => {
classifyEmail(message.id);
});
const popupMessage = trans("classificationCompleteMessage");
openPopupWithMessage(popupMessage);
} else if (info.menuItemId === "show_info") {
const messageId = messages[0].id;
showEMailInfo(messageId);
}
});
})();
} else if (info.menuItemId === "show_info") {
const firstMessageId = selectedMessagesPage.messages[0].id;
showEMailInfo(firstMessageId);
}
})
.catch((error) => {
console.error("Error loading bayesData:", error);
Expand Down
2 changes: 1 addition & 1 deletion src/manifest.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"manifest_version": 2,
"name": "PrioMailbox",
"version": "1.4.0",
"version": "1.4.1",
"default_locale": "en",
"description": "PrioMailbox organizes your emails in Thunderbird with intelligent, trainable tags. Important messages are highlighted, while unimportant ones are hidden.",
"icons": {
Expand Down

0 comments on commit 5341ab3

Please sign in to comment.