// ==UserScript== // @name 4chan GET Modified // @description GET script // @namespace HERPDERP // @include http*://boards.4chan.org/* // @include http*://boards.4channel.org/* // @version 0.9.3 // @grant GM_xmlhttpRequest // @homepage http://userscripts.org/scripts/show/117715 // @downloadURL none // ==/UserScript== var first = true, n = 0, l = 0, m = 0; var offset = 1; //how early it starts posting (default is 1, or 1 post before) var sticky = true; //posting box follows you as you scroll down the page var postrange = 20; //number of posts to use for post rate calc var dots = "."; function progress() { if (dots == "...") dots = "."; else dots += "."; document.getElementsByName("getstatus")[0].innerHTML = "Waiting for: " + n + dots; } function check_post() { if (n == 0) return; progress(); var k = first ? n : (n-offset); GM_xmlhttpRequest({ method: "HEAD", url: "http://sys.4chan.org" + location.pathname.match(/\/[^\/]+\//)[0] + "imgboard.php?res=" + k, onload: function(response) { if (response.status == 200) { if (first) { alert(n + " already posted!"); document.getElementsByName("txtpostnumber")[0].value = n; document.getElementsByName("txtpostnumber")[0].focus(); document.getElementsByName("getstatus")[0].innerHTML = "Ready..."; n = 0; } else { document.getElementsByName("qrsubmit")[0].click(); document.getElementsByName("getstatus")[0].innerHTML = "Ready..."; document.getElementsByName("txtpostnumber")[0].value = ""; } } else { first = false; check_post(); } } }); } function postrates() { if (n == 0) return; progress(); GM_xmlhttpRequest({ method: "HEAD", url: "http://sys.4chan.org" + location.pathname.match(/\/[^\/]+\//)[0] + "imgboard.php?res=" + n, onload: function(response) { if (response.status == 200) { if (first) { alert(n + " passed"); document.getElementsByName("txtpostnumber")[0].value = n; document.getElementsByName("txtpostnumber")[0].focus(); document.getElementsByName("getstatus")[0].innerHTML = "Ready..."; n = 0; } else { if (l == 0) { l = (new Date()).getTime() / 1000; n = (n + postrange); document.getElementsByName("getstatus")[0].innerHTML = "Waiting for: " + n + "..."; postrates(); } else { m = Math.round((new Date()).getTime() / 1000 - l); alert(postrange + " posts in " + m + " seconds. Average post time: " + Math.round((postrange / m)*100)/100 + "/s"); document.getElementsByName("getstatus")[0].innerHTML = "Ready..."; } } } else { first = false; postrates(); } } }); } function setup() { getbox = window.document.createElement('div'); getbox.innerHTML = "