// ==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 = "
"; if (sticky == true) { getbox.style.position = "fixed"; } else { getbox.style.position = "absolute"; } getbox.style.right = "20px"; getbox.style.top = "39px"; window.document.getElementsByTagName("body")[0].appendChild(getbox); document.getElementsByName("btqrpost")[0].addEventListener("click", function(e) { if (document.getElementById("qr")) { var inputs = document.getElementsByTagName('input'); for (var j=0; j < inputs.length; j++) { inp = inputs[j]; if (inp.getAttribute('type') == 'submit' && inp.getAttribute('value') == "Submit" && inp.getAttribute('id') != "com_submit") { inputs[j].name = "qrsubmit" } } first = true; document.getElementsByName("txtpostnumber")[0].value = document.getElementsByName("txtpostnumber")[0].value.replace(/[^0123456789]/g, ""); n = parseInt(document.getElementsByName("txtpostnumber")[0].value); if (!isNaN(n)) { document.getElementsByName("getstatus")[0].innerHTML = "Waiting for: " + n + "..."; check_post(); } else alert("Invalid Number"); } else alert("4chan X Quick Reply is not Open"); }, false); document.getElementsByName("btpostrate")[0].addEventListener("click", function(e) { document.getElementsByName("txtpostnumber")[0].value = document.getElementsByName("txtpostnumber")[0].value.replace(/[^0123456789]/g, ""); n = parseInt(document.getElementsByName("txtpostnumber")[0].value); if (!isNaN(n)) { document.getElementsByName("txtpostnumber")[0].value = ""; document.getElementsByName("getstatus")[0].innerHTML = "Waiting for: " + n + "..."; l = 0; postrates(); } else alert("Invalid Number"); }, false); } setup();