Cache media player url hashing (#106400)

This commit is contained in:
J. Nick Koston 2023-12-25 21:03:35 -10:00 committed by GitHub
parent 3eef1a3f6a
commit b17bec2b0a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -8,6 +8,7 @@ from contextlib import suppress
import datetime as dt
from enum import StrEnum
import functools as ft
from functools import lru_cache
import hashlib
from http import HTTPStatus
import logging
@ -496,6 +497,12 @@ CACHED_PROPERTIES_WITH_ATTR_ = {
}
@lru_cache
def _url_hash(url: str) -> str:
"""Create hash for media image url."""
return hashlib.sha256(url.encode("utf-8")).hexdigest()[:16]
class MediaPlayerEntity(Entity, cached_properties=CACHED_PROPERTIES_WITH_ATTR_):
"""ABC for media player entities."""
@ -636,7 +643,7 @@ class MediaPlayerEntity(Entity, cached_properties=CACHED_PROPERTIES_WITH_ATTR_):
return self._attr_media_image_hash
if (url := self.media_image_url) is not None:
return hashlib.sha256(url.encode("utf-8")).hexdigest()[:16]
return _url_hash(url)
return None