Let you access what you need with your favorite IP address. The best tool to bypass a blockage of any web page (croxyproxy).
// ==UserScript==
// @name Croxyproxy Improvement
// @namespace I need a financial help
// @match https://www.croxyproxy.com/*
// @grant GM_setValue
// @grant GM_getValue
// @run-at document-body
// @noframes off
// @version 1.0.9.24
// @author is_competent
// @compatible Chrome
// @compatible Firefox
// @license MIT
// @description Let you access what you need with your favorite IP address. The best tool to bypass a blockage of any web page (croxyproxy).
// ==/UserScript==
(() => {
const localID = Number(GM_getValue('id')) || '';
const localURL = GM_getValue('urls') || [];
const main_ = document.createElement('container');
const help = document.createElement('div');
const idInput = document.createElement('input');
const parentHistory = document.createElement('span');
const historyList = document.createElement('div');
const urlInput = document.createElement('input');
idInput.placeholder = '# [40-300]';
urlInput.placeholder = 'Url here';
idInput.type = 'number';
idInput.pattern = '[0-9]*';
idInput.value = localID;
urlInput.value = localURL[localURL.length - 1] || '';
idInput.onkeydown = enterEvt;
urlInput.onkeydown = enterEvt;
urlInput.onclick = clickEvt;
help.textContent = 'I need a financial help, BRO. ([email protected])';
parentHistory.append(urlInput);
parentHistory.append(historyList);
main_.append(help);
main_.append(idInput);
main_.append(parentHistory);
document.querySelector('container')?.remove();
checkBody = setInterval(() => {
if (!document.body)
return;
document.body.prepend(main_);
clearInterval(checkBody);
})
function clickEvt(event) {
const {
target
} = event;
const X = GM_getValue('urls') ?? [];
const H = target.nextElementSibling;
H.style.display = 'block';
if (!H)
return;
H.textContent = '';
X.forEach(e => {
const Q = document.createElement('item');
Q.textContent = e;
H.append(Q);
});
const keyboardEvent = new KeyboardEvent('keydown', {
key: 'Enter',
bubbles: true
});
H.onclick = (eventH) => {
const C = eventH.target.textContent;
target.value = C;
target.dispatchEvent(keyboardEvent);
H.style.display = 'none';
}
}
function enterEvt(event) {
const {
target
} = event;
const parent = target.closest('container');
const idInput = parent.querySelector('input');
const urlInput = parent.querySelector('span input');
if (!/enter/i.test(event.key))
return;
const serverID = idInput?.value || '200';
const urlTOGO = urlInput?.value || 'https://example.net/';
const csrf = document.querySelector("#request > input[name=csrf]")?.value;
if (!csrf) {
alert('But I cannot continue, try on home page...');
return;
}
const X = GM_getValue('urls') ?? [];
X.push(urlTOGO);
GM_setValue('id', serverID);
GM_setValue('urls', [...new Set(X)]);
fetch("servers", {
"headers": {
"content-type": "application/x-www-form-urlencoded",
},
"referrerPolicy": "strict-origin-when-cross-origin",
"body": `url=${ encodeURIComponent( urlTOGO ) }&csrf=${ csrf }`,
"method": "POST"
}).then(e => e.text()).then(e => {
const parsedCSRF = /data-csrf=(\S+)/i.exec(e)[1].replaceAll(/"|"/g, '');
document.querySelector('#xForm')?.remove();
const form = `
<form id="xForm" method="POST" action="/requests?fso="><input type="hidden" name="url" value="${ urlTOGO }"><input type="hidden" name="proxyServerId" value="${ serverID }"><input type="hidden" name="csrf" value="${ parsedCSRF }"><input type="hidden" name="demo" value="0"><input type="hidden" name="frontOrigin" value="https://www.croxyproxy.com"><input type=submit></form>`;
const container = document.querySelector('container');
container.insertAdjacentHTML('beforeend', form);
// document.querySelector("body > form [type=submit]").click();
// document.querySelector("body > form [type=submit]").submit();
// document.querySelector("body > form").submit();
});
}
const STYLE = document.createElement('STYLE');
STYLE.textContent = `
item:hover {
opacity: .5;
color: green;
cursor: pointer;
}
item {
display: block;
}
container {
position: fixed;
z-index: 10000;
padding: 5px;
backdrop-filter: blur(8px);
}
container span {
display: initial;
width: 100%;
}
container span div {
position: static;
display: none;
background: lightblue;
left: 50px;
margin-left: 136px;
border-radius: 0 0 8px 8px;
padding: 5px;
border: 1px solid;
overflow: hidden;
white-space: nowrap;
user-select: none;
}
container form input[type=submit] {
width: 100%;
}
container input[type='number'] {
-moz-appearance:textfield;
margin-right: 5px;
width: 130px;
}
container input::-webkit-outer-spin-button,
container input::-webkit-inner-spin-button {
-webkit-appearance: none;
}
container span input {
width: 300px;
}
`;
document.head.append(STYLE);
})();