Skip to content
This repository was archived by the owner on Jul 2, 2021. It is now read-only.

Commit ae46111

Browse files
Added support for India Typing.
1 parent 54da7dc commit ae46111

File tree

6 files changed

+59
-6
lines changed

6 files changed

+59
-6
lines changed

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,11 @@ As of now, the sites that work are:
66
- [10FastFingers](https://10fastfingers.com/) (Normal tests and [custom text](https://10fastfingers.com/text-practice/new))
77
- [TypeRacer](https://play.typeracer.com/)
88
- [TypingTestNow](https://typingtestnow.com/)
9-
- [Bing Typing Test](https://www.bing.com/search?q=typing+test/)
9+
- [Bing Typing Test](https://www.bing.com/search?q=typing+test)
1010
- [LiveChat Inc](https://www.livechatinc.com/typing-speed-test/)
1111
- [QuickTypingTest](https://www.quicktypingtest.com/)
1212
- [AOEU Typing Speed Test](https://typing-speed-test.aoeu.eu/)
13+
- [India Typing](http://indiatyping.com/index.php/typing-test/english-typing-test)
1314

1415
I am planning to add support for more.
1516

@@ -62,5 +63,6 @@ On **Bing Typing Test**, the button appears in the typing test item **to the rig
6263
On **LiveChat Inc**, the button appears in the header **just below the countdown timer**.
6364
On **QuickTypingTest**, the button appears at the **top of the page** in the navbar.
6465
On **AOEU Typing Speed Test**, the button appears **just above the text prompt** to the right of the flags.
66+
On **India Typing**, the button appears **to the right of the test frame**.
6567

6668
**Note: On 10FastFingers, if you end up going through the entire text, the words will continue to autofill. If you continue to press space it can cause you to get incorrect words marked, despite the text being over.**

typecheat-bookmark.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,6 @@
2323
</head>
2424
<body style="font-family: Roboto, Arial, sans-serif;">
2525
<h1>Drag the bookmark below into your bookmarks bar</h1>
26-
<a style="color: black; text-decoration: none; padding: 20px; background-color: lightgray; text-align: center; border-radius: 25px;" href="javascript:/* TypeCheat - A JS script to cheat on certain online typing tests Copyright (C) 2020 hackermancool This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ var tText,tWords,cWord,tField,workWord,url=window.location.href.split(&quot;/&quot;)[2].replace(&quot;www.&quot;,&quot;&quot;),site=-1,altMode=0;switch(url){case&quot;10fastfingers.com&quot;:console.log(&quot;~~~~~~~~~~~~~~~~~~~\n TypeCheat Active! \nSite: 10FastFingers\n~~~~~~~~~~~~~~~~~~~&quot;),site=0,&quot;text&quot;==window.location.href.split(&quot;/&quot;)[3]&&(altMode=1);break;case&quot;typeracer.com&quot;:case&quot;play.typeracer.com&quot;:console.log(&quot;~~~~~~~~~~~~~~~~~~~\n TypeCheat Active! \nSite: TypeRacer\n~~~~~~~~~~~~~~~~~~~&quot;),site=1;break;case&quot;typingtestnow.com&quot;:console.log(&quot;~~~~~~~~~~~~~~~~~~~\n TypeCheat Active! \nSite: TypingTestNow\n~~~~~~~~~~~~~~~~~~~&quot;),site=2;break;case&quot;bing.com&quot;:console.log(&quot;~~~~~~~~~~~~~~~~~~~\n TypeCheat Active! \nSite: Bing Test\n~~~~~~~~~~~~~~~~~~~&quot;),site=3;break;case&quot;livechatinc.com&quot;:console.log(&quot;~~~~~~~~~~~~~~~~~~~\n TypeCheat Active! \nSite: LiveChat Inc\n~~~~~~~~~~~~~~~~~~~&quot;),site=4;break;case&quot;quicktypingtest.com&quot;:console.log(&quot; ~~~~~~~~~~~~~~~~~~~\n TypeCheat Active! \nSite: QuickTypingTest\n ~~~~~~~~~~~~~~~~~~~&quot;),site=5;break;case&quot;typing-speed-test.aoeu.eu&quot;:console.log(&quot;~~~~~~~~~~~~~~~~~~~\n TypeCheat Active! \nSite: AOEU Test\n~~~~~~~~~~~~~~~~~~~&quot;),site=6}switch(site){case 0:tText=document.getElementById(&quot;row1&quot;),tWords=[];for(var i=0;i<tText.children.length;i++)tWords.push(tText.children[i].innerText);tField=null,(cWord=0)==altMode?tField=document.getElementById(&quot;inputfield&quot;):1==altMode&&(tField=document.getElementById(&quot;text_typed&quot;)),tField.addEventListener(&quot;keyup&quot;,function(e){32==e.keyCode&&(tField.value=tWords[cWord],cWord++)});break;case 1:tText=document.querySelector(&quot;#gwt-uid-15 > table > tbody > tr:nth-child(2) > td > table > tbody > tr:nth-child(1) > td > table > tbody > tr:nth-child(1) > td&quot;),tWords=tText.innerText.split(&quot; &quot;),cWord=0,(tField=document.querySelector(&quot;#gwt-uid-15 > table > tbody > tr:nth-child(2) > td > table > tbody > tr:nth-child(2) > td > input&quot;)).addEventListener(&quot;keydown&quot;,function(e){32==e.keyCode&&(tField.value=tWords[cWord],cWord++)});break;case 2:tText=document.getElementsByClassName(&quot;sample-text&quot;)[0],tWords=[];for(i=0;i<tText.children.length;i++)for(var j=0;j<tText.children[i].children.length;j++)tWords.push(tText.children[i].children[j].innerText);cWord=0,(tField=document.getElementById(&quot;practice-input&quot;)).addEventListener(&quot;keydown&quot;,function(e){32==e.keyCode&&(tField.value=tWords[cWord],cWord++)});break;case 3:tText=document.getElementById(&quot;edu_promptText&quot;),tWords=[],workWord=&quot;&quot;;for(i=0;i<tText.children.length;i++)for(j=0;j<tText.children[i].children.length;j++)&quot;space&quot;==tText.children[i].children[j].className?(tWords.push(workWord),workWord=&quot;&quot;):workWord+=tText.children[i].children[j].innerText;cWord=0,(tField=document.getElementById(&quot;edu_inputText&quot;)).addEventListener(&quot;keydown&quot;,function(e){32==e.keyCode&&(tField.value+=tWords[cWord],cWord++)});break;case 4:tText=document.getElementsByClassName(&quot;test-prompt&quot;)[0],tWords=[];for(i=0;i<tText.children.length;i++)tWords.push(tText.children[i].innerText);cWord=0,(tField=document.getElementById(&quot;test-input&quot;)).addEventListener(&quot;keydown&quot;,function(e){32==e.keyCode&&(tField.innerText=tWords[cWord],cWord++,tText.lastChild.innerText!=tWords.slice(-1)&&tWords.push(tText.lastChild.innerText))});break;case 5:tText=document.querySelector(&quot;#text-display&quot;),tWords=[],workWord=&quot;&quot;;for(i=0;i<tText.children.length;i++){workWord=&quot;&quot;;for(j=0;j<tText.children[i].children.length;j++)workWord+=tText.children[i].children[j].innerText;tWords.push(workWord)}cWord=0,(tField=document.getElementById(&quot;text-input&quot;)).addEventListener(&quot;keydown&quot;,function(e){32==e.keyCode&&(tField.value+=tWords[cWord],cWord++)});break;case 6:tText=document.getElementById(&quot;words&quot;),tWords=[];for(i=0;i<tText.children.length;i++)tWords.push(tText.children[i].innerText);cWord=0,(tField=document.getElementById(&quot;input&quot;)).addEventListener(&quot;keyup&quot;,function(e){32==e.keyCode&&(tField.value=tWords[cWord],cWord++)})}">TypeCheat</a>
26+
<a style="color: black; text-decoration: none; padding: 20px; background-color: lightgray; text-align: center; border-radius: 25px;" href="javascript:/* TypeCheat - A JS script to cheat on certain online typing tests Copyright (C) 2020 hackermancool This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ var tText,tWords,cWord,tField,workWord,url=window.location.href.split(&quot;/&quot;)[2].replace(&quot;www.&quot;,&quot;&quot;),site=-1,altMode=0;switch(url){case&quot;10fastfingers.com&quot;:console.log(&quot;~~~~~~~~~~~~~~~~~~~\n TypeCheat Active! \nSite: 10FastFingers\n~~~~~~~~~~~~~~~~~~~&quot;),site=0,&quot;text&quot;==window.location.href.split(&quot;/&quot;)[3]&&(altMode=1);break;case&quot;typeracer.com&quot;:case&quot;play.typeracer.com&quot;:console.log(&quot;~~~~~~~~~~~~~~~~~~~\n TypeCheat Active! \nSite: TypeRacer\n~~~~~~~~~~~~~~~~~~~&quot;),site=1;break;case&quot;typingtestnow.com&quot;:console.log(&quot;~~~~~~~~~~~~~~~~~~~\n TypeCheat Active! \nSite: TypingTestNow\n~~~~~~~~~~~~~~~~~~~&quot;),site=2;break;case&quot;bing.com&quot;:console.log(&quot;~~~~~~~~~~~~~~~~~~~\n TypeCheat Active! \nSite: Bing Test\n~~~~~~~~~~~~~~~~~~~&quot;),site=3;break;case&quot;livechatinc.com&quot;:console.log(&quot;~~~~~~~~~~~~~~~~~~~\n TypeCheat Active! \nSite: LiveChat Inc\n~~~~~~~~~~~~~~~~~~~&quot;),site=4;break;case&quot;quicktypingtest.com&quot;:console.log(&quot; ~~~~~~~~~~~~~~~~~~~\n TypeCheat Active! \nSite: QuickTypingTest\n ~~~~~~~~~~~~~~~~~~~&quot;),site=5;break;case&quot;typing-speed-test.aoeu.eu&quot;:console.log(&quot;~~~~~~~~~~~~~~~~~~~\n TypeCheat Active! \nSite: AOEU Test\n~~~~~~~~~~~~~~~~~~~&quot;),site=6;break;case&quot;indiatyping.com&quot;:console.log(&quot;~~~~~~~~~~~~~~~~~~~\n TypeCheat Active! \nSite: India Typing\n~~~~~~~~~~~~~~~~~~~&quot;),site=7}switch(site){case 0:tText=document.getElementById(&quot;row1&quot;),tWords=[];for(var i=0;i<tText.children.length;i++)tWords.push(tText.children[i].innerText);tField=null,(cWord=0)==altMode?tField=document.getElementById(&quot;inputfield&quot;):1==altMode&&(tField=document.getElementById(&quot;text_typed&quot;)),tField.addEventListener(&quot;keyup&quot;,function(e){32==e.keyCode&&(tField.value=tWords[cWord],cWord++)});break;case 1:tText=document.querySelector(&quot;#gwt-uid-15 > table > tbody > tr:nth-child(2) > td > table > tbody > tr:nth-child(1) > td > table > tbody > tr:nth-child(1) > td&quot;),tWords=tText.innerText.split(&quot; &quot;),cWord=0,(tField=document.querySelector(&quot;#gwt-uid-15 > table > tbody > tr:nth-child(2) > td > table > tbody > tr:nth-child(2) > td > input&quot;)).addEventListener(&quot;keydown&quot;,function(e){32==e.keyCode&&(tField.value=tWords[cWord],cWord++)});break;case 2:tText=document.getElementsByClassName(&quot;sample-text&quot;)[0],tWords=[];for(i=0;i<tText.children.length;i++)for(var j=0;j<tText.children[i].children.length;j++)tWords.push(tText.children[i].children[j].innerText);cWord=0,(tField=document.getElementById(&quot;practice-input&quot;)).addEventListener(&quot;keydown&quot;,function(e){32==e.keyCode&&(tField.value=tWords[cWord],cWord++)});break;case 3:tText=document.getElementById(&quot;edu_promptText&quot;),tWords=[],workWord=&quot;&quot;;for(i=0;i<tText.children.length;i++)for(j=0;j<tText.children[i].children.length;j++)&quot;space&quot;==tText.children[i].children[j].className?(tWords.push(workWord),workWord=&quot;&quot;):workWord+=tText.children[i].children[j].innerText;cWord=0,(tField=document.getElementById(&quot;edu_inputText&quot;)).addEventListener(&quot;keydown&quot;,function(e){32==e.keyCode&&(tField.value+=tWords[cWord],cWord++)});break;case 4:tText=document.getElementsByClassName(&quot;test-prompt&quot;)[0],tWords=[];for(i=0;i<tText.children.length;i++)tWords.push(tText.children[i].innerText);cWord=0,(tField=document.getElementById(&quot;test-input&quot;)).addEventListener(&quot;keydown&quot;,function(e){32==e.keyCode&&(tField.innerText=tWords[cWord],cWord++,tText.lastChild.innerText!=tWords.slice(-1)&&tWords.push(tText.lastChild.innerText))});break;case 5:tText=document.querySelector(&quot;#text-display&quot;),tWords=[],workWord=&quot;&quot;;for(i=0;i<tText.children.length;i++){workWord=&quot;&quot;;for(j=0;j<tText.children[i].children.length;j++)workWord+=tText.children[i].children[j].innerText;tWords.push(workWord)}cWord=0,(tField=document.getElementById(&quot;text-input&quot;)).addEventListener(&quot;keydown&quot;,function(e){32==e.keyCode&&(tField.value+=tWords[cWord],cWord++)});break;case 6:tText=document.getElementById(&quot;words&quot;),tWords=[];for(i=0;i<tText.children.length;i++)tWords.push(tText.children[i].innerText);cWord=0,(tField=document.getElementById(&quot;input&quot;)).addEventListener(&quot;keyup&quot;,function(e){32==e.keyCode&&(tField.value=tWords[cWord],cWord++)});break;case 7:tText=document.getElementById(&quot;blockrandom&quot;).contentDocument.getElementById(&quot;unicodeText&quot;),tWords=[];for(i=0;i<tText.children.length;i++)tWords.push(tText.children[i].innerText);cWord=0,(tField=document.getElementById(&quot;blockrandom&quot;).contentDocument.getElementById(&quot;toType&quot;)).addEventListener(&quot;keyup&quot;,function(e){32==e.keyCode&&(tField.value+=tWords[cWord],cWord++)})}">TypeCheat</a>
2727
</body>
2828
</html>

typecheat-button.js

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,10 @@ switch(url) {
6767
console.log("~~~~~~~~~~~~~~~~~~~\n TypeCheat Active! \nSite: AOEU Test\n~~~~~~~~~~~~~~~~~~~");
6868
site = 6;
6969
break;
70+
case "indiatyping.com":
71+
console.log("~~~~~~~~~~~~~~~~~~~\n TypeCheat Active! \nSite: India Typing\n~~~~~~~~~~~~~~~~~~~");
72+
site = 7;
73+
break;
7074
}
7175

7276
// Variables
@@ -240,6 +244,27 @@ function aoeuCheat() {
240244
document.getElementById("score").lastChild.style = "color: #0F0;";
241245
}
242246

247+
// India Typing
248+
function indiaTypingCheat() {
249+
// Generate wordlist
250+
tText = document.getElementById("blockrandom").contentDocument.getElementById("unicodeText");
251+
tWords = [];
252+
for(let i = 0; i < tText.children.length; i++) {
253+
tWords.push(tText.children[i].innerText);
254+
}
255+
// Cheat
256+
cWord = 0;
257+
tField = document.getElementById("blockrandom").contentDocument.getElementById("toType");
258+
tField.addEventListener("keyup", function(e) {
259+
if(e.keyCode == 32) {
260+
tField.value += tWords[cWord];
261+
cWord++;
262+
}
263+
});
264+
// Change button colour to show that it has activated
265+
document.getElementsByClassName("t3-sidebar")[0].children[0].style = "color: #0F0;";
266+
}
267+
243268
// Cheat
244269
switch(site) {
245270
// 10FastFingers (Normal)
@@ -265,14 +290,18 @@ switch(site) {
265290
// LiveCheat Inc
266291
case 4:
267292
// Create cheat button
268-
document.getElementsByClassName("metrics")[1].innerHTML += "<button onclick=\"javascript:liveChatCheat();\">Start TypeCheat</button>"
293+
document.getElementsByClassName("metrics")[1].innerHTML += "<button onclick=\"javascript:liveChatCheat();\">Start TypeCheat</button>";
269294
break;
270295
// QuickTypingTest
271296
case 5:
272297
document.getElementById("navbarResponsive").innerHTML = "<button style=\"width: 100%;\" onclick=\"javascript:quickTypingCheat();\">Start TypeCheat</button>" + document.getElementById("navbarResponsive").innerHTML;
273298
break;
274299
// AOEU Typing Speed Test
275300
case 6:
276-
document.getElementById("score").innerHTML += "<button onclick=\"javascript:aoeuCheat();\">Start TypeCheat</button>"
301+
document.getElementById("score").innerHTML += "<button onclick=\"javascript:aoeuCheat();\">Start TypeCheat</button>";
302+
break;
303+
// India Typing
304+
case 7:
305+
document.getElementsByClassName("t3-sidebar")[0].innerHTML = "<button onclick=\"javascript:indiaTypingCheat();\">Start TypeCheat</button>";
277306
break;
278307
}

0 commit comments

Comments
 (0)