Advertisement
Guest User

Egg bot + (user23013)

a guest
Apr 1st, 2015
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (function () {
  2.     var warnings, lastquaq, lastdecay, last, beforelast;
  3.     var counter = 0;
  4.     var countdown = 0;
  5.     var lastlength = -1;
  6.     function vote() {
  7.         //get health values of questions, answers, users, quality; -1 means hearts are red
  8.         var quaq = [];
  9.         var names = ['questions', 'answers', 'users', 'quality', 'traffic'];
  10.         names.forEach(function(s) {
  11.             s = $('#egg-stat-' + s);
  12.             if (s.length > 0) {
  13.                 s = parseInt(s.attr('title')[0]);
  14.                 quaq.push(isNaN(s) ? -1 : s);
  15.             }
  16.         });
  17.         if(quaq.length != lastlength){
  18.             warnings = [0,0,0,0];
  19.             if(quaq.length == 2)
  20.                 lastquaq = [0,0,0,0,0];
  21.             else if(quaq.length == 4)
  22.                 lastquaq = [1,1,0,0,0];
  23.             else
  24.                 lastquaq = [1,1,1,1,0];
  25.             last = -1;
  26.             beforelast = -1;
  27.             lastlength = quaq.length;
  28.             lastdecay = [0,0,0,0];
  29.         }
  30.         var lastwarnings = warnings;
  31.         //var ignorelast = false;
  32.         var oncefull = 0;
  33.         var notfull = 0;
  34.         var decay = 0;
  35.         var maxwarning = 0;
  36.         var nmaxwarning = 0;
  37.         var last2 = -1;
  38.         var hasdecay = false;
  39.         for(var i = 0; i < Math.max(quaq.length, 4); i++) {
  40.             if(quaq[i] == -1){
  41.                 warnings[i] ++;
  42.                 if(warnings[i] > maxwarning){
  43.                     maxwarning = warnings[i];
  44.                     nmaxwarning = 0;
  45.                 }
  46.                 if(warnings[i] == maxwarning)
  47.                     nmaxwarning ++;
  48.             }
  49.             else
  50.                 warnings[i] = 0;
  51.             if(quaq[i] > lastquaq[i] && (last2 == -1 || last2 == 1))
  52.                 last2 = i;
  53.             if(last2 != -1)
  54.                 last = last2;
  55.             //if(quaq[i] < 4 && lastquaq[i] < 4)
  56.                 //ignorelast = true;
  57.             if(quaq[i] == 4 || lastquaq[i] == 4)
  58.                 oncefull ++;
  59.             //if(Math.max(quaq[j],0) >= lastquaq[j] && !lastdecay[j])
  60.                 //decay ++;
  61.             if(Math.max(quaq[j],0) >= lastquaq[j])
  62.                 hasdecay = true;
  63.             if(quaq[i] <= 3)
  64.                 notfull ++;
  65.         }
  66.         var index = -1;
  67.         for(var i = 0; i < Math.max(quaq.length, 4); i++)
  68.             if(warnings[i] > 4 - nmaxwarning){
  69.                 index = i;
  70.                 break;
  71.             }
  72.         console.log(index);
  73.         if(index == -1)
  74.         for(var i = 0; i < Math.max(quaq.length, 4); i++){
  75.             var j = i >= 2 ? i^1 : i;
  76.             if(((quaq[j] >= lastquaq[j] && (!lastdecay[j] || oncefull < 2)
  77.                 && (/*(ignorelast && quaq[j] <= 3) ||*/ j != last || hasdecay))
  78.                 || (j == 3 && quaq.length >= 5 && quaq[4] >= 3))
  79.                 && quaq[j] < 4){
  80.                 index = j;
  81.                 break;
  82.             }
  83.         }
  84.         console.log(index);
  85.         if(index == -1)
  86.         for(var i = 0; i < Math.max(quaq.length, 4); i++){
  87.             var j = i >= 2 ? i^1 : i;
  88.             if(Math.max(quaq[j],0) >= lastquaq[j] && quaq[j] < 4){
  89.                 index = j;
  90.                 break;
  91.             }
  92.         }
  93.         console.log(index);
  94.         if(index == -1 && notfull >= 2)
  95.         for(var i = 0; i < Math.max(quaq.length, 4); i++){
  96.             var j = i >= 2 ? i^1 : i;
  97.             if(quaq[j] < 4){
  98.                 index = j;
  99.                 break;
  100.             }
  101.         }
  102.         console.log(index);
  103.         if(index == -1)
  104.             if(last == 0)
  105.                 index = 1;
  106.             else if(last == 1)
  107.                 index = 0;
  108.             else if(beforelast == 0)
  109.                 index = 1;
  110.             else
  111.                 index = 0;
  112.         console.log(index);
  113.        
  114.         //determine what button to press
  115.         btn = ['Ask','Answer','Upvote','Downvote'][index];
  116.         //click the button selected, or click Continue then Restart if button not found
  117.         var clickPriority = [btn, 'Continue', 'Flag', 'Restart'], b = $('button')
  118.         for(var i = 0; i < clickPriority.length; i++) {
  119.             b.each(function() {
  120.                 var t = $(this)
  121.                 if (i != clickPriority.length && t.text() == clickPriority[i]) {
  122.                     t.click()
  123.                     console.log('Voted for ' + clickPriority[i] + ' at ' + (counter * 20).toString() + ' seconds in.')
  124.                     if(i == 0){
  125.                         if(index == 3)
  126.                             warnings[2] ++;
  127.                         beforelast = last;
  128.                         last = index;
  129.                         for(var j = 0; j < Math.max(quaq.length, 4); j++)
  130.                             lastdecay[j] = lastquaq[j] > Math.max(0, quaq[j]);
  131.                         lastquaq = quaq;
  132.                     }
  133.                     else
  134.                         warnings = lastwarnings;
  135.                     i = clickPriority.length
  136.                 }
  137.             })
  138.         }
  139.         console.log(last);
  140.         console.log(quaq);
  141.         console.log(lastdecay);
  142.         ++counter;
  143.     }
  144.     $("#egg-clock-text").bind("DOMSubtreeModified",function(){
  145.         //console.log("Change!");
  146.         var t = parseInt($("#egg-clock-text").text());
  147.         if( t < 13 ){
  148.             if( t > countdown)
  149.                 vote();
  150.             countdown = t;
  151.         }
  152.     });
  153. })()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement