New Addon

Google BK
This commit is contained in:
2023-04-23 18:17:03 +07:00
parent 1c7fd2b476
commit 702d080a1e
248 changed files with 72745 additions and 0 deletions
@@ -0,0 +1,40 @@
from .uiserver import UiServer
from ..config import Config, Startable
from asyncio import create_task, Event
from injector import inject, singleton
from ..logger import getLogger
logger = getLogger(__name__)
@singleton
class Restarter(Startable):
@inject
def __init__(self, server: UiServer, config: Config):
self._server = server
self._config = config
self._old_options = config.getServerOptions()
self._restarted = Event()
async def start(self):
self._config.subscribe(self.trigger)
async def check(self):
if self._old_options == self._config.getServerOptions():
# no restart is necessary because the server didn't change
return
self._old_options = self._config.getServerOptions()
try:
# Restart the server
logger.info("Restarting Web-UI server")
await self._server.run()
self._restarted.set()
except Exception as e:
logger.error("Problem while restarting the Web-UI server " + logger.formatException(e))
def trigger(self):
create_task(self.check(), name="Web-UI Restarter")
async def waitForRestart(self):
await self._restarted.wait()
self._restarted.clear()