From bd0efcb9fcc4e61ca68dca41f5d885e6a0849e5b Mon Sep 17 00:00:00 2001 From: Amor-Aprca <111441463+Amor-Aprca@users.noreply.github.com> Date: Sat, 8 Aug 2026 11:19:00 +0800 Subject: [PATCH] Update loader.py --- wpgskd/core/cdm/loader.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/wpgskd/core/cdm/loader.py b/wpgskd/core/cdm/loader.py index 559f37f..3e00b20 100644 --- a/wpgskd/core/cdm/loader.py +++ b/wpgskd/core/cdm/loader.py @@ -12,10 +12,15 @@ from wpgskd.core.cdm.detect import detect_cdm_type log = logging.getLogger("CDMLoader") class CdmProvider: - def __init__(self, cdm_name: str, device_dir: Path, cdm_api_config: Optional[Dict[str, Any]] = None): + def __init__(self, cdm_name: str, device_dir: Path, cdm_api_config: Optional[Any] = None): self.cdm_name = cdm_name self.device_dir = device_dir - self.cdm_api_config = cdm_api_config or {} + + if isinstance(cdm_api_config, list): + self.cdm_api_config = {item.get('name'): item for item in cdm_api_config if isinstance(item, dict) and item.get('name')} + else: + self.cdm_api_config = cdm_api_config or {} + self._cdm_instance: Optional[BaseCdm] = None @property @@ -258,4 +263,4 @@ class PlayReadyCdmAdapter(BaseCdm): kid = k.key_id.hex if hasattr(k.key_id, 'hex') else str(k.key_id).replace("-", "") key = k.key.hex() if isinstance(k.key, bytes) else str(k.key) result.append({"kid": kid, "key": key, "type": "CONTENT"}) - return result \ No newline at end of file + return result