small tweak to encoding detect
authorMarcel van der Veldt <m.vanderveldt@outlook.com>
Thu, 17 Oct 2024 10:54:59 +0000 (12:54 +0200)
committerMarcel van der Veldt <m.vanderveldt@outlook.com>
Thu, 17 Oct 2024 10:54:59 +0000 (12:54 +0200)
music_assistant/server/helpers/util.py

index 6cdde467bf6327a27f519d722368a0ddf765997d..34ef1610d5a355edd7804babba772ea2d61cde40 100644 (file)
@@ -185,9 +185,12 @@ async def close_async_generator(agen: AsyncGenerator[Any, None]) -> None:
 async def detect_charset(data: bytes, fallback="utf-8") -> str:
     """Detect charset of raw data."""
     try:
-        return (await asyncio.to_thread(chardet.detect, data))["encoding"]
-    except (ImportError, AttributeError):
-        return fallback
+        detected = await asyncio.to_thread(chardet.detect, data)
+        if detected and detected["encoding"] and detected["confidence"] > 0.75:
+            return detected["encoding"]
+    except Exception as err:
+        LOGGER.debug("Failed to detect charset: %s", err)
+    return fallback
 
 
 class TaskManager: