Advertisement
Guest User

Untitled

a guest
Dec 6th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.86 KB | None | 0 0
  1. // ==UserScript==
  2. // @name Instantling
  3. // @namespace http://instaling.pl
  4. // @version 0.1
  5. // @description try to take over the world!
  6. // @author You
  7. // @match https://instaling.pl/*
  8. // @grant none
  9. // ==/UserScript==
  10.  
  11. //^\/
  12.  
  13. (function() {
  14. 'use strict';
  15.  
  16. let emptyWords = [];
  17. let empty = false;
  18. let lastWord = null;
  19.  
  20. function loadStorage() {
  21. if(localStorage.getItem('instantling') != null) {
  22. emptyWords = JSON.parse(localStorage.getItem('instantling'));
  23. }
  24. }
  25.  
  26. function getAnswer() {
  27. let rawAnswer = document.querySelector('#jp_audio_0').getAttribute('src');
  28. let lookForMore = false;
  29. for(let i=0; i<emptyWords.length; i++) {
  30. if(emptyWords[i].includes(document.querySelector('#answer_translations').innerText)) {
  31. return emptyWords[i][1]
  32. }
  33. if(i==emptyWords.length-1) {
  34. lookForMore = true;
  35. }
  36. }
  37. if (lookForMore) {
  38. if (rawAnswer != "/mp3/_empty.mp3" && rawAnswer != lastWord) {
  39. let answer = rawAnswer.slice(28, rawAnswer.length-4);
  40. return decodeURI(answer);
  41. }
  42. else if (rawAnswer == "/mp3/_empty.mp3" || lastWord == document.querySelector('#jp_audio_0').getAttribute('src')) {
  43. console.log('findWord()');
  44. return findWord(document.querySelector('#answer_translations').innerText);
  45. }
  46. }
  47. }
  48.  
  49. function findWord(word) {
  50. if(emptyWords.length != 0) {
  51. for(let i=0; i<emptyWords.length; i++) {
  52. if(emptyWords[i].includes(word) == true) {
  53. return emptyWords[i][1];
  54. }
  55. }
  56. }
  57. console.error('Nie znaleziono slowka, przejdź dalej i kliknij ] żeby zapisać');
  58. empty = true;
  59. }
  60.  
  61. function fillWord() {
  62. if(empty) {
  63. let translatedAnswer = document.querySelector('#answer_translations').innerText;
  64. let word = document.querySelector('#word').innerText;
  65. console.warn(`Zapisano ${translatedAnswer} ${word}`);
  66. emptyWords.push([translatedAnswer, word]);
  67. saveToStorage();
  68. empty = false;
  69. }
  70.  
  71. }
  72.  
  73. function saveToStorage() {
  74. localStorage.setItem('instantling', JSON.stringify(emptyWords));
  75. }
  76.  
  77.  
  78. loadStorage()
  79.  
  80. const input = document.querySelector('#answer');
  81.  
  82.  
  83. document.addEventListener('keyup', (event) => {
  84. if(event.keyCode == 219) {
  85. loadStorage();
  86. input.value = getAnswer();
  87. }
  88. if(event.keyCode == 221) {
  89. if(empty) {
  90. fillWord();
  91. }
  92. else if (document.querySelector('#answer_result_fieldset > h4 > .red') != null) {
  93. for(let i=0; i<emptyWords.length; i++) {
  94. if(emptyWords[i].includes(document.querySelector('#answer_translations').innerText)) {
  95. emptyWords[i][1] = document.querySelector('#word').innerText;
  96. saveToStorage();
  97. console.warn("ENTER: fixed answer")
  98. }
  99. }
  100. }
  101. else if (document.querySelector('#answer_result_fieldset > h4 > .blue') != null) {
  102. for(let i=0; i<emptyWords.length; i++) {
  103. if(emptyWords[i].includes(document.querySelector('#answer_translations').innerText)) {
  104. let fixedAnswer = document.querySelector('#word').innerText;
  105. emptyWords[i][1] = fixedAnswer.toLowerCase();
  106. saveToStorage();
  107. console.warn("ENTER: fixed answer [lowercase]");
  108. }
  109. }
  110. }
  111. }
  112. if(event.keyCode == 13) {
  113. lastWord = document.querySelector('#jp_audio_0').getAttribute('src');
  114. }
  115. });
  116.  
  117.  
  118. })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement