Get python versions up-to-date.
I can't remember now why I did all this, but I did. It's fine.
This commit is contained in:
parent
7664f34de5
commit
a3cb632170
43
capture.py
43
capture.py
|
@ -41,40 +41,39 @@ def main() -> None:
|
|||
print("You cannot specify 'delay' and 'trigger'")
|
||||
sys.exit(1)
|
||||
|
||||
now = time.time()
|
||||
_do_delay(args.delay)
|
||||
_do_trigger(args.trigger)
|
||||
LOGGER.info("Capturing...")
|
||||
now = time.time()
|
||||
# Add dummy events to lock in the time start
|
||||
event_queue = queue.Queue()
|
||||
event_queue.put(
|
||||
mouse.ButtonEvent(
|
||||
event_type=mouse.UP,
|
||||
button=mouse.RIGHT,
|
||||
time=now,
|
||||
))
|
||||
event_queue.put(
|
||||
keyboard.KeyboardEvent(
|
||||
event_type=keyboard.KEY_UP,
|
||||
name=" ",
|
||||
scan_code=57,
|
||||
time=now,
|
||||
)
|
||||
)
|
||||
hook = functools.partial(_on_hook, event_queue)
|
||||
with open(args.output, "w") as output:
|
||||
hook = functools.partial(_on_hook, now, output)
|
||||
keyhook = keyboard.hook(hook)
|
||||
mousehook = mouse.hook(hook)
|
||||
print("Capturing...")
|
||||
try:
|
||||
keyboard.wait(args.trigger)
|
||||
except KeyboardInterrupt:
|
||||
keyboard.unhook(keyhook)
|
||||
mouse.unhook(mousehook)
|
||||
LOGGER.info("Wrote %s", args.output)
|
||||
|
||||
_save_events(event_queue, args.output)
|
||||
|
||||
def _on_hook(event_queue, event):
|
||||
def _on_hook(start, output, event):
|
||||
LOGGER.debug(str(event))
|
||||
event_queue.put(event, block=False)
|
||||
relative_time = event.time - start
|
||||
if isinstance(event, keyboard.KeyboardEvent):
|
||||
output.write(
|
||||
f"{relative_time},k,{event.event_type},{event.scan_code},{event.name}\n")
|
||||
elif isinstance(event, mouse.ButtonEvent):
|
||||
output.write(
|
||||
f"{relative_time},mb,{event.event_type},{event.button}\n")
|
||||
elif isinstance(event, mouse.MoveEvent):
|
||||
output.write(
|
||||
f"{relative_time},mm,{event.x},{event.y}\n")
|
||||
elif isinstance(event, mouse.WheelEvent):
|
||||
output.write(
|
||||
f"{relative_time},mw,{event.delta}\n")
|
||||
else:
|
||||
raise ValueError(f"{event} is not recognized")
|
||||
|
||||
def _do_delay(delay: int) -> None:
|
||||
if not delay:
|
||||
|
|
|
@ -73,6 +73,7 @@ def _play_event_mouse(event) -> None:
|
|||
mouse.press(event.button)
|
||||
elif isinstance(event, mouse.MoveEvent):
|
||||
mouse.move(event.x, event.y, absolute=True)
|
||||
# mouse.move(event.x, event.y)
|
||||
elif isinstance(event, mouse.WheelEvent):
|
||||
mouse.wheel(event.delta)
|
||||
|
||||
|
|
Loading…
Reference in New Issue