homeassistant/custom_components/hacs/webresponses/category.py

40 lines
1.4 KiB
Python
Raw Normal View History

from aiohttp import web
from custom_components.hacs.helpers.functions.logger import getLogger
from custom_components.hacs.helpers.functions.path_exsist import async_path_exsist
from custom_components.hacs.share import get_hacs
_LOGGER = getLogger()
async def async_serve_category_file(request, requested_file):
hacs = get_hacs()
try:
if requested_file.startswith("themes/"):
servefile = f"{hacs.core.config_path}/{requested_file}"
else:
servefile = f"{hacs.core.config_path}/www/community/{requested_file}"
if await async_path_exsist(servefile):
_LOGGER.debug("Serving %s from %s", requested_file, servefile)
response = web.FileResponse(servefile)
if requested_file.startswith("themes/"):
response.headers["Cache-Control"] = "public, max-age=2678400"
else:
response.headers["Cache-Control"] = "no-store, max-age=0"
response.headers["Pragma"] = "no-store"
return response
else:
_LOGGER.error(
"%s tried to request '%s' but the file does not exist",
request.remote,
servefile,
)
except (Exception, BaseException) as exception:
_LOGGER.debug(
"there was an issue trying to serve %s - %s", requested_file, exception
)
return web.Response(status=404)