33import os
44import sys
55
6- import taglib
76from beets import importer , plugins
87from beets .autotag import AlbumMatch , TrackMatch
8+ from beets .library import MediaFile
99from beets .ui import UserError , _open_library , colorize , print_
1010from beets .ui .commands import show_change , summarize_items
1111from beets .util import displayable_path
@@ -439,11 +439,15 @@ def __init__(
439439 # afaik the import_task only gives paths when we _copied_
440440 # so, because with as_is data its more likely that people
441441 # _move_ the files, we keep track of the paths before import
442- self .track_paths_before_import = list (self .track_paths_before_import )
443- self .taglib_tags = [
444- taglib . File (fp ).tags for fp in self .track_paths_before_import
442+ self ._track_paths_before_import = list (super () .track_paths_before_import )
443+ self ._tags_before_import = [
444+ MediaFile (fp ).as_dict () for fp in self ._track_paths_before_import
445445 ]
446446
447+ @property
448+ def track_paths_before_import (self ) -> list [str ]:
449+ return self ._track_paths_before_import
450+
447451 def debug (self ):
448452 return config
449453
@@ -456,20 +460,23 @@ def run_and_capture_output(self) -> tuple[str, str]:
456460 err , out = super ().run_and_capture_output ()
457461
458462 # add some basic info of the added items to the preview
459- # I do not know how to get a quick dump of file metadata using beets,
460- # so we simply use taglib for now
461463 self .preview += "\n \n "
462- if len (self .track_paths_before_import ) == 0 :
464+ if len (self ._track_paths_before_import ) == 0 :
463465 self .preview += "No files to import."
464466 else :
465467 self .preview += (
466- f"Metadata in { len (self .track_paths_before_import )} file(s)\n \n "
468+ f"Metadata in { len (self ._track_paths_before_import )} file(s)\n \n "
467469 )
468- for fp in self .track_paths_before_import :
470+ for idx , fp in enumerate ( self ._track_paths_before_import ) :
469471 self .preview += f" { fp } \n "
470- tags = taglib .File (fp ).tags
471- for tag in tags .keys ():
472- self .preview += f" { tag .lower ()} : { tags [tag ][0 ]} \n "
472+ tags = self ._tags_before_import [idx ]
473+ for key , val in tags .items ():
474+ if val is not None and key not in ["art" , "images" ]:
475+ self .preview += f" { key .lower ()} : { val } \n "
476+ if key == "art" :
477+ self .preview += f" art: found artwork\n "
478+ if key == "images" :
479+ self .preview += f" images: found 3\n "
473480 self .preview += "--------------------------------------------\n "
474481
475482 self .preview += "\n \n (This is no guarantee the import worked)"
0 commit comments