-
Notifications
You must be signed in to change notification settings - Fork 0
/
monkeytype.py
80 lines (59 loc) · 2.58 KB
/
monkeytype.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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
from selenium import webdriver
import time
import pyautogui
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome() # add ur webdriver path here webdriver.Chrome(r"C:\chromedriver_win32\chromedriver.exe")
def login():
driver.get('https://monkeytype.com/')
driver.set_window_position(0, 0)
pyautogui.FAILSAFE = True
def writee(delay):
try:
while len(driver.find_elements(By.CLASS_NAME, "word")) != 0:
active_word = driver.find_element(By.CSS_SELECTOR, ".word.active")
letters = [letter.text for letter in active_word.find_elements(By.TAG_NAME, "letter")] + [' ']
pyautogui.write(letters, interval=delay)
except Exception as e:
pass
def playy(delay):
time.sleep(3)
pyautogui.doubleClick(x=222, y=258) # monekytype
pyautogui.doubleClick(x=222, y=258) # monekytype
time.sleep(1)
# just telling the user to select his diff modes
pyautogui.alert("Please select the mode and the time you want and THEN press OK !")
time.sleep(1)
driver.set_window_position(0, 0)
time.sleep(4)
writee(delay)
def display():
# Print keys in the first line
keys = list(data.keys())
print(*keys, sep='\t')
# Print corresponding values on subsequent lines
for i in range(len(next(iter(data.values())))):
values = [str(data[key][i]) for key in keys]
print(*values, sep='\t\t')
print("--------------------------------------")
# main shit
ans = "YES"
login()
data = {"wpm":[], "accu" :[] , "consis":[] ,"delay":[]}
while ans == "YES":
pyautogui.scroll(1000)
pyautogui.scroll(1000)
pyautogui.doubleClick(x=222, y=258)
delay = float(pyautogui.prompt(text='Enter the delay(seconds)\n 0 is instantaneous',default='0.1'))
playy(delay)
# to get the wpm , acc values a store it in a dict
wpm = driver.find_element(By.CSS_SELECTOR, ".group.wpm").find_element(By.CLASS_NAME, "bottom").text
acc = driver.find_element(By.CSS_SELECTOR, ".group.acc").find_element(By.CLASS_NAME, "bottom").text
consistency = driver.find_element(By.CSS_SELECTOR, ".group.flat.consistency").find_element(By.CLASS_NAME,
"bottom").text
data["wpm"].append(wpm)
data["consis"].append(consistency)
data["accu"].append(acc)
data["delay"].append(delay)
display()
ans = pyautogui.confirm(text='Wanna Type again??', title='yup?', buttons=['YES', 'NO'])