// ==UserScript==
// @name (Tobitool) Redirect Bypass Stealth
// @namespace Tool
// @version 1.0
// @description Redirect only valid redirect links (ignore honeypots)
// @match *://*/*
// @run-at document-start
// ==/UserScript==
(function () {
try {
if (window.top !== window.self) return;
function init() {
try {
var url = new URL(window.location.href);
if (!url.searchParams.has("tobitool")) return;
var target = url.searchParams.get("tobitool");
if (!target) return;
// Safe decode loop
try {
var prev;
do {
prev = target;
target = decodeURIComponent(target);
} while (prev !== target);
} catch (e) {}
if (!/^https?:\/\//i.test(target)) return;
document.referrerPolicy = "no-referrer-when-downgrade";
// Create overlay
var overlay = document.createElement("div");
overlay.innerHTML = `
`;
document.body.appendChild(overlay);
var countdownEl = document.getElementById("countdown");
var progressRing = document.getElementById("progress");
var getLinkBtn = document.getElementById("get-link-btn");
if (!countdownEl || !progressRing || !getLinkBtn) return;
var counter = 1;
var radius = 45;
var circumference = 2 * Math.PI * radius;
progressRing.style.strokeDasharray = circumference;
progressRing.style.strokeDashoffset = 0;
var total = counter;
var interval = setInterval(function () {
counter--;
countdownEl.textContent = counter + "s";
var offset = circumference - (counter / total) * circumference;
progressRing.style.strokeDashoffset = offset;
if (counter <= 0) {
clearInterval(interval);
countdownEl.textContent = "Ready";
progressRing.style.strokeDashoffset = circumference;
getLinkBtn.style.pointerEvents = "auto";
getLinkBtn.style.opacity = "1";
getLinkBtn.setAttribute("href", target);
getLinkBtn.setAttribute("target", "_self");
getLinkBtn.setAttribute("rel", "noopener");
getLinkBtn.setAttribute("referrerpolicy", "origin");
}
}, 1000);
} catch (e) {
console.error(e);
}
}
// Ensure body exists (important for all browsers)
if (document.body) {
init();
} else {
document.addEventListener("DOMContentLoaded", init);
}
} catch (e) {
console.error(e);
}
})();