您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Simple script to bypass paywalls on The Washington Post
- // ==UserScript==
- // @name The Washington Post - Paywall Bypass
- // @namespace http://tampermonkey.net/
- // @version 1.1
- // @description Simple script to bypass paywalls on The Washington Post
- // @author November2246
- // @match https://*.washingtonpost.com/*
- // @icon https://www.google.com/s2/favicons?sz=64&domain=washingtonpost.com
- // @grant none
- // @run-at document-start
- // @license ISC
- // ==/UserScript==
- // Hooks responses from */tetro/metering/evaluate ;)
- const _parse = JSON.parse;
- JSON.parse = function parse() {
- let obj = _parse.apply(this, arguments);
- if (propCheck(obj, ['status', 'action', 'data', 'granted'])) {
- obj.granted = true;
- obj.data.userAttributes.isSubscriber = true;
- obj.data.userAttributes.isAsub = true;
- obj.data.userAttributes.isSignedOutSubscriber = true;
- obj.data.userAttributes.isRestricted = false;
- obj.data.userAttributes.paymentMethod = 'PAYPAL';
- obj.data.targetingAttributes.requiresInlineRegwall = false;
- if (Array.isArray(obj.data.targetingAttributes.targetCodes)) {
- obj.data.targetingAttributes.targetCodes = obj.data.targetingAttributes.targetCodes.filter(x => !String(x).includes('pay'));
- }
- obj.data.token.isAppSubscriber = true;
- obj.data.action = -1;
- obj.action = -1;
- }
- return obj;
- };
- function propCheck(obj, propertiesArr) {
- const props = Object.getOwnPropertyNames(obj);
- return (props.length === propertiesArr.length) && propertiesArr.every(x => props.includes(x));
- }