mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2026-02-02 11:01:53 +08:00
batch relative api
This commit is contained in:
@@ -24,8 +24,10 @@ import os
|
|||||||
import stat
|
import stat
|
||||||
import functools
|
import functools
|
||||||
|
|
||||||
|
from typing import Tuple
|
||||||
from typing import Dict
|
from typing import Dict
|
||||||
from typing import Set
|
from typing import Set
|
||||||
|
from typing import Callable
|
||||||
|
|
||||||
from aiohttp.web import Request
|
from aiohttp.web import Request
|
||||||
from aiohttp.web import Response
|
from aiohttp.web import Response
|
||||||
@@ -144,21 +146,23 @@ class HidApi:
|
|||||||
|
|
||||||
@exposed_ws("mouse_relative")
|
@exposed_ws("mouse_relative")
|
||||||
async def __ws_mouse_relative_handler(self, _: WebSocketResponse, event: Dict) -> None:
|
async def __ws_mouse_relative_handler(self, _: WebSocketResponse, event: Dict) -> None:
|
||||||
try:
|
self.__process_delta_ws_request(event, self.__hid.send_mouse_relative_event)
|
||||||
delta_x = valid_hid_mouse_delta(event["delta"]["x"])
|
|
||||||
delta_y = valid_hid_mouse_delta(event["delta"]["y"])
|
|
||||||
except Exception:
|
|
||||||
return
|
|
||||||
self.__hid.send_mouse_relative_event(delta_x, delta_y)
|
|
||||||
|
|
||||||
@exposed_ws("mouse_wheel")
|
@exposed_ws("mouse_wheel")
|
||||||
async def __ws_mouse_wheel_handler(self, _: WebSocketResponse, event: Dict) -> None:
|
async def __ws_mouse_wheel_handler(self, _: WebSocketResponse, event: Dict) -> None:
|
||||||
|
self.__process_delta_ws_request(event, self.__hid.send_mouse_wheel_event)
|
||||||
|
|
||||||
|
def __process_delta_ws_request(self, event: Dict, handler: Callable[[int, int], None]) -> None:
|
||||||
try:
|
try:
|
||||||
delta_x = valid_hid_mouse_delta(event["delta"]["x"])
|
raw_delta = event["delta"]
|
||||||
delta_y = valid_hid_mouse_delta(event["delta"]["y"])
|
deltas = [
|
||||||
|
(valid_hid_mouse_delta(delta["x"]), valid_hid_mouse_delta(delta["y"]))
|
||||||
|
for delta in (raw_delta if isinstance(raw_delta, list) else [raw_delta])
|
||||||
|
]
|
||||||
except Exception:
|
except Exception:
|
||||||
return
|
return
|
||||||
self.__hid.send_mouse_wheel_event(delta_x, delta_y)
|
for delta_xy in deltas:
|
||||||
|
handler(*delta_xy)
|
||||||
|
|
||||||
# =====
|
# =====
|
||||||
|
|
||||||
@@ -192,14 +196,14 @@ class HidApi:
|
|||||||
|
|
||||||
@exposed_http("POST", "/hid/events/send_mouse_relative")
|
@exposed_http("POST", "/hid/events/send_mouse_relative")
|
||||||
async def __events_send_mouse_relative_handler(self, request: Request) -> Response:
|
async def __events_send_mouse_relative_handler(self, request: Request) -> Response:
|
||||||
delta_x = valid_hid_mouse_delta(request.query.get("delta_x"))
|
return self.__process_delta_request(request, self.__hid.send_mouse_relative_event)
|
||||||
delta_y = valid_hid_mouse_delta(request.query.get("delta_y"))
|
|
||||||
self.__hid.send_mouse_relative_event(delta_x, delta_y)
|
|
||||||
return make_json_response()
|
|
||||||
|
|
||||||
@exposed_http("POST", "/hid/events/send_mouse_wheel")
|
@exposed_http("POST", "/hid/events/send_mouse_wheel")
|
||||||
async def __events_send_mouse_wheel_handler(self, request: Request) -> Response:
|
async def __events_send_mouse_wheel_handler(self, request: Request) -> Response:
|
||||||
|
return self.__process_delta_request(request, self.__hid.send_mouse_wheel_event)
|
||||||
|
|
||||||
|
def __process_delta_request(self, request: Request, handler: Callable[[int, int], None]) -> Response:
|
||||||
delta_x = valid_hid_mouse_delta(request.query.get("delta_x"))
|
delta_x = valid_hid_mouse_delta(request.query.get("delta_x"))
|
||||||
delta_y = valid_hid_mouse_delta(request.query.get("delta_y"))
|
delta_y = valid_hid_mouse_delta(request.query.get("delta_y"))
|
||||||
self.__hid.send_mouse_wheel_event(delta_x, delta_y)
|
handler(delta_x, delta_y)
|
||||||
return make_json_response()
|
return make_json_response()
|
||||||
|
|||||||
Reference in New Issue
Block a user