Greasy Fork

Greasy Fork is available in English.

reCAPTCHA Helper

This automatically clicks or executes on any reCAPTCHA on the webpage and submits its form directly after you solved it.

当前为 2018-02-02 提交的版本,查看 最新版本

// ==UserScript==
// @name         reCAPTCHA Helper
// @icon         https://www.gstatic.com/recaptcha/admin/favicon.ico
// @version      1.1.1
// @description  This automatically clicks or executes on any reCAPTCHA on the webpage and submits its form directly after you solved it.
// @author       Royalgamer06
// @include      *
// @grant        none
// @run-at       document-start
// @namespace    http://greasyfork.icu/scripts/18449-recaptcha-form-autosubmit/
// @homepageURL  http://greasyfork.icu/scripts/18449-recaptcha-form-autosubmit/
// @supportURL   http://greasyfork.icu/scripts/18449-recaptcha-form-autosubmit/feedback/
// ==/UserScript==

// ==Configuration==
const blacklistedUrls = [
    "miped.ru",
    "www.indiegala",
    "https://gleam.io/"
];
// ==/Configuration==

// ==Code==
const url = window.location !== window.parent.location ? document.referrer : document.location.href;

if (!isBlackListed(url)) {
    if (location.href.includes("google.com/recaptcha")) {
        var clickCheck = setInterval(function() {
            if (document.querySelectorAll(".recaptcha-checkbox-checkmark").length > 0) {
                clearInterval(clickCheck);
                document.querySelector(".recaptcha-checkbox-checkmark").click();
            }
        }, 50);
    } else {
        window.onload = readyToHelp;
    }
}

function readyToHelp() {
    try {
        grecaptcha.execute();
    } finally {
        [...document.querySelectorAll(".g-recaptcha")].forEach(captcha => {
            let form = captcha.closest("form");
            var solveCheck = setInterval(function() {
                if (grecaptcha.getResponse().length > 0) {
                    clearInterval(solveCheck);
                    form.submit();
                }
            }, 50);
        });
    }
}

function isBlackListed(url) {
    return blacklistedUrls.every(bu => !url.includes(bu));
}
// ==/Code==