Files
home-assistant/custom_components/hacs/tasks/check_ratelimit.py
2022-05-04 10:50:54 -07:00

37 lines
1.0 KiB
Python

""""Hacs base setup task."""
from __future__ import annotations
from datetime import timedelta
from homeassistant.core import HomeAssistant
from ..base import HacsBase
from ..enums import HacsDisabledReason
from .base import HacsTask
async def async_setup_task(hacs: HacsBase, hass: HomeAssistant) -> Task:
"""Set up this task."""
return Task(hacs=hacs, hass=hass)
class Task(HacsTask):
""" "Hacs task base."""
_can_run_disabled = True
schedule = timedelta(minutes=5)
async def async_execute(self) -> None:
"""Execute the task."""
if (
not self.hacs.system.disabled
or self.hacs.system.disabled_reason != HacsDisabledReason.RATE_LIMIT
):
return
self.task_logger(self.hacs.log.debug, "Checking if ratelimit has lifted")
can_update = await self.hacs.async_can_update()
self.task_logger(self.hacs.log.debug, f"Ratelimit indicate we can update {can_update}")
if can_update > 0:
self.hacs.enable_hacs()