INNER CODE UNIT · Python
cache_file
arnonym/ha-plugins · ha-sip/src/audio_cache.py:25
def cache_file(should_cache: bool, cache_dir: Optional[str], file_or_message: cache_type, file_name_or_message: str, file_to_cache: str) -> None:
if not should_cache:
return
if not cache_dir:
log(None, 'Warning: Caching enabled but no cache directory configured.')
return
file_name = get_cache_file_name(cache_dir, file_or_message, file_name_or_message)
try:
shutil.copyfile(file_to_cache, file_name)
except Exception as e:
log(None, f'Could not create cache file: {e}')
return
log(None, f'Created cache file: {file_name}')
def get_cache_file_name(cache_dir: str, file_or_message: cache_type, file_name_or_message: str) -> str:
cache_key_content = file_or_message + '|' + file_name_or_message
cache_key = hashlib.sha1(cache_key_content.encode()).hexdigest()[:10]