mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2026-01-29 00:51:53 +08:00
refactoring
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user