refactoring

This commit is contained in:
Devaev Maxim
2020-05-27 02:30:49 +03:00
parent 49aca90c2e
commit 3a2bf53047
2 changed files with 17 additions and 14 deletions

View File

@@ -408,12 +408,12 @@ class KvmdServer(HttpServer): # pylint: disable=too-many-arguments,too-many-ins
# ===== SYSTEM TASKS
async def __stream_controller(self) -> None:
prev = 0
prev = False
while True:
cur = len(self.__sockets)
if prev == 0 and cur > 0:
cur = bool(self.__sockets)
if not prev and cur:
await self.__streamer.ensure_start(init_restart=True)
elif prev > 0 and cur == 0:
elif prev and not cur:
await self.__streamer.ensure_stop(immediately=False)
if self.__reset_streamer or self.__new_streamer_params:

View File

@@ -179,13 +179,9 @@ class Streamer: # pylint: disable=too-many-instance-attributes
async def get_state(self) -> Dict:
state = None
if self.__streamer_task:
session = self.__ensure_session()
session = self.__ensure_http_session()
try:
async with session.get(
url=f"http://{self.__host}:{self.__port}/state",
headers={"User-Agent": make_user_agent("KVMD")},
timeout=self.__timeout,
) as response:
async with session.get(self.__make_url("state")) as response:
aiotools.raise_not_200(response)
state = (await response.json())["result"]
except (aiohttp.ClientConnectionError, aiohttp.ServerConnectionError):
@@ -246,14 +242,21 @@ class Streamer: # pylint: disable=too-many-instance-attributes
# =====
def __ensure_session(self) -> aiohttp.ClientSession:
def __ensure_http_session(self) -> aiohttp.ClientSession:
if not self.__http_session:
kwargs: Dict = {
"headers": {"User-Agent": make_user_agent("KVMD")},
"timeout": aiohttp.ClientTimeout(total=self.__timeout),
}
if self.__unix_path:
self.__http_session = aiohttp.ClientSession(connector=aiohttp.UnixConnector(path=self.__unix_path))
else:
self.__http_session = aiohttp.ClientSession()
kwargs["connector"] = aiohttp.UnixConnector(path=self.__unix_path)
self.__http_session = aiohttp.ClientSession(**kwargs)
return self.__http_session
def __make_url(self, handle: str) -> str:
assert not handle.startswith("/"), handle
return f"http://{self.__host}:{self.__port}/{handle}"
# =====
@aiotools.atomic