mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2025-12-12 17:20:30 +08:00
exc for unsupported streamer params
This commit is contained in:
parent
ab13399a2a
commit
2cdd55386b
@ -90,6 +90,17 @@ from .api.msd import MsdApi
|
|||||||
from .api.streamer import StreamerApi
|
from .api.streamer import StreamerApi
|
||||||
|
|
||||||
|
|
||||||
|
# =====
|
||||||
|
class StreamerQualityNotSupported(OperationError):
|
||||||
|
def __init__(self) -> None:
|
||||||
|
super().__init__("This streamer does not support quality settings")
|
||||||
|
|
||||||
|
|
||||||
|
class StreamerResolutionNotSupported(OperationError):
|
||||||
|
def __init__(self) -> None:
|
||||||
|
super().__init__("This streamer does not support resolution settings")
|
||||||
|
|
||||||
|
|
||||||
# =====
|
# =====
|
||||||
@dataclasses.dataclass(frozen=True)
|
@dataclasses.dataclass(frozen=True)
|
||||||
class _Component:
|
class _Component:
|
||||||
@ -191,12 +202,15 @@ class KvmdServer(HttpServer): # pylint: disable=too-many-arguments,too-many-ins
|
|||||||
@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: aiohttp.web.Request) -> aiohttp.web.Response:
|
||||||
current_params = self.__streamer.get_params()
|
current_params = self.__streamer.get_params()
|
||||||
for (name, validator) in [
|
for (name, validator, exc_cls) in [
|
||||||
("quality", valid_stream_quality),
|
("quality", valid_stream_quality, StreamerQualityNotSupported),
|
||||||
("desired_fps", valid_stream_fps),
|
("desired_fps", valid_stream_fps, None),
|
||||||
("resolution", valid_stream_resolution),
|
("resolution", valid_stream_resolution, StreamerResolutionNotSupported),
|
||||||
]:
|
]:
|
||||||
if (value := request.query.get(name)):
|
if (value := request.query.get(name)):
|
||||||
|
if name not in current_params:
|
||||||
|
assert exc_cls is not None, name
|
||||||
|
raise exc_cls()
|
||||||
value = validator(value)
|
value = validator(value)
|
||||||
if current_params[name] != value:
|
if current_params[name] != value:
|
||||||
self.__new_streamer_params[name] = value
|
self.__new_streamer_params[name] = value
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user