Last active
March 15, 2025 00:54
-
-
Save Diegiwg/4d00ed615687432b93902d3aa0cf56b3 to your computer and use it in GitHub Desktop.
Medium to Freedium
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==UserScript== | |
// @name Medium to Freedium | |
// @namespace http://tampermonkey.net/ | |
// @version 3.0.0 | |
// @description Freedium: Your paywall breakthrough for Medium! (Original: https://gist.github.com/Diegiwg/4d00ed615687432b93902d3aa0cf56b3) | |
// @author Diegiwg | |
// @match https://medium.com/* | |
// @icon https://www.google.com/s2/favicons?sz=64&domain=freedium.cfd | |
// @grant none | |
// @run-at document-end | |
// @downloadURL https://update.greasyfork.org/scripts/529853/Medium%20to%20Freedium.user.js | |
// @updateURL https://update.greasyfork.org/scripts/529853/Medium%20to%20Freedium.meta.js | |
// ==/UserScript== | |
(function () { | |
"use strict"; | |
function replaceHomepageLinkWithButton(functionToExecute) { | |
const homepageLink = document.querySelector('[aria-label="Homepage"]'); | |
if (!homepageLink) { | |
console.log('Element with aria-label "Homepage" not found.'); | |
return; | |
} | |
const newButton = document.createElement("button"); | |
newButton.className = homepageLink.className; | |
newButton.innerHTML = "Medium to Freedium"; | |
newButton.style = "color: rgb(18 102 49); font-size: 2rem;"; | |
newButton.addEventListener("click", functionToExecute); | |
homepageLink.replaceWith(newButton); | |
} | |
function callback() { | |
// Create the full-screen loading overlay | |
const loadingOverlay = document.createElement("div"); | |
loadingOverlay.style.position = "fixed"; | |
loadingOverlay.style.top = "0"; | |
loadingOverlay.style.left = "0"; | |
loadingOverlay.style.width = "100%"; | |
loadingOverlay.style.height = "100%"; | |
loadingOverlay.style.backgroundColor = "rgba(255, 255, 255, 0.9)"; | |
loadingOverlay.style.display = "flex"; | |
loadingOverlay.style.justifyContent = "center"; | |
loadingOverlay.style.alignItems = "center"; | |
loadingOverlay.style.zIndex = "9999"; | |
// Create the loading indicator | |
const loadingIndicator = document.createElement("span"); | |
loadingIndicator.textContent = "Loading..."; | |
loadingIndicator.style.fontSize = "24px"; | |
loadingIndicator.style.fontWeight = "bold"; | |
loadingOverlay.appendChild(loadingIndicator); | |
document.body.appendChild(loadingOverlay); | |
setTimeout(function () { | |
window.location.href = "https://freedium.cfd/" + window.location.href; | |
}, 100); | |
} | |
replaceHomepageLinkWithButton(callback); | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment