Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
kgsensei
GitHub Repository: kgsensei/NitroType-AutoTyper
Path: blob/master/main.py
418 views
1
from selenium import webdriver
2
from selenium.webdriver.common.keys import Keys
3
from selenium.webdriver.common.by import By
4
from selenium.webdriver.support.ui import WebDriverWait
5
from selenium.webdriver.support import expected_conditions as EC
6
from selenium.common.exceptions import NoSuchElementException
7
import time,keyboard,random
8
import pyautogui as pya
9
from fake_useragent import UserAgent
10
11
def GetUA():
12
ua=UserAgent()
13
userAgent=ua.random
14
return userAgent
15
16
webdriver_location="hacked_chromedriver.exe"
17
options=webdriver.ChromeOptions()
18
options.use_chromium=True
19
options.binary_location=r'C:\Program Files\Google\Chrome\Application\chrome.exe'
20
options.add_argument("--user-agent="+GetUA())
21
options.add_argument('--disable-extensions')
22
options.add_argument("--start-maximized")
23
options.add_argument("--disable-plugins-discovery")
24
options.add_argument('--profile-directory=Default')
25
options.add_argument('--disable-blink-features=AutomationControlled')
26
options.add_experimental_option('useAutomationExtension',False)
27
options.add_experimental_option("excludeSwitches",["enable-automation"])
28
options.add_experimental_option('excludeSwitches',['enable-logging'])
29
browser=webdriver.Chrome(options=options,executable_path=webdriver_location)
30
browser.delete_all_cookies()
31
browser.get("https://www.nitrotype.com/race")
32
browser.execute_script("Object.defineProperty(navigator,'webdriver',{get:()=>undefined})")
33
runningEFE=False
34
35
keybind=input("-Start typing keybind, press on start of race: ")
36
autotof=int(input("-Automatically play through games [1/0]: "))
37
38
def exists(classname:str):
39
try:
40
if browser.find_element_by_css_selector(classname):
41
return True
42
except (Exception,NoSuchElementException):
43
return False
44
45
if autotof==0:
46
while True:
47
try:
48
browser.execute_script("let items=document.getElementsByClassName('ad');for(let i=0;i<items.length;i++){items[i].remove()}")
49
if keyboard.is_pressed(keybind)==True and runningEFE==False and browser.current_url=="https://www.nitrotype.com/race":
50
runningEFE=True
51
newtype=""
52
typestring=[]
53
print('-Waiting...')
54
if exists('.dash-letter')==False:
55
wait=WebDriverWait(browser,20)
56
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR,'.dash-letter')))
57
elements=browser.find_elements_by_class_name('dash-letter')
58
elements.pop()
59
print('-Reading...')
60
for e in elements:
61
text=e.get_attribute("textContent")
62
if "\xa0" in text:
63
text=str(text).replace("\xa0"," ")
64
typestring.append(text)
65
for c in typestring:
66
newtype=newtype+str(c)
67
if exists('.is-retracting'):
68
wait=WebDriverWait(browser,10)
69
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR,'.is-retracting')))
70
time.sleep(3)
71
print("-Working...")
72
pya.write(newtype,interval=0.0441)
73
print("-Finished...")
74
runningEFE=False
75
except Exception as e:
76
print("-Error: "+str(e))
77
else:
78
while True:
79
try:
80
browser.execute_script("let items=document.getElementsByClassName('ad');for(let i=0;i<items.length;i++){items[i].remove()}")
81
newtype=""
82
typestring=[]
83
print('-Waiting...')
84
if exists('.dash-letter')==False:
85
wait=WebDriverWait(browser,20)
86
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR,'.dash-letter')))
87
elements=browser.find_elements_by_class_name('dash-letter')
88
elements.pop()
89
print('-Reading...')
90
for e in elements:
91
text=e.get_attribute("textContent")
92
if "\xa0" in text:
93
text=str(text).replace("\xa0"," ")
94
typestring.append(text)
95
for c in typestring:
96
newtype=newtype+str(c)
97
if exists('.is-retracting'):
98
wait=WebDriverWait(browser,10)
99
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR,'.is-retracting')))
100
time.sleep(3)
101
print("-Working...")
102
pya.write(newtype,interval=0.0441)
103
print("-Finished...")
104
time.sleep(5)
105
browser.execute_script("window.location.reload()")
106
time.sleep(5)
107
except Exception as e:
108
print("-Error: "+str(e))
109
110