PaywallBuster - Remove Paywalls
1 June 2025 at 13:04
estimated reading time: 1 min (function(){const services = [{"name":"1","url":"https://archive.is/newest/"},{"name":"2","url":"https://web.archive.org/web/"},{"name":"3","url":"https://smry.ai/"},{"name":"4","url":"https://12ft.io/"},{"name":"5","url":"https://webcache.googleusercontent.com/search?q=cache:"}];
function changeService(index) {
const urlParams = new URLSearchParams(window.location.search);
const article = urlParams.get("article");
if (!article) return;
if (services[index].name === "4" || services[index].name === "5") {
window.open(services[index].url + article, "_blank");
} else {
document.getElementById("content-frame").src =
services[index].url + article;
}
// Remove highlight from all buttons
services.forEach((_, i) => {
document
.getElementById(`service-button-${i}`)
.classList.remove("bg-blue-900", "dark:bg-blue-800");
});
// Add highlight to clicked button
document
.getElementById(`service-button-${index}`)
.classList.add("bg-blue-900", "dark:bg-blue-800");
}
function resizeIframe() {
const container = document.getElementById("iframe-container");
const iframe = document.getElementById("content-frame");
const containerTop = container.getBoundingClientRect().top;
const windowHeight = window.innerHeight;
const newHeight = windowHeight - containerTop - 20; // 20px for some bottom margin
container.style.height = `${newHeight}px`;
// Add mobile scaling
if (window.innerWidth < 640) {
// extra small devices
iframe.style.transform = "scale(0.5)";
iframe.style.width = "200%";
iframe.style.height = "200%";
} else if (window.innerWidth < 768) {
// small devices
iframe.style.transform = "scale(0.6)";
iframe.style.width = "166.67%";
iframe.style.height = "166.67%";
} else if (window.innerWidth < 1024) {
// medium devices
iframe.style.transform = "scale(0.8)";
iframe.style.width = "125%";
iframe.style.height = "125%";
} else {
// large devices
iframe.style.transform = "scale(0.99)";
iframe.style.width = "100%";
iframe.style.height = "100%";
}
}
// Initialize the iframe with the first service and the article URL
window.onload = function () {
const urlParams = new URLSearchParams(window.location.search);
const article = urlParams.get("article");
if (article) {
document.getElementById("content-frame").src =
services[0].url + article;
// Highlight the first button by default
document
.getElementById("service-button-0")
.classList.add("bg-blue-900", "dark:bg-blue-800");
}
// Add click event listeners to the buttons
services.forEach((_, index) => {
document
.getElementById(`service-button-${index}`)
.addEventListener("click", () => changeService(index));
});
// Initial resize
resizeIframe();
// Add event listener for window resize
window.addEventListener("resize", resizeIframe);
};
})();
Archive Sources
Click the different buttons to search various archives