Thứ Hai, 15 tháng 11, 2021

Code duolingo ( 2022 but just work with some lesson )

  1. https://www.youtube.com/channel/UC_OLBj-iftWE6IgC1wPjtCQ ung ho toi 1 sub nao
  2. // ==UserScript==
  3. // @name Duolingo-Cheat-Tool
  4. // @namespace http://tampermonkey.net/
  5. // @version 0.1
  6. // @description Auto answer Duolingo script!
  7. // @author Tran Quy <tranphuquy19@gmail.com>
  8. // @match https://www.duolingo.com/skill*
  9. // @icon https://www.google.com/s2/favicons?domain=duolingo.com
  10. // @grant none
  11. // ==/UserScript==
  12.  
  13. const DEBUG = true;
  14. let mainInterval;
  15.  
  16. const dataTestComponentClassName = 'e4VJZ';
  17.  
  18. const TIME_OUT = 1;
  19.  
  20. // Challenge types
  21. const CHARACTER_SELECT_TYPE = 'characterSelect';
  22. const CHARACTER_MATCH_TYPE = 'characterMatch'; // not yet
  23. const TRANSLATE_TYPE = 'translate';
  24. const LISTEN_TAP_TYPE = 'listenTap';
  25. const NAME_TYPE = 'name';
  26. const COMPLETE_REVERSE_TRANSLATION_TYPE = 'completeReverseTranslation';
  27. const LISTEN_TYPE = 'listen';
  28. const SELECT_TYPE = 'select';
  29. const JUDGE_TYPE = 'judge';
  30. const FORM_TYPE = 'form';
  31. const LISTEN_COMPREHENSION_TYPE = 'listenComprehension';
  32. const READ_COMPREHENSION_TYPE = 'readComprehension';
  33. const CHARACTER_INTRO_TYPE = 'characterIntro';
  34. const DIALOGUE_TYPE = 'dialogue';
  35. const SELECT_TRANSCRIPTION_TYPE = 'selectTranscription';
  36. const SPEAK_TYPE = 'speak';
  37. const SELECT_PRONUNCIATION_TYPE = 'selectPronunciation';
  38.  
  39. // Query DOM keys
  40. const CHALLENGE_CHOICE_CARD = '[data-test="challenge-choice-card"]';
  41. const CHALLENGE_CHOICE = '[data-test="challenge-choice"]';
  42. const CHALLENGE_TRANSLATE_INPUT = '[data-test="challenge-translate-input"]';
  43. const CHALLENGE_LISTEN_TAP = '[data-test="challenge-listenTap"]';
  44. const CHALLENGE_JUDGE_TEXT = '[data-test="challenge-judge-text"]';
  45. const CHALLENGE_TEXT_INPUT = '[data-test="challenge-text-input"]';
  46. const CHALLENGE_TAP_TOKEN = '[data-test="challenge-tap-token"]';
  47. const PLAYER_NEXT = '[data-test="player-next"]';
  48. const PLAYER_SKIP = '[data-test="player-skip"]';
  49. const BLAME_INCORRECT = '[data-test="blame blame-incorrect"]';
  50. const CHARACTER_MATCH = '[data-test="challenge challenge-characterMatch"]';
  51.  
  52. const clickEvent = new MouseEvent('click', {
  53. view: window,
  54. bubbles: true,
  55. cancelable: true
  56. });
  57.  
  58. function getChallengeObj(theObject) {
  59. let result = null;
  60. if (theObject instanceof Array) {
  61. for (let i = 0; i < theObject.length; i++) {
  62. result = getChallengeObj(theObject[i]);
  63. if (result) {
  64. break;
  65. }
  66. }
  67. }
  68. else {
  69. for (let prop in theObject) {
  70. if (prop == 'challenge') {
  71. if (typeof theObject[prop] == 'object') {
  72. return theObject;
  73. }
  74. }
  75. if (theObject[prop] instanceof Object || theObject[prop] instanceof Array) {
  76. result = getChallengeObj(theObject[prop]);
  77. if (result) {
  78. break;
  79. }
  80. }
  81. }
  82. }
  83. return result;
  84. }
  85.  
  86. function getChallenge() {
  87. // const dataTestComponentClassName = 'e4VJZ';
  88. const dataTestDOM = document.getElementsByClassName(dataTestComponentClassName)[0];
  89.  
  90. if (!dataTestDOM) {
  91. document.querySelectorAll(PLAYER_NEXT)[0].dispatchEvent(clickEvent);
  92. return null;
  93. } else {
  94. const dataTestAtrr = Object.keys(dataTestDOM).filter(att => /^__reactProps/g.test(att))[0];
  95. const childDataTestProps = dataTestDOM[dataTestAtrr];
  96. const { challenge } = getChallengeObj(childDataTestProps);
  97. return challenge;
  98. }
  99. }
  100.  
  101. function pressEnter() {
  102. document.dispatchEvent(new KeyboardEvent('keydown', { 'keyCode': 13, 'which': 13 }));
  103. }
  104.  
  105. function dynamicInput(element, msg) {
  106. let input = element;
  107. let lastValue = input.value;
  108. input.value = msg;
  109. let event = new Event('input', { bubbles: true });
  110. // hack React15
  111. event.simulated = true;
  112. // hack React16 内部定义了descriptor拦截value,此处重置状态
  113. let tracker = input._valueTracker;
  114. if (tracker) {
  115. tracker.setValue(lastValue);
  116. }
  117. input.dispatchEvent(event);
  118. }
  119.  
  120. function classify() {
  121. const challenge = getChallenge();
  122. if (!challenge) return;
  123. if (DEBUG) console.log(`${challenge.type}`, challenge);
  124. switch (challenge.type) {
  125. case SELECT_PRONUNCIATION_TYPE:
  126. case READ_COMPREHENSION_TYPE:
  127. case LISTEN_COMPREHENSION_TYPE:
  128. case FORM_TYPE: { // trắc nghiệm 1 đáp án
  129. const { choices, correctIndex } = challenge;
  130. if (DEBUG) console.log('READ_COMPREHENSION LISTEN_COMPREHENSION FORM', { choices, correctIndex });
  131. document.querySelectorAll(CHALLENGE_CHOICE)[correctIndex].dispatchEvent(clickEvent);
  132. return { choices, correctIndex };
  133. }
  134.  
  135. case SELECT_TYPE:
  136. case CHARACTER_SELECT_TYPE: { // trắc nghiệm 1 đáp án
  137. const { choices, correctIndex } = challenge;
  138. if (DEBUG) console.log('SELECT CHARACTER_SELECT', { choices, correctIndex });
  139. document.querySelectorAll(CHALLENGE_CHOICE_CARD)[correctIndex].dispatchEvent(clickEvent);
  140. return { choices, correctIndex };
  141. }
  142.  
  143. case CHARACTER_MATCH_TYPE: { // tập hợp các cặp thẻ
  144. const { pairs } = challenge;
  145. const tokens = document.querySelectorAll(CHALLENGE_TAP_TOKEN);
  146. pairs.forEach((pair) => {
  147. for(let i = 0; i < tokens.length; i++) {
  148. if(tokens[i].innerText === pair.transliteration || tokens[i].innerText === pair.character) {
  149. tokens[i].dispatchEvent(clickEvent);
  150. }
  151. }
  152. })
  153. return { pairs };
  154. }
  155.  
  156. case TRANSLATE_TYPE: {
  157. const { correctTokens, correctSolutions } = challenge;
  158. if (DEBUG) console.log('TRANSLATE', { correctTokens });
  159. if (correctTokens) {
  160. const tokens = document.querySelectorAll(CHALLENGE_TAP_TOKEN);
  161. let ignoreTokeIndexes = [];
  162. for (let correctTokenIndex in correctTokens) {
  163. for (let tokenIndex in tokens) {
  164. const token = tokens[tokenIndex];
  165. if (ignoreTokeIndexes.includes(tokenIndex)) continue;
  166. if (token.innerText === correctTokens[correctTokenIndex]) {
  167. token.dispatchEvent(clickEvent);
  168. ignoreTokeIndexes.push(tokenIndex);
  169. if(DEBUG) console.log(`correctTokenIndex [${correctTokens[correctTokenIndex]}] - tokenIndex [${token.innerText}]`);
  170. break;
  171. };
  172. }
  173. }
  174. } else if (correctSolutions) {
  175. let textInputElement = document.querySelectorAll(CHALLENGE_TRANSLATE_INPUT)[0];
  176. dynamicInput(textInputElement, correctSolutions[0]);
  177. }
  178.  
  179. return { correctTokens };
  180. }
  181.  
  182. case NAME_TYPE: { // nhập đán án
  183. const { correctSolutions } = challenge;
  184. if (DEBUG) console.log('NAME', { correctSolutions });
  185. let textInputElement = document.querySelectorAll(CHALLENGE_TEXT_INPUT)[0];
  186. let correctSolution = correctSolutions[0];
  187. dynamicInput(textInputElement, correctSolution);
  188. return { correctSolutions };
  189. }
  190.  
  191. case COMPLETE_REVERSE_TRANSLATION_TYPE: { // điền vào từ còn thiếu
  192. const { displayTokens } = challenge;
  193. if (DEBUG) console.log('COMPLETE_REVERSE_TRANLATION', { displayTokens });
  194. const { text } = displayTokens.filter(token => token.isBlank)[0];
  195. let textInputElement = document.querySelectorAll(CHALLENGE_TEXT_INPUT)[0];
  196. dynamicInput(textInputElement, text);
  197. return { displayTokens };
  198. }
  199.  
  200. case LISTEN_TAP_TYPE: {
  201. const { correctTokens } = challenge;
  202. if (DEBUG) console.log('LISTEN_TAP', { correctTokens });
  203. const tokens = document.querySelectorAll(CHALLENGE_TAP_TOKEN);
  204. for (let wordIndex in correctTokens) {
  205. tokens.forEach((token) => {
  206. if (token.innerText === correctTokens[wordIndex]) {
  207. token.dispatchEvent(clickEvent);
  208. };
  209. });
  210. }
  211. return { correctTokens };
  212. }
  213.  
  214. case LISTEN_TYPE: { // nghe và điền vào ô input
  215. const { prompt } = challenge;
  216. if (DEBUG) console.log('LISTEN', { prompt });
  217. let textInputElement = document.querySelectorAll(CHALLENGE_TRANSLATE_INPUT)[0];
  218. dynamicInput(textInputElement, prompt);
  219. return { prompt };
  220. }
  221.  
  222. case JUDGE_TYPE: { // trắc nghiệm 1 đáp án
  223. const { correctIndices } = challenge;
  224. if (DEBUG) console.log('JUDGE', { correctIndices });
  225. document.querySelectorAll(CHALLENGE_JUDGE_TEXT)[correctIndices[0]].dispatchEvent(clickEvent);
  226. return { correctIndices };
  227. }
  228.  
  229. case DIALOGUE_TYPE:
  230. case CHARACTER_INTRO_TYPE: { // trắc nghiệm 1 đáp án
  231. const { choices, correctIndex } = challenge;
  232. if (DEBUG) console.log('DIALOGUE CHARACTER_INTRO', { choices, correctIndex });
  233. document.querySelectorAll(CHALLENGE_JUDGE_TEXT)[correctIndex].dispatchEvent(clickEvent);
  234. return { choices, correctIndex };
  235. }
  236.  
  237. case SELECT_TRANSCRIPTION_TYPE: {
  238. const { choices, correctIndex } = challenge;
  239. if (DEBUG) console.log('DIALOGUE CHARACTER_INTRO', { choices, correctIndex });
  240. document.querySelectorAll(CHALLENGE_JUDGE_TEXT)[correctIndex].dispatchEvent(clickEvent);
  241. return { choices, correctIndex };
  242. }
  243.  
  244. case SPEAK_TYPE: {
  245. const { prompt } = challenge;
  246. if (DEBUG) console.log('SPEAK', { prompt });
  247. document.querySelectorAll(PLAYER_SKIP)[0].dispatchEvent(clickEvent);
  248. return { prompt };
  249. }
  250.  
  251. default:
  252. break;
  253. }
  254. }
  255.  
  256. function breakWhenIncorrect() {
  257. const isBreak = document.querySelectorAll(BLAME_INCORRECT).length > 0;
  258. if (isBreak) {
  259. console.log('Incorrect, stopped');
  260. clearInterval(mainInterval);
  261. };
  262. }
  263.  
  264. function main() {
  265. try {
  266. let isPlayerNext = document.querySelectorAll(PLAYER_NEXT)[0].textContent.toUpperCase();
  267. if (isPlayerNext.valueOf() !== 'CONTINUE') {
  268. classify();
  269. breakWhenIncorrect()
  270. pressEnter();
  271. }
  272. setTimeout(pressEnter, 1);
  273. } catch (e) {
  274. console.log(e);
  275. }
  276. }
  277.  
  278. function solveChallenge() {
  279. mainInterval = setInterval(main, TIME_OUT);
  280. console.log(`to stop run this command clearInterval(${mainInterval})`);
  281. }
  282.  
  283. // solveChallenge();
  284. (solveChallenge)();
  285. 1

83 nhận xét:

Nothing nói...

code nào nó khác hay giống bạn

Nhân Dz nói...

các code đều giống nhau chỉ là nó nhanh hơn thôi

Nothing nói...

nhưng mà sao mk nhập vào nó kêu là lỗi không làm được

Nhân Dz nói...

mình mới sửa code bạn làm lại đi :)

Nothing nói...

mk làm được rồi mà bạn lặp lại code chứ không ghi thêm vào đúng không

Nhân Dz nói...

hmm ghi thêm chứ bạn code này sẽ nhanh hơn các code còn lại

Nothing nói...

code này dán nhiều lần có chạy không bạn

Nhân Dz nói...

bạn có thể sài code khác chứ code này mình dùng vẫn ok mà

Unknown nói...

bạn làm code mà bài nghe làm đúng á chứ không mấy bài không tắt được thì uổng

Nhân Dz nói...

code dán nhiều lần vẫn chạy

Nhân Dz nói...

nếu các bạn mún hỏi gì hãy lên discord của mình

Nothing nói...

ok bạn cho mk link ik

Nhân Dz nói...

https://discord.gg/hrMdnuNFu4

Unknown nói...

ô

Unknown nói...

ok

Minh Phúc nói...

ok cam on nhan dz

Unknown nói...

Co x4 k ạ nêu co cho mik xin link

Unknown nói...

chưa có bạn ơi đợi mãi à

Unknown nói...

discord của bạn là gì
:)

Nhân Dz nói...

các video mình lun có link discord vào đó xem

Unknown nói...

R bt rôi cha nội

Unknown nói...

bn ơi mik ko vào discord dc

Unknown nói...

bn up code x3 lên blogspot đi

Unknown nói...

có code r này

YaSua nói...

hay lắm bạn ơi

Unknown nói...

chán quá chưa có code x4 nữa

Unknown nói...

làm code hack coin của mope.io đi anh

YaSua nói...

bạn ơi có code hack VioEdu không

Unknown nói...

bạn ơi làm video hack 100000kn trên wep đi

Unknown nói...

bạn làm video hack 100000000kn đi

hacker duolingo nói...

nhanh ha nhandz

hacker duolingo nói...

hay

hacker duolingo nói...

nhanh

hacker duolingo nói...

bạn gửi rồi mà

hacker duolingo nói...

g

lam nói...

hello nhandz

lam nói...

nhandz

Unknown nói...

Bao giờ có code tự làm tất cả mọi thứ nhỉ tất cả các loại bài tập ấy

Nặc danh nói...

cam on nhan dz

Nặc danh nói...

cam on nhan dz rat nhieu

My name is The Hacker Duolingo nói...

ừ chư có code x4 nữa, có code x4 thì còn nhanh hơn nữa

My name is The Hacker Duolingo nói...

bạn ơi
sao ko có code hack poweline.io vậy?

Unknown nói...

có vài bài phải tự làm

minh nói...

bn làm code hack kho truyện duolingo đi

Nặc danh nói...

how to dùng tampermonkey :)

:) nói...

ôg chỉ cách dùng tampermonkey đi

hacker duolingo nói...

hello

hacker duolingo nói...

hello nhan dz

Unknown nói...

anh ơi có cai code hack lingotr chưa anh

Unknown nói...

h

Unknown nói...

cố chịu đi

Unknown nói...

code nó ko tự động qua câu nữa bạn sửa lại đi

Dũng RX nói...

hông có đâu

Nặc danh nói...

bạn ơi code bị lỗi rồi

Unknown nói...

nhập chỗ nào

Unknown nói...

Hmm lên làm cho nó tự bấm trả lời

ILikeThisCode nói...

Code x3 đủ rồi bạn, đừng được voi đòi hai bà trưng :]

Unknown nói...

Máy hm nay mình dùng code toàn bị sai thoi

gia khải nói...

cách hack ý bạn hack giùm tớ được ko tên tài khoãn l2 phan gia khai mật khẩu là gia khai hack giúp em đạt được cúp vàng nha cái học vượt ý

himnnha nói...

bạn cho mình hỏi ctrl c rồi thì ctrl v ở đâu vậy

Nặc danh nói...

van khong hoat dong dc ban oi

?kshjkhghkshlrh nói...

bn ơi bn sửa lại code ik code bị j ý


?kshjkhghkshlrh nói...

code bị sao ý bn ạ

Nặc danh nói...

sao ko lm đc bài nghe v bạn

himnnha nói...

em thấy cái code của anh nó cứ bị sao ik
nó ko làm dc những bài chọn nối và nghe chọn
nó chỉ cs tắc dụng với bài ko cs những bài mà em vừa kể anh à
em mong anh sẽ khắc phục lỗi này

Nặc danh nói...

Cái code nó cứ bị lỗi làm sao đó
Nó ko có auto chuyển câu giống hồi đó nx

huy lotket nói...

nick đícode bạn tên gì

Unknown nói...

hello thank nha

Unknown nói...

cc

Nặc danh nói...

code xịn =)

Nặc danh nói...

có code free linngot ko bn

Nặc danh nói...

code ko có cái tác dụn
g gì cả

Lê Nguyên Giap nói...

hay

Nặc danh nói...

Print"XinTenDiscordNhandzz"
scipt.parent("Codex3", )
remoteEvent:Control("GetNameDiscord")
autoDrawn >= false
Print"UrlDiscord"
//DONTMAKEVIRUSTOTAL//
virustotal.script.parent"kill" --Do Some Things
end
end)

a xem seo no k hoat dong??

Nặc danh nói...

đm lừa đảo bố nhập đéo đc

Nặc danh nói...

dán trên MacBook Air ntn hả

Nguyễn Nhật Minh nói...

có code 4 chưa

Unknown nói...

bn làm code hack vioedu đi

Nặc danh nói...

được

Unknown nói...

nhandz ơi

Nặc danh nói...

bạn ơi bao giờ có code x4

Nặc danh nói...

tròn một năm đăng code

girl cute nói...

Giá như có code x4! (┬┬﹏┬┬)

Có lẽ nên cs 1 video mới=)