docs: add examples/quickstart.py
This commit is contained in:
30
examples/quickstart.py
Normal file
30
examples/quickstart.py
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
"""Minimal example: generate one trajectory + click event.
|
||||||
|
|
||||||
|
Run: uv run python examples/quickstart.py
|
||||||
|
"""
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from ai_mouse import generate
|
||||||
|
|
||||||
|
start = (100, 200)
|
||||||
|
end = (900, 400)
|
||||||
|
points = generate(start, end, seed=0)
|
||||||
|
|
||||||
|
print(f"Generated {len(points)} events:")
|
||||||
|
print(f" first move: {points[0]}")
|
||||||
|
print(f" middle move: {points[len(points) // 2]}")
|
||||||
|
print(f" last move: {points[-3]}")
|
||||||
|
print(f" click-down: {points[-2]}")
|
||||||
|
print(f" click-up: {points[-1]}")
|
||||||
|
|
||||||
|
# Typical replay loop pattern. t_ms is cumulative from the start of the trace,
|
||||||
|
# so block your sender thread until time-since-start reaches each event's t_ms.
|
||||||
|
#
|
||||||
|
# import time
|
||||||
|
# t0 = time.monotonic()
|
||||||
|
# for x, y, t_ms in points:
|
||||||
|
# target_wallclock = t0 + t_ms / 1000.0
|
||||||
|
# while time.monotonic() < target_wallclock:
|
||||||
|
# pass
|
||||||
|
# # replace this with pyautogui / pynput / win32 mouse_event:
|
||||||
|
# # send_mouse_move(x, y)
|
||||||
Reference in New Issue
Block a user