mirror of
https://github.com/CCOSTAN/Home-AssistantConfig.git
synced 2025-08-20 20:16:52 +00:00
Alexa Media Player ADDED - #421 - Added some test Notifications. (HA restart targetted notification)
This commit is contained in:
@@ -8,6 +8,7 @@ from homeassistant.helpers.event import async_call_later, async_track_time_inter
|
||||
|
||||
from aiogithubapi import AIOGitHubException, AIOGitHubRatelimit
|
||||
from integrationhelper import Logger
|
||||
from queueman import QueueManager
|
||||
|
||||
from custom_components.hacs.hacsbase.task_factory import HacsTaskFactory
|
||||
from custom_components.hacs.hacsbase.exceptions import HacsException
|
||||
@@ -21,6 +22,7 @@ from custom_components.hacs.helpers.get_defaults import (
|
||||
)
|
||||
|
||||
from custom_components.hacs.helpers.register_repository import register_repository
|
||||
from custom_components.hacs.helpers.remaining_github_calls import get_fetch_updates_for
|
||||
from custom_components.hacs.globals import removed_repositories, get_removed, is_removed
|
||||
from custom_components.hacs.repositories.removed import RemovedRepository
|
||||
|
||||
@@ -83,6 +85,7 @@ class Hacs:
|
||||
"""The base class of HACS, nested thoughout the project."""
|
||||
|
||||
token = f"{str(uuid.uuid4())}-{str(uuid.uuid4())}"
|
||||
action = False
|
||||
hacsweb = f"/hacsweb/{token}"
|
||||
hacsapi = f"/hacsapi/{token}"
|
||||
repositories = []
|
||||
@@ -98,6 +101,7 @@ class Hacs:
|
||||
version = None
|
||||
session = None
|
||||
factory = HacsTaskFactory()
|
||||
queue = QueueManager()
|
||||
system = System()
|
||||
recuring_tasks = []
|
||||
common = HacsCommon()
|
||||
@@ -170,10 +174,17 @@ class Hacs:
|
||||
self.hass, self.recuring_tasks_all, timedelta(minutes=800)
|
||||
)
|
||||
)
|
||||
self.recuring_tasks.append(
|
||||
async_track_time_interval(
|
||||
self.hass, self.prosess_queue, timedelta(minutes=10)
|
||||
)
|
||||
)
|
||||
|
||||
self.hass.bus.async_fire("hacs/reload", {"force": True})
|
||||
await self.recuring_tasks_installed()
|
||||
|
||||
await self.prosess_queue()
|
||||
|
||||
self.system.status.startup = False
|
||||
self.system.status.new = False
|
||||
self.system.status.background_task = False
|
||||
@@ -251,6 +262,27 @@ class Hacs:
|
||||
self.logger.critical("Resarting Home Assistant")
|
||||
self.hass.async_create_task(self.hass.async_stop(100))
|
||||
|
||||
async def prosess_queue(self, notarealarg=None):
|
||||
"""Recuring tasks for installed repositories."""
|
||||
if not self.queue.has_pending_tasks:
|
||||
self.logger.debug("Nothing in the queue")
|
||||
return
|
||||
if self.queue.running:
|
||||
self.logger.debug("Queue is already running")
|
||||
return
|
||||
|
||||
can_update = await get_fetch_updates_for(self.github)
|
||||
if can_update == 0:
|
||||
self.logger.info(
|
||||
"HACS is ratelimited, repository updates will resume later."
|
||||
)
|
||||
else:
|
||||
self.system.status.background_task = True
|
||||
self.hass.bus.async_fire("hacs/status", {})
|
||||
await self.queue.execute(can_update)
|
||||
self.system.status.background_task = False
|
||||
self.hass.bus.async_fire("hacs/status", {})
|
||||
|
||||
async def recuring_tasks_installed(self, notarealarg=None):
|
||||
"""Recuring tasks for installed repositories."""
|
||||
self.logger.debug(
|
||||
@@ -265,9 +297,8 @@ class Hacs:
|
||||
repository.status.installed
|
||||
and repository.data.category in self.common.categories
|
||||
):
|
||||
self.factory.tasks.append(self.factory.safe_update(repository))
|
||||
self.queue.add(self.factory.safe_update(repository))
|
||||
|
||||
await self.factory.execute()
|
||||
await self.handle_critical_repositories()
|
||||
self.system.status.background_task = False
|
||||
self.hass.bus.async_fire("hacs/status", {})
|
||||
@@ -284,9 +315,8 @@ class Hacs:
|
||||
self.logger.debug(self.github.ratelimits.reset_utc)
|
||||
for repository in self.repositories:
|
||||
if repository.data.category in self.common.categories:
|
||||
self.factory.tasks.append(self.factory.safe_common_update(repository))
|
||||
self.queue.add(self.factory.safe_common_update(repository))
|
||||
|
||||
await self.factory.execute()
|
||||
await self.load_known_repositories()
|
||||
await self.clear_out_removed_repositories()
|
||||
self.system.status.background_task = False
|
||||
@@ -350,6 +380,4 @@ class Hacs:
|
||||
continue
|
||||
if self.is_known(repo):
|
||||
continue
|
||||
self.factory.tasks.append(self.factory.safe_register(repo, category))
|
||||
await self.factory.execute()
|
||||
self.logger.info("Loading known repositories finished")
|
||||
self.queue.add(self.factory.safe_register(repo, category))
|
||||
|
@@ -5,7 +5,7 @@ from ..repositories.repository import HacsRepository
|
||||
from ..repositories.manifest import HacsManifest
|
||||
from ..store import async_save_to_store, async_load_from_store
|
||||
|
||||
from custom_components.hacs.globals import get_hacs, removed_repositories, get_removed
|
||||
from custom_components.hacs.globals import get_hacs
|
||||
from custom_components.hacs.helpers.register_repository import register_repository
|
||||
|
||||
|
||||
@@ -35,10 +35,6 @@ class HacsData:
|
||||
},
|
||||
)
|
||||
|
||||
await async_save_to_store(
|
||||
self.hacs.hass, "removed", [x.__dict__ for x in removed_repositories]
|
||||
)
|
||||
|
||||
# Repositories
|
||||
content = {}
|
||||
for repository in self.hacs.repositories:
|
||||
@@ -77,7 +73,6 @@ class HacsData:
|
||||
"""Restore saved data."""
|
||||
hacs = await async_load_from_store(self.hacs.hass, "hacs")
|
||||
repositories = await async_load_from_store(self.hacs.hass, "repositories")
|
||||
removed = await async_load_from_store(self.hacs.hass, "removed")
|
||||
try:
|
||||
if not hacs and not repositories:
|
||||
# Assume new install
|
||||
@@ -90,10 +85,6 @@ class HacsData:
|
||||
self.hacs.configuration.frontend_compact = hacs.get("compact", False)
|
||||
self.hacs.configuration.onboarding_done = hacs.get("onboarding_done", False)
|
||||
|
||||
for entry in removed:
|
||||
removed_repo = get_removed(entry["repository"])
|
||||
removed_repo.update_data(entry)
|
||||
|
||||
# Repositories
|
||||
for entry in repositories:
|
||||
repo = repositories[entry]
|
||||
|
Reference in New Issue
Block a user