Greasy Fork is available in English.

2chVladChekunovAntiCaptcha

2ch AntiCaptcha by Vlad Chekunov

// ==UserScript==
// @name 2chVladChekunovAntiCaptcha
// @description 2ch AntiCaptcha by Vlad Chekunov
// @include https://2ch.hk/*
// @include http://2ch.hk/*
// @version 1.2.0
// @grant none
// @namespace 2VCAC
// ==/UserScript==
var key = "ff84d54467048dea15d6cd93af4a6b87";
var answer = "951549";
if (unsafeWindow.myVar == undefined) {
unsafeWindow.configureACVC = function(){
	var vcacSetup = document.createElement("div");
	vcacSetup.id="acvcSetup";
	vcacSetup.innerHTML='<h1>Сетап антикапчи</h1><p>Если после настройки, капча всё равно выдаёт ошибку, попробуйте обновить страницу и переконфигурять капчу.</p><p>Введи код с картинки:</p><img src="'+$("#captcha-widget-main img")[0].src+'"><br><input value="'+$("#captcha-widget-main img")[0].src.split("/image/")[1].slice(0,32)+'" type="hidden" id="userHashAnswer"><input id="userAnswer"><br><a onclick="configureit()" href="javascript://">Сконфигурять</a>';
	vcacSetup.style="text-align:center;top: 0px;left: 0px;z-index: 982;display:block;position:fixed;width:100%;height:100%;background:#eeeeee";
	document.body.appendChild(vcacSetup);
}
unsafeWindow.configureit = function(){
	localStorage.vcac=document.getElementById("userHashAnswer").value+"passkodoblyadysosnuly"+document.getElementById("userAnswer").value;
	key=document.getElementById("userHashAnswer").value;
	answer=document.getElementById("userAnswer").value;
	document.getElementById("acvcSetup").remove();
}
}
if(localStorage.vcac){
	key=localStorage.vcac.split("passkodoblyadysosnuly")[0];
	answer=localStorage.vcac.split("passkodoblyadysosnuly")[1];
}else{
	alert("Пожалуйста, откройте форму ответа и сконфигуряйте антикапчу.");
}
$(".captcha-box")[0].style.display="none";
$(".captcha-box")[1].style.display="none";
$('label[for="recaptcha-response-field"]')[0].innerHTML="<a onclick='configureACVC()' href='javascript://'>Сконфигурять<br>антикапчу</a>";
function setAnswer() {
  $(".captcha-key").val(key+$(".captcha-key").val().slice(32,64));//Запускаем нейронную сеть по методу Сосницкого
  document.getElementById("captcha-value").value = answer;
  document.getElementById("qr-captcha-value").value = answer;
}
function initChaptcha() {
  var container = document.getElementById("captcha-widget-main");
  if (!container) return;
  var observer = new MutationObserver(function(mutations) {
    mutations.forEach(function(mutation) {
      Array.prototype.filter.call(mutation.addedNodes, function(node) {
        return node.tagName === "IMG";
      }).forEach(function(img) {
        setAnswer();
      });
    });
  });
  observer.observe(container, {childList: true});
}
initChaptcha();