refactoring

This commit is contained in:
Maxim Devaev
2022-04-12 09:47:03 +03:00
parent a29f9692c8
commit 6b3296c989

View File

@@ -36,8 +36,10 @@ from typing import AsyncGenerator
from typing import Optional from typing import Optional
from typing import Any from typing import Any
import aiohttp from aiohttp.web import Application
import aiohttp.web from aiohttp.web import Request
from aiohttp.web import Response
from aiohttp.web import WebSocketResponse
from ...logging import get_logger from ...logging import get_logger
@@ -131,7 +133,7 @@ class _Component: # pylint: disable=too-many-instance-attributes
@dataclasses.dataclass(frozen=True) @dataclasses.dataclass(frozen=True)
class _WsClient: class _WsClient:
ws: aiohttp.web.WebSocketResponse ws: WebSocketResponse
stream: bool stream: bool
def __str__(self) -> str: def __str__(self) -> str:
@@ -216,7 +218,7 @@ class KvmdServer(HttpServer): # pylint: disable=too-many-arguments,too-many-ins
# ===== STREAMER CONTROLLER # ===== STREAMER CONTROLLER
@exposed_http("POST", "/streamer/set_params") @exposed_http("POST", "/streamer/set_params")
async def __streamer_set_params_handler(self, request: aiohttp.web.Request) -> aiohttp.web.Response: async def __streamer_set_params_handler(self, request: Request) -> Response:
current_params = self.__streamer.get_params() current_params = self.__streamer.get_params()
for (name, validator, exc_cls) in [ for (name, validator, exc_cls) in [
("quality", valid_stream_quality, StreamerQualityNotSupported), ("quality", valid_stream_quality, StreamerQualityNotSupported),
@@ -237,7 +239,7 @@ class KvmdServer(HttpServer): # pylint: disable=too-many-arguments,too-many-ins
return make_json_response() return make_json_response()
@exposed_http("POST", "/streamer/reset") @exposed_http("POST", "/streamer/reset")
async def __streamer_reset_handler(self, _: aiohttp.web.Request) -> aiohttp.web.Response: async def __streamer_reset_handler(self, _: Request) -> Response:
self.__reset_streamer = True self.__reset_streamer = True
await self.__streamer_notifier.notify() await self.__streamer_notifier.notify()
return make_json_response() return make_json_response()
@@ -245,7 +247,7 @@ class KvmdServer(HttpServer): # pylint: disable=too-many-arguments,too-many-ins
# ===== WEBSOCKET # ===== WEBSOCKET
@exposed_http("GET", "/ws") @exposed_http("GET", "/ws")
async def __ws_handler(self, request: aiohttp.web.Request) -> aiohttp.web.WebSocketResponse: async def __ws_handler(self, request: Request) -> WebSocketResponse:
stream = valid_bool(request.query.get("stream", "true")) stream = valid_bool(request.query.get("stream", "true"))
ws = await self._make_ws_response(request) ws = await self._make_ws_response(request)
client = _WsClient(ws, stream) client = _WsClient(ws, stream)
@@ -280,7 +282,7 @@ class KvmdServer(HttpServer): # pylint: disable=too-many-arguments,too-many-ins
await self.__remove_ws_client(client) await self.__remove_ws_client(client)
@exposed_ws("ping") @exposed_ws("ping")
async def __ws_ping_handler(self, ws: aiohttp.web.WebSocketResponse, _: Dict) -> None: async def __ws_ping_handler(self, ws: WebSocketResponse, _: Dict) -> None:
await send_ws_event(ws, "pong", {}) await send_ws_event(ws, "pong", {})
# ===== SYSTEM STUFF # ===== SYSTEM STUFF
@@ -292,10 +294,10 @@ class KvmdServer(HttpServer): # pylint: disable=too-many-arguments,too-many-ins
aioproc.rename_process("main") aioproc.rename_process("main")
super().run(**kwargs) super().run(**kwargs)
async def _check_request_auth(self, exposed: HttpExposed, request: aiohttp.web.Request) -> None: async def _check_request_auth(self, exposed: HttpExposed, request: Request) -> None:
await check_request_auth(self.__auth_manager, exposed, request) await check_request_auth(self.__auth_manager, exposed, request)
async def _init_app(self, _: aiohttp.web.Application) -> None: async def _init_app(self, _: Application) -> None:
self.__run_system_task(self.__stream_controller) self.__run_system_task(self.__stream_controller)
for comp in self.__components: for comp in self.__components:
if comp.systask: if comp.systask:
@@ -323,7 +325,7 @@ class KvmdServer(HttpServer): # pylint: disable=too-many-arguments,too-many-ins
os.kill(os.getpid(), signal.SIGTERM) os.kill(os.getpid(), signal.SIGTERM)
self.__system_tasks.append(asyncio.create_task(wrapper())) self.__system_tasks.append(asyncio.create_task(wrapper()))
async def _on_shutdown(self, _: aiohttp.web.Application) -> None: async def _on_shutdown(self, _: Application) -> None:
logger = get_logger(0) logger = get_logger(0)
logger.info("Waiting short tasks ...") logger.info("Waiting short tasks ...")
@@ -342,7 +344,7 @@ class KvmdServer(HttpServer): # pylint: disable=too-many-arguments,too-many-ins
logger.info("On-Shutdown complete") logger.info("On-Shutdown complete")
async def _on_cleanup(self, _: aiohttp.web.Application) -> None: async def _on_cleanup(self, _: Application) -> None:
logger = get_logger(0) logger = get_logger(0)
for comp in self.__components: for comp in self.__components:
if comp.cleanup: if comp.cleanup: