Graf_Rav

puzzle-english video

Jun 2nd, 2020
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. let restartPage = () => {    
  2.     const restartVideo = () => {
  3.         const videoActions = [...document.getElementsByClassName('video-action')[0].children];
  4.         const btns = videoActions.filter(x => x.tagName.toLowerCase() === 'button');
  5.         btns[1].click();
  6.     }
  7.  
  8.     restartVideo();
  9. }
  10.  
  11. let solveVideo = () => {
  12.     let getRandomInt = (min, max) => Math.floor(Math.random() * (Math.floor(max) - Math.ceil(min) + 1)) + Math.ceil(min);
  13.     let getCurPhraseNum = () => parseInt([...document.getElementsByClassName('j-current_phrase_id')].slice(-1)[0].innerText);
  14.     let getPhrasesAmount = () => parseInt([...document.getElementsByClassName('j-phrases_amount')].slice(-1)[0].innerText);
  15.     let getPuzzles = () => [...document.querySelectorAll('.puzzle__item:not(.puzzle_solved):not(.hidden):not(.hole)')].map(x => x.children[0]);
  16.    
  17.     let nextPuzzle = () => {
  18.         if(curPhraseNum > phrasesAmount){
  19.             //Return to restart
  20.             backToRestart();
  21.             return;
  22.         }
  23.    
  24.         let nextWord = () => {
  25.             if(curWord >= wordCount){
  26.                 curPhraseNum = curPhraseNum + 1;
  27.                 setTimeout(() => nextPuzzle(), getRandomInt(delayMsMin, delayMsMax));
  28.                 console.log('phrase:',curPhraseNum);
  29.                 return;
  30.             }
  31.             const word = puzzleAnswers[curPhraseNum - 1][curWord].value;
  32.             const el = getPuzzles().find(x => x.innerHTML === word);
  33.             if(el !== undefined){
  34.                 el.parentElement.click();
  35.                 curWord++;
  36.             }
  37.             setTimeout(() => nextWord(), getRandomInt(delayMsMin, delayMsMax));
  38.         }
  39.    
  40.         let curWord = 0;
  41.         let wordCount = puzzleAnswers[curPhraseNum - 1].length;
  42.    
  43.         nextWord();
  44.     }
  45.    
  46.     let puzzleAnswers = App.data.subtitles.map(x => x.puzzles)
  47.     let curPhraseNum = getCurPhraseNum();
  48.     let phrasesAmount = getPhrasesAmount();
  49.    
  50.     let delayMsMin = 250;
  51.     let delayMsMax = 550;
  52.    
  53.     nextPuzzle();
  54. }
  55.  
  56. let backToRestart = () => document.querySelector('.redesign-button.redesign-button_bg-green.redesign-button_size-s.puzzle_ta_center').click();
  57.  
  58. try{
  59.     restartPage();
  60. }
  61. catch{
  62.     setTimeout(solveVideo, 1000);
  63. }
Add Comment
Please, Sign In to add comment