Follow-up fix for multi item parsing from tags
authorMarcel van der Veldt <m.vanderveldt@outlook.com>
Tue, 18 Feb 2025 14:43:03 +0000 (15:43 +0100)
committerMarcel van der Veldt <m.vanderveldt@outlook.com>
Tue, 18 Feb 2025 14:43:03 +0000 (15:43 +0100)
music_assistant/helpers/tags.py
tests/fixtures/MyArtist - MyTitle.mp3

index 5425654728378f0a5a37ea4cff7f8e87f03c3199..590a1dc1904bc3d8e6ee9b9d1df12b09097b4657 100644 (file)
@@ -42,7 +42,10 @@ def split_items(org_str: str, allow_unsafe_splitters: bool = False) -> tuple[str
     if org_str is None:
         return ()
     if isinstance(org_str, list):
-        return tuple(x.strip() for x in org_str)
+        final_items: list[str] = []
+        for item in org_str:
+            final_items.extend(split_items(item, allow_unsafe_splitters))
+        return tuple(final_items)
     org_str = org_str.strip()
     if TAG_SPLITTER in org_str:
         return clean_tuple(org_str.split(TAG_SPLITTER))
@@ -64,7 +67,7 @@ def split_artists(
     splitters = ("featuring", " feat. ", " feat ", "feat.")
     if allow_ampersand:
         splitters = (*splitters, " & ")
-    artists = split_items(org_artists)
+    artists = split_items(org_artists, allow_unsafe_splitters=False)
     for item in artists:
         for splitter in splitters:
             if splitter not in item:
index 42319c420073e5de9327cfc7522dde721d53de88..57179680ac573fd84ef8d78282d7040af265c1f0 100644 (file)
Binary files a/tests/fixtures/MyArtist - MyTitle.mp3 and b/tests/fixtures/MyArtist - MyTitle.mp3 differ