Rep farmer

effeciently farms rep

  1. // ==UserScript==
  2. // @name Rep farmer
  3. // @namespace
  4. // @version 0.1
  5. // @description effeciently farms rep
  6. // @author nicael
  7. // @include http://edx-cs169-1x.stackexchange.com/*
  8. // @grant none
  9. // ==/UserScript==
  10.  
  11. //<div class="message message-error message-dismissable" style="position: absolute; display: block;">
  12. // <div class="message-inner"><div title="close this message (or hit Esc)" class="message-close">×
  13. // </div><div class="message-text" style="padding-right: 35px;">You last voted on this question 5 mins ago. Your vote is now locked in unless this question is edited.</div></div></div>
  14.  
  15. $(".network-items").append('<a id="farm-link" class="topbar-icon icon-inbox-mod yes-hover" title="pick a question with >3 answers to be able to farm (click to do it)"></a> <div id="farm-stats" style="display:inline-block;color:white;margin-top:10px;"></div>');
  16.  
  17. if(location.href.split("/")[3]=="questions"&&location.href.split("/")[4]&&parseInt($("*[itemprop='answerCount']").text())>2){
  18.  
  19. $("#farm-link").prop('title', 'click to start farming!');
  20. if(localStorage.mod=="true"){
  21. $("#farm-link").addClass("icon-inbox-mod-unread");
  22. $("#farm-stats").hide().fadeIn(500);
  23. prepareTimer();
  24. }else{
  25. $("#farm-stats").hide();
  26. }
  27. if(localStorage.modf=="true"){
  28. $("#farm-stats").text("switching off");
  29. $("#farm-link").removeClass("icon-inbox-mod-announcements").addClass("icon-inbox-mod-unread");
  30. localStorage.modf=false;
  31. $("#farm-stats").fadeIn(500,switchoffTimer);
  32. }
  33. $("#farm-link").click(function(){
  34. if(!$(this).hasClass("icon-inbox-mod-unread")||!$(this).hasClass("icon-inbox-mod-announcements")){
  35. $(this).addClass("icon-inbox-mod-unread");
  36. localStorage.mod=true;
  37. $("#farm-stats").hide().fadeIn(500);
  38. prepareTimer();
  39. }
  40. if($(this).hasClass("icon-inbox-mod-announcements")){
  41. localStorage.mod=false;
  42. localStorage.modf=true;
  43. location.reload();
  44. }
  45. });
  46.  
  47.  
  48. function prepareTimer(){
  49. $("#farm-stats").text("preparing for launch...");
  50. var down = document.getElementsByClassName("vote-down-on");
  51. for(var a=0;a<down.length;a++){
  52. down[a].click();
  53. }
  54. setTimeout(launchTimer,2000);
  55. }
  56.  
  57. function launchTimer(){
  58. $("#farm-link").removeClass("icon-inbox-mod-unread").addClass("icon-inbox-mod-announcements");
  59. $("#farm-stats").text("farming");
  60. var down = document.getElementsByClassName("vote-down-off");
  61. for(var a=0;a<down.length;a++){
  62. down[a].click();
  63. }
  64. var i = 0;
  65. var timer = setInterval(function(){
  66. if(i<down.length){
  67. down[i].click();
  68. if($(".message-error > .message-inner > .message-text").length>0){
  69. alert("question exhausted; pick a new one")
  70. localStorage.mod=false;
  71. localStorage.modf=true;
  72. location.reload();
  73. }
  74. i++;
  75. }else{
  76. timer=null;
  77. clearInterval(timer);
  78. location.reload();
  79. }
  80. },1100);
  81. }
  82. function switchoffTimer(){
  83. $("#farm-stats").text("switching off");
  84. $("#farm-link").removeClass("icon-inbox-mod-announcements").addClass("icon-inbox-mod-unread");
  85. $(".vote-down-on").click();
  86. localStorage.mod=false;
  87. $("#farm-stats").text("timer switched off");
  88. setTimeout(function(){$("#farm-stats").fadeOut(100,function(){location.reload();});},2000);
  89. }
  90. }else{
  91. $("#farm-link").click(function(){location.href="/search?q=answers%3A3";})
  92. }