mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2025-12-14 10:10:29 +08:00
simplified binary expose_ws()
This commit is contained in:
parent
7c507810f0
commit
9c694da00c
@ -154,7 +154,7 @@ class HidApi:
|
|||||||
|
|
||||||
# =====
|
# =====
|
||||||
|
|
||||||
@exposed_ws(3, binary=True)
|
@exposed_ws(3)
|
||||||
async def __ws_bin_mouse_move_handler(self, _: WsSession, data: bytes) -> None:
|
async def __ws_bin_mouse_move_handler(self, _: WsSession, data: bytes) -> None:
|
||||||
try:
|
try:
|
||||||
(to_x, to_y) = struct.unpack(">hh", data)
|
(to_x, to_y) = struct.unpack(">hh", data)
|
||||||
@ -164,11 +164,11 @@ class HidApi:
|
|||||||
return
|
return
|
||||||
self.__send_mouse_move_event(to_x, to_y)
|
self.__send_mouse_move_event(to_x, to_y)
|
||||||
|
|
||||||
@exposed_ws(4, binary=True)
|
@exposed_ws(4)
|
||||||
async def __ws_bin_mouse_relative_handler(self, _: WsSession, data: bytes) -> None:
|
async def __ws_bin_mouse_relative_handler(self, _: WsSession, data: bytes) -> None:
|
||||||
self.__process_ws_bin_delta_request(data, self.__hid.send_mouse_relative_event)
|
self.__process_ws_bin_delta_request(data, self.__hid.send_mouse_relative_event)
|
||||||
|
|
||||||
@exposed_ws(5, binary=True)
|
@exposed_ws(5)
|
||||||
async def __ws_bin_mouse_wheel_handler(self, _: WsSession, data: bytes) -> None:
|
async def __ws_bin_mouse_wheel_handler(self, _: WsSession, data: bytes) -> None:
|
||||||
self.__process_ws_bin_delta_request(data, self.__hid.send_mouse_wheel_event)
|
self.__process_ws_bin_delta_request(data, self.__hid.send_mouse_wheel_event)
|
||||||
|
|
||||||
|
|||||||
@ -132,15 +132,10 @@ _WS_BINARY = "_ws_binary"
|
|||||||
_WS_EVENT_TYPE = "_ws_event_type"
|
_WS_EVENT_TYPE = "_ws_event_type"
|
||||||
|
|
||||||
|
|
||||||
def exposed_ws(event_type: (str | int), binary: bool=False) -> Callable:
|
def exposed_ws(event_type: (str | int)) -> Callable:
|
||||||
if binary:
|
|
||||||
assert isinstance(event_type, int)
|
|
||||||
else:
|
|
||||||
assert isinstance(event_type, str)
|
|
||||||
|
|
||||||
def set_attrs(handler: Callable) -> Callable:
|
def set_attrs(handler: Callable) -> Callable:
|
||||||
setattr(handler, _WS_EXPOSED, True)
|
setattr(handler, _WS_EXPOSED, True)
|
||||||
setattr(handler, _WS_BINARY, binary)
|
setattr(handler, _WS_BINARY, isinstance(event_type, int))
|
||||||
setattr(handler, _WS_EVENT_TYPE, str(event_type))
|
setattr(handler, _WS_EVENT_TYPE, str(event_type))
|
||||||
return handler
|
return handler
|
||||||
return set_attrs
|
return set_attrs
|
||||||
@ -341,8 +336,11 @@ class HttpServer:
|
|||||||
|
|
||||||
def __add_exposed_ws(self, exposed: WsExposed) -> None:
|
def __add_exposed_ws(self, exposed: WsExposed) -> None:
|
||||||
if exposed.binary:
|
if exposed.binary:
|
||||||
self.__ws_bin_handlers[int(exposed.event_type)] = exposed.handler
|
event_type = int(exposed.event_type)
|
||||||
|
assert event_type not in self.__ws_bin_handlers
|
||||||
|
self.__ws_bin_handlers[event_type] = exposed.handler
|
||||||
else:
|
else:
|
||||||
|
assert exposed.event_type not in self.__ws_handlers
|
||||||
self.__ws_handlers[exposed.event_type] = exposed.handler
|
self.__ws_handlers[exposed.event_type] = exposed.handler
|
||||||
|
|
||||||
# =====
|
# =====
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user