import pyautogui from objects.inputs import MouseInput, KeyboardInput, ButtonType def press_mouse(mouse_input: MouseInput) -> None: """Presses mouse buttons at the given position.""" x, y = mouse_input.x, mouse_input.y button = mouse_input.click_type if button == ButtonType.LEFT: pyautogui.click(x, y, button='left') elif button == ButtonType.DOUBLE_LEFT: pyautogui.doubleClick(x, y) elif button == ButtonType.RIGHT: pyautogui.click(x, y, button='right') elif button == ButtonType.MIDDLE: pyautogui.click(x, y, button='middle') def press_keyboard(keyboard_input: KeyboardInput) -> None: """Types the given sequence of keys.""" text = keyboard_input.text if text: pyautogui.typewrite(text) if keyboard_input.press_enter: pyautogui.press('enter') def _execute(name, args): if name == "click_button": press_mouse(MouseInput(**args)) elif name == "type_text": press_keyboard(KeyboardInput(**args))