Jogo Wiki

Cria um jogo com as 4 fotos aleatórias que o Wikiaves mostra no cabeçalho da página

  1. // ==UserScript==
  2. // @name Jogo Wiki
  3. // @namespace -
  4. // @description Cria um jogo com as 4 fotos aleatórias que o Wikiaves mostra no cabeçalho da página
  5. // @include https://www.wikiaves.com/
  6. // @include https://www.wikiaves.com.br/
  7. // @include https://www.wikiaves.com.br/index.php?
  8. // @include https://www.wikiaves.com/index.php?
  9. // @include https://www.wikiaves.com.br/fotos/*
  10. // @include https://www.wikiaves.com/fotos/*
  11. // @include https://www.wikiaves.com.br/midias2/fotos/*
  12. // @include https://www.wikiaves.com/midias2/fotos/*
  13. // @version 1.9
  14. // @require https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js
  15. // @require https://greasyfork.org/scripts/5392-waitforkeyelements/code/WaitForKeyElements.js?version=115012
  16. // @require https://greasyfork.org/scripts/36228-he-js/code/hejs.js?version=236227
  17. // @grant GM_addStyle
  18. // ==/UserScript==
  19.  
  20. var giftimer = "https://i.imgur.com/qn5vlmz.gif";
  21. var perg1,perg2,perg3,perg4,perg4F;
  22. var resp1,resp2,resp3,resp4;
  23. var pontos = 0;var rol = 0;var segundo = 1000;var seg41 = 91000;
  24. var ancora1 = "#headertab > tbody:nth-child(1) > tr:nth-child(2) > td:nth-child(2) > a:nth-child(1)";
  25. var ancora2 = "#headertab > tbody:nth-child(1) > tr:nth-child(2) > td:nth-child(2) > a:nth-child(2)";
  26. var ancora3 = "#headertab > tbody:nth-child(1) > tr:nth-child(2) > td:nth-child(2) > a:nth-child(3)";
  27. var ancora4 = "#headertab > tbody:nth-child(1) > tr:nth-child(2) > td:nth-child(2) > a:nth-child(4)";
  28. var usuario_s = "#headertab > tbody:nth-child(1) > tr:nth-child(1) > td:nth-child(2) > a:nth-child(1)";
  29. var certo = "Correto!";
  30. var errado = "Errou!";
  31. var ana1,ana2,ana3,ana4;
  32. var lv1,lv2,lv3,lv4,tempoo,usuario;
  33.  
  34. if(!('contains' in String.prototype)){String.prototype.contains = function(str, startIndex){return -1 !== String.prototype.indexOf.call(this, str, startIndex);};}
  35.  
  36. function comeca() {
  37.  
  38. $("#menu-container").append($('<button type="button" id="boto" align="left"> Jogar </button> '));
  39. document.getElementById("boto").onclick = function (){
  40. usuario = $(usuario_s).text();
  41. removerlinks();
  42. document.getElementById("boto").innerHTML = "Jogando";
  43. document.getElementById("boto").disabled = true;
  44. blink("#boto");
  45. reseta();
  46. tempoo = setInterval(function(){ contagem() }, 1000);
  47. };
  48. }
  49.  
  50. function perguntas () {
  51.  
  52. if (rol>=40){
  53. postarGoogle();
  54. document.getElementById("botus").disabled = true;
  55. window.location.reload(true);
  56. }
  57. resp1 = document.getElementsByClassName("thumb100top")[0].alt;
  58. resp2 = document.getElementsByClassName("thumb100top")[1].alt;
  59. resp3 = document.getElementsByClassName("thumb100top")[2].alt;
  60. resp4 = document.getElementsByClassName("thumb100top")[3].alt;
  61. document.getElementsByClassName("thumb100top")[0].alt="";
  62. document.getElementsByClassName("thumb100top")[1].alt="";
  63. document.getElementsByClassName("thumb100top")[2].alt="";
  64. document.getElementsByClassName("thumb100top")[3].alt="";
  65. document.getElementsByClassName("thumb100top")[0].title="";
  66. document.getElementsByClassName("thumb100top")[1].title="";
  67. document.getElementsByClassName("thumb100top")[2].title="";
  68. document.getElementsByClassName("thumb100top")[3].title="";
  69. var newrf1 = document.getElementsByClassName("thumb100top")[0].src;
  70. var newrf2 = document.getElementsByClassName("thumb100top")[1].src;
  71. var newrf3 = document.getElementsByClassName("thumb100top")[2].src;
  72. var newrf4 = document.getElementsByClassName("thumb100top")[3].src;
  73. lv1 = $(ancora1).attr('href');
  74. lv2 = $(ancora2).attr('href');
  75. lv3 = $(ancora3).attr('href');
  76. lv4 = $(ancora4).attr('href');
  77.  
  78. if (newrf1.length<55){
  79. $(ancora1).attr('href',newrf1.substring(0,newrf1.length-5)+".jpg"); $(ancora1).attr('target','_blank');
  80. }else{$(ancora1).attr('href',newrf1.substring(0,newrf1.indexOf("_")-1)+newrf1.substring(newrf1.indexOf("_"),newrf1.length)); $(ancora1).attr('target','_blank');}
  81.  
  82. if (newrf2.length<55){
  83. $(ancora2).attr('href',newrf2.substring(0,newrf2.length-5)+".jpg"); $(ancora2).attr('target','_blank');
  84. }else{$(ancora2).attr('href',newrf2.substring(0,newrf2.indexOf("_")-1)+newrf2.substring(newrf2.indexOf("_"),newrf2.length)); $(ancora2).attr('target','_blank');}
  85.  
  86. if (newrf3.length<55){
  87. $(ancora3).attr('href',newrf3.substring(0,newrf3.length-5)+".jpg"); $(ancora3).attr('target','_blank');
  88. }else{$(ancora3).attr('href',newrf3.substring(0,newrf3.indexOf("_")-1)+newrf3.substring(newrf3.indexOf("_"),newrf3.length)); $(ancora3).attr('target','_blank');}
  89.  
  90. if (newrf4.length<55){
  91. $(ancora4).attr('href',newrf4.substring(0,newrf4.length-5)+".jpg"); $(ancora4).attr('target','_blank');
  92. }else{$(ancora4).attr('href',newrf4.substring(0,newrf4.indexOf("_")-1)+newrf4.substring(newrf4.indexOf("_"),newrf4.length)); $(ancora4).attr('target','_blank');}
  93.  
  94. $("#header-container").append($('<tr align="right"><td style="width:360px;height:40px"><img id="relogio" src=https://i.imgur.com/qn5vlmz.gif><div id="timer"></div></td><td\
  95. style="padding-top:4px" valign="bottom"><button type="button" id="botus"> Avaliar </button> |->\
  96. <input style="width:100px;display:true" id="ave1" title="Que ave é essa?" tabindex="3" size="36" class="buscausuario ui-autocomplete-input" name="usuario"\
  97. autocomplete="off"> <input style="width:100px;display:true" id="ave2" title="Que ave é essa?" tabindex="3" size="36" class="buscausuario ui-autocomplete-input"\
  98. name="usuario" autocomplete="off"> <input style="width:100px;display:true" id="ave3" title="Que ave é essa?" tabindex="3" size="36" class="buscausuario ui-autocomplete-input"\
  99. name="usuario" autocomplete="off"> <input style="width:100px;display:true" id="ave4" title="Que ave é essa?" tabindex="3" size="36" class="buscausuario ui-autocomplete-input"\
  100. name="usuario" autocomplete="off"></td></tr>'));
  101. location.href = 'javascript:void($(function() {\
  102. $("#ave1").autocomplete({ minLength: 2,\
  103. source: "getTaxonsJSON.php?idwiki=1",\
  104. open: zebrar,\
  105. select: function(event, ui) {\
  106. resp1 = document.getElementsByClassName("thumb100top")[0].alt;\
  107. document.getElementById("ave1").disabled = true;}\
  108. }).data( "ui-autocomplete" )._renderItem = renderBuscaTaxon;\
  109. $("#ave2").autocomplete({ minLength: 2,\
  110. source: "getTaxonsJSON.php?idwiki=1",\
  111. open: zebrar,\
  112. select: function(event, ui) {\
  113. resp2 = document.getElementsByClassName("thumb100top")[1].alt;\
  114. document.getElementById("ave2").disabled = true;}\
  115. }).data( "ui-autocomplete" )._renderItem = renderBuscaTaxon;\
  116. $("#ave3").autocomplete({ minLength: 2,\
  117. source: "getTaxonsJSON.php?idwiki=1",\
  118. open: zebrar,\
  119. select: function(event, ui) {\
  120. resp3 = document.getElementsByClassName("thumb100top")[2].alt;\
  121. document.getElementById("ave3").disabled = true;}\
  122. }).data( "ui-autocomplete" )._renderItem = renderBuscaTaxon;\
  123. $("#ave4").autocomplete({ minLength: 2,\
  124. source: "getTaxonsJSON.php?idwiki=1",\
  125. open: zebrar,\
  126. select: function(event, ui) {\
  127. resp4 = document.getElementsByClassName("thumb100top")[3].alt;\
  128. document.getElementById("ave4").disabled = true;}\
  129. }).data( "ui-autocomplete" )._renderItem = renderBuscaTaxon;\
  130. $("#ave1").jLabel();$("#ave2").jLabel();$("#ave3").jLabel();$("#ave4").jLabel();\
  131. $("#ave1").blur(function(e) {if(e.target.value == "") {$("#"+e.target.name+"_hidden").val("");}});\
  132. $("#ave2").blur(function(e) {if(e.target.value == "") {$("#"+e.target.name+"_hidden").val("");}});\
  133. $("#ave3").blur(function(e) {if(e.target.value == "") {$("#"+e.target.name+"_hidden").val("");}});\
  134. $("#ave4").blur(function(e) {if(e.target.value == "") {$("#"+e.target.name+"_hidden").val("");}});}))';
  135. document.getElementById("botus").onclick = function (){
  136. var bubu = document.getElementById("botus").innerHTML;
  137. if (bubu.contains(" Seguir? ")){
  138. if (confirm('Mais aves?')) {
  139. document.getElementById("botus").innerHTML = " Avaliar ";
  140. reseta();
  141. tempoo = setInterval(function(){ contagem() }, 1000);
  142. } else {} /// TOOODOOOOO terminar jogo e mandar respostas
  143. }
  144. else{
  145. document.getElementById("ave1").disabled = true;
  146. document.getElementById("ave2").disabled = true;
  147. document.getElementById("ave3").disabled = true;
  148. document.getElementById("ave4").disabled = true;
  149. para();
  150. seg41 = 91000;
  151. perg1 = document.getElementById("ave1").value;
  152. perg2 = document.getElementById("ave2").value;
  153. perg3 = document.getElementById("ave3").value;
  154. perg4 = document.getElementById("ave4").value;
  155.  
  156. if (resp1.contains(perg1) && perg1 != "" && document.getElementById("ave1").disabled==true){
  157. ana1=certo;
  158. pontos++;
  159. }else{ana1=errado;}
  160. if (resp2.contains(perg2)&& perg2 != "" && document.getElementById("ave2").disabled==true){
  161. pontos++;
  162. ana2=certo;
  163. }else{ana2=errado;}
  164. if (resp3.contains(perg3)&& perg3 != "" && document.getElementById("ave3").disabled==true){
  165. pontos++;
  166. ana3=certo;
  167. }else{ana3=errado;}
  168. if (resp4.contains(perg4)&& perg4 != "" && document.getElementById("ave4").disabled==true){
  169. pontos++;
  170. ana4=certo;
  171. }else{ana4=errado;}
  172. rol+=4;
  173. document.getElementById("boto").innerHTML = "Jogando: "+pontos+" certos em "+rol+"!";
  174. $("#headertab > tbody:nth-child(1)").append($('<tr align="right" id="linha"><td></td><td valign="top"><a href="'+lv1+'" target="_blank" style=padding:40px ">'+ana1+'</a><a href="'+lv2+'"\
  175. style=padding:40px " target="_blank">'+ana2+'</a><a href="'+lv3+'" target="_blank" style=padding:40px ">'+ana3+'</a><a href="'+lv4+'" target="_blank" style=padding:40px "\
  176. >'+ana4+'</a></td></tr>'));
  177. document.getElementById("botus").innerHTML
  178. = " Seguir? ";
  179. }
  180. };
  181. }
  182.  
  183. function reseta(){//RESETAR 4 FOTOS
  184. $("#header-container > tr:nth-child(2)").remove();
  185. $("#headerimg").load("location.href #headerimg",function(responseTxt, statusTxt, xhr){
  186. if(statusTxt == "success")
  187. perguntas(); //$("#headerimg").get(0).scrollIntoView();
  188. if(statusTxt == "error")
  189. alert("Erro: Sua internet é muito lenta para jogar."); //window.location.reload(true);
  190. });
  191. }
  192.  
  193. function blink(x){
  194. var target = document.querySelector(x);
  195. var count = 0;
  196. var speed = 200;
  197. var id = setInterval(myFunction,speed);
  198. function myFunction(){
  199. if(count == 0) {
  200. target.style.opacity = "0";
  201. count++;
  202. }
  203. else if(count == 1){
  204. target.style.opacity = '1';
  205. count = 0;
  206. }
  207. }
  208. }
  209.  
  210. function protege (){
  211. if((document.URL).contains('fotos')){
  212. document.addEventListener('contextmenu', function(e) {
  213. alert("© Imagem protegida pela Lei de Direito Autoral (nº 9610/98). É proibida a cópia e a reprodução sem autorização expressa do autor.");
  214. e.preventDefault();
  215. }, false);
  216. }
  217. else{}
  218. }
  219.  
  220. function postarGoogle(){
  221. var gog = "&#x61;&#x48;&#x52;&#x30;&#x63;&#x48;&#x4D;&#x36;&#x4C;&#x79;&#x39;&#x6B;&#x62;&#x32;&#x4E;&#x7A;&#x4C;&#x6D;&#x64;&#x76;&#x62;&#x32;&#x64;&#x73;&#x5A;&#x53;&#x35;&#x6A;&#x62;&#x32;&#x30;&#x76;&#x5A;&#x6D;&#x39;&#x79;&#x62;&#x58;&#x4D;&#x76;&#x5A;&#x43;&#x38;&#x78;&#x56;&#x30;&#x31;&#x4A;&#x4E;&#x30;&#x31;&#x4F;&#x51;&#x6E;&#x6F;&#x32;&#x64;&#x6B;&#x31;&#x43;&#x4D;&#x48;&#x64;&#x48;&#x65;&#x45;&#x70;&#x69;&#x63;&#x46;&#x70;&#x34;&#x62;&#x54;&#x49;&#x78;&#x52;&#x30;&#x31;&#x68;&#x57;&#x6B;&#x52;&#x61;&#x61;&#x6C;&#x68;&#x4F;&#x62;&#x57;&#x74;&#x4B;&#x56;&#x30;&#x4E;&#x32;&#x56;&#x32;&#x56;&#x50;&#x4E;&#x43;&#x39;&#x6D;&#x62;&#x33;&#x4A;&#x74;&#x55;&#x6D;&#x56;&#x7A;&#x63;&#x47;&#x39;&#x75;&#x63;&#x32;&#x55;&#x3D;";
  222. var nomejogador = prompt("Fim de Jogo!\nAcertou "+pontos+" aves em "+rol+"!\nSeu nome:",usuario);
  223. if (nomejogador == null){
  224. }else{
  225. $.ajax({
  226. url: atob(he.decode(gog)),
  227. data: {"entry.2005439514" : nomejogador, "entry.752287174" : pontos},
  228. type: "POST",
  229. dataType: "xml",
  230. statusCode: {
  231. 0: function (){
  232. nomejogador;
  233. pontos;
  234. window.open("https://docs.google.com/spreadsheets/d/1StrduhAXDAbAt7nxiMPZnwkHVQIbUnCfJ_anldpcjyQ/edit#gid=1950740070");
  235. },
  236. 200: function (){
  237. nomejogador;
  238. pontos;
  239. window.open("https://docs.google.com/spreadsheets/d/1StrduhAXDAbAt7nxiMPZnwkHVQIbUnCfJ_anldpcjyQ/edit#gid=1950740070");
  240. }
  241. }
  242. });}
  243. }
  244.  
  245. function contagem(){
  246. $("#relogio").show();$("#timer").show();
  247. var distance = seg41 - segundo;
  248. seg41 -= segundo;
  249. var seconds = Math.floor((distance % (1000 * 91)) / 1000);
  250. document.getElementById("timer").innerHTML = seconds + "s ";
  251. if (distance <= 0) {
  252. clearInterval(tempoo);
  253. $("#botus").click();
  254. $("#relogio").hide();$("#timer").hide();
  255. seg41 = 91000;
  256. }
  257. }
  258.  
  259. function para(){
  260. $("#relogio").hide();$("#timer").hide();
  261. clearInterval(tempoo);
  262. }
  263.  
  264. function removerlinks (){
  265. for (var c = 0;c<4;c++){
  266. document.getElementsByClassName("menusub")[0].remove();
  267. }
  268. $('.divConteudo').html("- Durante o jogo não feche essa aba ou perderá seu progresso.<p>- Para sair do jogo basta apenas atualizar a página (F5)<\p>\
  269. <p>- Você tem 90 segundos para tentar adivinhar as 4 aves. (Clique em Avaliar caso já tenha respondido no tempo hábil)<\p><p>- Caso o tempo acabe,\
  270. as respostas serão avaliadas automáticamente.<\p><p>- Clique em 'Errou'' ou 'Correto'' para verificar a página do registro daquela ave (o gabarito).<p>\
  271. - Lembre-se que sua resposta só será válida se digitar o nome comum/científico da ave na caixa de resposta e escolher a ave na lista que surgir.<\p><p>- Uma vez o nome \
  272. escolhido não há como trocá-lo.<\p>");
  273. document.getElementsByClassName("divDireita")[0].remove();
  274. $("#102").remove();$("#100").remove();$("#107").remove();
  275. }
  276.  
  277. waitForKeyElements('#tabsMelhores', comeca);
  278. waitForKeyElements('body', protege);