Fix: Prevent NoneType error whenever the track or album name is empty in a Plex playl...
authorcociweb <cociweb@users.noreply.github.com>
Thu, 15 May 2025 20:11:33 +0000 (22:11 +0200)
committerGitHub <noreply@github.com>
Thu, 15 May 2025 20:11:33 +0000 (22:11 +0200)
music_assistant/providers/plex/__init__.py

index 40d1244ea24de9e4cdbd50f72f2fccf16c13dd34..e997da59d39e59f1a1fcca3ff750e23542988f83 100644 (file)
@@ -425,17 +425,34 @@ class PlexProvider(MusicProvider):
         return cast("PlexObjectT", results)
 
     def _get_item_mapping(self, media_type: MediaType, key: str, name: str) -> ItemMapping:
-        name, version = parse_title_and_version(name)
-        if media_type in (MediaType.ALBUM, MediaType.TRACK):
-            name, version = parse_title_and_version(name)
-        else:
-            version = ""
+        """Get item mapping for a given media type, key, and name."""
+        if not name:
+            self.logger.info(
+                "Received None or empty name for media item. Media type: %s, Key: %s",
+                media_type,
+                key,
+            )
+            name = "[Unknown]"
+
+        mapped_name, mapped_version = parse_title_and_version(name)
+
+        if not mapped_name:
+            self.logger.info(
+                "Failed to map name for media item. Media type: %s, Key: %s, Original name: %s",
+                media_type,
+                key,
+                name,
+            )
+            mapped_name = "[Unknown]"
+        if not mapped_version and media_type not in (MediaType.ALBUM, MediaType.TRACK):
+            mapped_version = ""
+
         return ItemMapping(
             media_type=media_type,
             item_id=key,
             provider=self.lookup_key,
-            name=name,
-            version=version,
+            name=mapped_name,
+            version=mapped_version,
         )
 
     async def _get_or_create_artist_by_name(self, artist_name: str) -> Artist | ItemMapping: