您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
bypass medium paywall by using archive.is
// ==UserScript== // @name medium bypass // @namespace http://tampermonkey.net/ // @version 2024-08-19 // @description bypass medium paywall by using archive.is // @author The DT // @match https://*/* // @icon https://github.com/thedtvn/thedtvn/raw/main/trace.svg?raw=true // @grant none // @license Apache License 2.0 // ==/UserScript== (async function() { 'use strict'; // archive.is Part if (location.href.match(/^https?:\/\/archive\.is\/[a-zA-Z0-9]{5}/)) { let container = document.body; let clone_div = document.getElementById("CONTENT"); let clone_input_header = document.querySelector('[name="q"]'); console.log(clone_input_header); for (let i of document.querySelectorAll("a")) { if (i.href.startsWith("https://archive.is/o/")) { i.href = i.href.replace(/^https?:\/\/archive\.is\/o\/[a-zA-Z0-9]{5}\//, ""); } i.removeAttribute("target"); } container.innerHTML = ""; clone_div.style = ""; clone_input_header.style = "text-align: center;" clone_input_header.style.width = "100%"; container.style = "overflow-x: hidden; margin: 0px;" container.insertBefore(clone_div, container.firstChild); container.insertBefore(clone_input_header, container.firstChild); document.getElementById("hashtags").remove() let dialog_box = document.querySelector('[role="dialog"]'); if (!dialog_box) return dialog_box.remove() return } // Medium Part function check_is_pre() { let elm = document.querySelector('[type="application/ld+json"]'); if (!elm) return false let json_data_str = elm.innerText; let json_data = JSON.parse(json_data_str); return json_data.isAccessibleForFree == "False"; } function check() { let is_pre = check_is_pre(); if (!is_pre) return let pageurl = location.href; let url_obj = new URL("https://archive.is/submit/"); url_obj.searchParams.set("submitid", ""); url_obj.searchParams.set("url", pageurl); location.replace(url_obj.href); } let is_site_meta = document.querySelector('meta[property="og:site_name"]'); if (!is_site_meta) return let is_medium = is_site_meta.content == "Medium"; if (!is_medium) return check() window.addEventListener("pushState", async (event) => { await new Promise(r => setTimeout(r, 1000)); check() }); })();