Rep farmer

effeciently farms rep

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name         Rep farmer
// @namespace    
// @version      0.1
// @description  effeciently farms rep
// @author       nicael
// @include      http://edx-cs169-1x.stackexchange.com/*
// @grant        none
// ==/UserScript==

//<div class="message message-error message-dismissable" style="position: absolute; display: block;">
 //   <div class="message-inner"><div title="close this message (or hit Esc)" class="message-close">×
 //   </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>

$(".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>');

if(location.href.split("/")[3]=="questions"&&location.href.split("/")[4]&&parseInt($("*[itemprop='answerCount']").text())>2){

$("#farm-link").prop('title', 'click to start farming!');
if(localStorage.mod=="true"){
    
    $("#farm-link").addClass("icon-inbox-mod-unread");
    $("#farm-stats").hide().fadeIn(500);
    prepareTimer();
}else{
    $("#farm-stats").hide();
}
if(localStorage.modf=="true"){
    $("#farm-stats").text("switching off");
    $("#farm-link").removeClass("icon-inbox-mod-announcements").addClass("icon-inbox-mod-unread");
    localStorage.modf=false;
    $("#farm-stats").fadeIn(500,switchoffTimer);
}
$("#farm-link").click(function(){
    if(!$(this).hasClass("icon-inbox-mod-unread")||!$(this).hasClass("icon-inbox-mod-announcements")){
        
        $(this).addClass("icon-inbox-mod-unread");
        localStorage.mod=true;
        $("#farm-stats").hide().fadeIn(500);
        prepareTimer();
    }
    
    if($(this).hasClass("icon-inbox-mod-announcements")){
        localStorage.mod=false;
        localStorage.modf=true;
        location.reload();
    }
});


function prepareTimer(){
    $("#farm-stats").text("preparing for launch...");
    var down = document.getElementsByClassName("vote-down-on");
    for(var a=0;a<down.length;a++){
        down[a].click();
    }
    setTimeout(launchTimer,2000);
}

function launchTimer(){
    
    $("#farm-link").removeClass("icon-inbox-mod-unread").addClass("icon-inbox-mod-announcements");
    $("#farm-stats").text("farming");
    var down = document.getElementsByClassName("vote-down-off");
    for(var a=0;a<down.length;a++){
        down[a].click();
    }
    var i = 0;
    var timer = setInterval(function(){
        if(i<down.length){
            down[i].click();
            if($(".message-error > .message-inner > .message-text").length>0){
                alert("question exhausted; pick a new one")
                localStorage.mod=false;
                localStorage.modf=true;
                location.reload();
            }
            i++;
        }else{
            timer=null;
            clearInterval(timer);
            location.reload();
        }
    },1100);
}
function switchoffTimer(){
    $("#farm-stats").text("switching off");
    $("#farm-link").removeClass("icon-inbox-mod-announcements").addClass("icon-inbox-mod-unread");
    $(".vote-down-on").click();
   
    localStorage.mod=false;
    $("#farm-stats").text("timer switched off");
    setTimeout(function(){$("#farm-stats").fadeOut(100,function(){location.reload();});},2000);
}
}else{
    $("#farm-link").click(function(){location.href="/search?q=answers%3A3";})
}