mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2025-12-12 01:00:29 +08:00
api refactoring
This commit is contained in:
parent
08fc413044
commit
4447e49abb
@ -69,14 +69,17 @@ class HidApi:
|
|||||||
async def __state_handler(self, _: Request) -> Response:
|
async def __state_handler(self, _: Request) -> Response:
|
||||||
return make_json_response(await self.__hid.get_state())
|
return make_json_response(await self.__hid.get_state())
|
||||||
|
|
||||||
@exposed_http("POST", "/hid/keyboard/set_params")
|
@exposed_http("POST", "/hid/set_params")
|
||||||
async def __keyboard_set_params_handler(self, request: Request) -> Response:
|
async def __set_params_handler(self, request: Request) -> Response:
|
||||||
self.__hid.set_keyboard_output(valid_hid_keyboard_output(request.query.get("output")))
|
params = {
|
||||||
return make_json_response()
|
key: validator(request.query.get(key))
|
||||||
|
for (key, validator) in [
|
||||||
@exposed_http("POST", "/hid/mouse/set_params")
|
("keyboard_output", valid_hid_keyboard_output),
|
||||||
async def __mouse_set_params_handler(self, request: Request) -> Response:
|
("mouse_output", valid_hid_mouse_output),
|
||||||
self.__hid.set_mouse_output(valid_hid_mouse_output(request.query.get("output")))
|
]
|
||||||
|
if request.query.get(key) is not None
|
||||||
|
}
|
||||||
|
await self.__hid.set_params(**params) # type: ignore
|
||||||
return make_json_response()
|
return make_json_response()
|
||||||
|
|
||||||
@exposed_http("POST", "/hid/set_connected")
|
@exposed_http("POST", "/hid/set_connected")
|
||||||
|
|||||||
@ -25,6 +25,7 @@ from typing import Dict
|
|||||||
from typing import Iterable
|
from typing import Iterable
|
||||||
from typing import AsyncGenerator
|
from typing import AsyncGenerator
|
||||||
from typing import Type
|
from typing import Type
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
from .. import BasePlugin
|
from .. import BasePlugin
|
||||||
from .. import get_plugin_class
|
from .. import get_plugin_class
|
||||||
@ -67,11 +68,9 @@ class BaseHid(BasePlugin):
|
|||||||
def send_mouse_wheel_event(self, delta_x: int, delta_y: int) -> None:
|
def send_mouse_wheel_event(self, delta_x: int, delta_y: int) -> None:
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
|
||||||
def set_keyboard_output(self, output: str) -> None:
|
def set_params(self, keyboard_output: Optional[str]=None, mouse_output: Optional[str]=None) -> None:
|
||||||
_ = output
|
_ = keyboard_output
|
||||||
|
_ = mouse_output
|
||||||
def set_mouse_output(self, output: str) -> None:
|
|
||||||
_ = output
|
|
||||||
|
|
||||||
def set_connected(self, connected: bool) -> None:
|
def set_connected(self, connected: bool) -> None:
|
||||||
_ = connected
|
_ = connected
|
||||||
|
|||||||
@ -31,6 +31,7 @@ from typing import Dict
|
|||||||
from typing import Iterable
|
from typing import Iterable
|
||||||
from typing import Generator
|
from typing import Generator
|
||||||
from typing import AsyncGenerator
|
from typing import AsyncGenerator
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
from ....logging import get_logger
|
from ....logging import get_logger
|
||||||
|
|
||||||
@ -252,11 +253,14 @@ class BaseMcuHid(BaseHid, multiprocessing.Process): # pylint: disable=too-many-
|
|||||||
def send_mouse_wheel_event(self, delta_x: int, delta_y: int) -> None:
|
def send_mouse_wheel_event(self, delta_x: int, delta_y: int) -> None:
|
||||||
self.__queue_event(MouseWheelEvent(delta_x, delta_y))
|
self.__queue_event(MouseWheelEvent(delta_x, delta_y))
|
||||||
|
|
||||||
def set_keyboard_output(self, output: str) -> None:
|
def set_params(self, keyboard_output: Optional[str]=None, mouse_output: Optional[str]=None) -> None:
|
||||||
self.__queue_event(SetKeyboardOutputEvent(output), clear=True)
|
events: List[BaseEvent] = []
|
||||||
|
if keyboard_output is not None:
|
||||||
def set_mouse_output(self, output: str) -> None:
|
events.append(SetKeyboardOutputEvent(keyboard_output))
|
||||||
self.__queue_event(SetMouseOutputEvent(output), clear=True)
|
if mouse_output is not None:
|
||||||
|
events.append(SetMouseOutputEvent(mouse_output))
|
||||||
|
for (index, event) in enumerate(events, 1):
|
||||||
|
self.__queue_event(event, clear=(index == len(events)))
|
||||||
|
|
||||||
def set_connected(self, connected: bool) -> None:
|
def set_connected(self, connected: bool) -> None:
|
||||||
self.__queue_event(SetConnectedEvent(connected), clear=True)
|
self.__queue_event(SetConnectedEvent(connected), clear=True)
|
||||||
|
|||||||
@ -231,7 +231,7 @@ export function Hid() {
|
|||||||
|
|
||||||
var __clickOutputsRadio = function(hid) {
|
var __clickOutputsRadio = function(hid) {
|
||||||
let output = tools.radioGetValue(`hid-outputs-${hid}-radio`);
|
let output = tools.radioGetValue(`hid-outputs-${hid}-radio`);
|
||||||
let http = tools.makeRequest("POST", `/api/hid/${hid}/set_params?output=${output}`, function() {
|
let http = tools.makeRequest("POST", `/api/hid/set_params?${hid}_output=${output}`, function() {
|
||||||
if (http.readyState === 4) {
|
if (http.readyState === 4) {
|
||||||
if (http.status !== 200) {
|
if (http.status !== 200) {
|
||||||
wm.error("Can't configure HID:<br>", http.responseText);
|
wm.error("Can't configure HID:<br>", http.responseText);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user