37 lines
1.0 KiB
Python
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()
|