WikiHow Free Expert Answers

Paying for wikiHow "expert answers"? No way!

  1. // ==UserScript==
  2. // @name WikiHow Free Expert Answers
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.1.1
  5. // @description Paying for wikiHow "expert answers"? No way!
  6. // @author ae2Q
  7. // @match https://www.wikihow.com/*
  8. // @grant none
  9. // ==/UserScript==
  10.  
  11. (function() {
  12. "use strict";
  13.  
  14. // Variables that describe the classes that must be modified to make the code prettier and shorter.
  15. var sac = "qa_answer answer qa_obscured_answer qa_obscured_answer_purchase",
  16. oc = "qa_obscured_prompt";
  17.  
  18. var o=document.getElementsByClassName(oc).length, // The "pls support us to unlock these expert answers" overlays.
  19. sa=document.getElementsByClassName(sac).length, // The amount of obscured answers.
  20. x=sa+o; // This is a fail-safe variable.
  21.  
  22. if(o>0){for(;x>1;){
  23. x=document.getElementsByClassName(sac).length+document.getElementsByClassName(oc).length;
  24.  
  25. for(var j=0;j<document.getElementsByClassName(sac).length;j++){ // Unblur the answers.
  26. document.getElementsByClassName(sac)[j].className="qa_answer answer"
  27. }
  28.  
  29. for(var i=0;i<document.getElementsByClassName(oc).length;i++){ // Remove the overlays.
  30. document.getElementsByClassName(oc)[i].parentNode.removeChild(document.getElementsByClassName(oc)[i])
  31. }
  32. }
  33. // Remove the text that lets you know you can 'unlock premium answers'.
  34. document.getElementsByClassName("qa_obscured_cta")[0].parentNode.removeChild(document.getElementsByClassName("qa_obscured_cta")[0])
  35.  
  36. // Let the user know that their answers have been unobscured.
  37. document.getElementById("qa").innerHTML=
  38. "<p><b>Removed "+o+" overlays and unblurred "+sa+" answers.</b></p>"+document.getElementById("qa").innerHTML;
  39. console.log("Removed "+o+" overlays and unblurred "+sa+" answers")
  40. }
  41. })();