-
Notifications
You must be signed in to change notification settings - Fork 0
/
reading.py
62 lines (50 loc) · 2.02 KB
/
reading.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
"""Модуль представляет из себя описание логики всопроизведения последовательности кликов"""
from pynput.mouse import Button, Controller
from pynput import keyboard
from datetime import datetime
import time, json
def play_it(data, loop_status):
mouse = Controller()
previous_time = 0
with open('mouse_button.txt') as g:
mouse_button = g.read()
with open('stop_button.txt') as f:
stop_button = f.read()
def on_release(key):
if key.char == stop_button.lower():
k_listener.stop()
return False
k_listener = keyboard.Listener(on_release=on_release)
k_listener.start()
if loop_status:
while True:
if k_listener.is_alive():
for date, position in data.items():
if k_listener.is_alive():
date = datetime.strptime(date, "%m/%d/%Y, %H:%M:%S.%f")
if previous_time != 0 and previous_time < date:
time.sleep((date - previous_time).total_seconds())
mouse.position = position
mouse.press(Button[mouse_button])
mouse.release(Button[mouse_button])
previous_time = date
else:
break
else:
break
else:
for date, position in data.items():
if k_listener.is_alive():
date = datetime.strptime(date, "%m/%d/%Y, %H:%M:%S.%f")
if previous_time != 0:
time.sleep((date - previous_time).total_seconds())
mouse.position = position
mouse.press(Button[mouse_button])
mouse.release(Button[mouse_button])
previous_time = date
else:
break
def opening(path, loop_status):
with open(f'{path}', 'r') as f:
data = json.load(f)
play_it(data, loop_status)