@@ -399,50 +399,59 @@ messenger.menus.onClicked.addListener((info, tab) => {
399
399
400
400
401
401
function handleMenuClick ( info , messageId ) {
402
- // Lade die neuesten bayesData bei jedem Klick
402
+ // Lade die neuesten bayesData
403
403
messenger . storage . local
404
404
. get ( "bayesData" )
405
405
. then ( ( result ) => {
406
- bayesData = result . bayesData || { } ; // Stelle sicher, dass die neuesten Daten geladen sind
406
+ bayesData = result . bayesData || { } ;
407
+ return messenger . messages . listTags ( ) ;
408
+ } )
409
+ . then ( ( tags ) => {
410
+ allTags = tags ;
411
+ tagKeyToNameMap = { } ;
412
+ tagNameToKeyMap = { } ;
413
+ allTags . forEach ( ( tag ) => {
414
+ tagKeyToNameMap [ tag . key ] = tag . tag ;
415
+ tagNameToKeyMap [ tag . tag ] = tag . key ;
416
+ } ) ;
407
417
408
- // Aktualisiere die Tags und Mappings
409
- messenger . messages . listTags ( ) . then ( ( tags ) => {
410
- allTags = tags ;
411
- tagKeyToNameMap = { } ;
412
- tagNameToKeyMap = { } ;
413
- allTags . forEach ( ( tag ) => {
414
- tagKeyToNameMap [ tag . key ] = tag . tag ;
415
- tagNameToKeyMap [ tag . tag ] = tag . key ;
416
- } ) ;
418
+ const selectedMessagesPage = info . selectedMessages ;
417
419
418
- const messages = info . selectedMessages . messages ;
420
+ if ( info . menuItemId . startsWith ( "learn_" ) || info . menuItemId . startsWith ( "unlearn_" ) ) {
421
+ const isPositive = info . menuItemId . startsWith ( "learn_" ) ;
422
+ const tagKey = info . menuItemId . split ( "_" ) [ 1 ] ; // Extrahiere den tagKey
423
+ const tagName = tagKeyToNameMap [ tagKey ] ; // Hole den korrekten tagName aus der Map
419
424
420
- if ( info . menuItemId . startsWith ( "learn_" ) || info . menuItemId . startsWith ( "unlearn_" ) ) {
421
- const isPositive = info . menuItemId . startsWith ( "learn_" ) ;
422
- const tagKey = info . menuItemId . split ( "_" ) [ 1 ] ; // Extrahiere den tagKey
423
- const tagName = tagKeyToNameMap [ tagKey ] ; // Hole den korrekten tagName aus der Map
425
+ if ( ! tagName ) {
426
+ console . warn ( `No valid tag name for key " ${ tagKey } " found.` ) ;
427
+ return ;
428
+ }
424
429
425
- if ( ! tagName ) {
426
- console . warn ( `No valid tag name for key "${ tagKey } " found.` ) ;
427
- return ;
430
+ selectedMessagesPage . messages . forEach ( ( message ) => {
431
+ learnTagFromMail ( message . id , tagName , isPositive ) ;
432
+ } ) ;
433
+ const popupMessage = trans ( isPositive ? "trainingCompleteMessage" : "untrainingCompleteMessage" , [ tagName ] ) ;
434
+ openPopupWithMessage ( popupMessage ) ;
435
+ } else if ( info . menuItemId === "classify" ) {
436
+ ( async ( ) => {
437
+ let page = selectedMessagesPage ;
438
+ while ( true ) {
439
+ for ( let message of page . messages ) {
440
+ classifyEmail ( message . id ) ;
441
+ }
442
+ if ( page . id ) {
443
+ page = await messenger . messages . continueList ( page . id ) ;
444
+ } else {
445
+ break ;
446
+ }
428
447
}
429
-
430
- messages . forEach ( ( message ) => {
431
- learnTagFromMail ( message . id , tagName , isPositive ) ;
432
- const popupMessage = trans ( isPositive ? 'trainingCompleteMessage' : 'untrainingCompleteMessage' , [ tagName ] ) ;
433
- openPopupWithMessage ( popupMessage ) ;
434
- } ) ;
435
- } else if ( info . menuItemId === "classify" ) {
436
- messages . forEach ( ( message ) => {
437
- classifyEmail ( message . id ) ;
438
- } ) ;
439
448
const popupMessage = trans ( "classificationCompleteMessage" ) ;
440
449
openPopupWithMessage ( popupMessage ) ;
441
- } else if ( info . menuItemId === "show_info" ) {
442
- const messageId = messages [ 0 ] . id ;
443
- showEMailInfo ( messageId ) ;
444
- }
445
- } ) ;
450
+ } ) ( ) ;
451
+ } else if ( info . menuItemId === "show_info" ) {
452
+ const firstMessageId = selectedMessagesPage . messages [ 0 ] . id ;
453
+ showEMailInfo ( firstMessageId ) ;
454
+ }
446
455
} )
447
456
. catch ( ( error ) => {
448
457
console . error ( "Error loading bayesData:" , error ) ;
0 commit comments