您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
A JS script that intercepts the fetch prototype and overrides it to intercept POST requests
当前为
// ==UserScript== // @name Fetch Intercept Userscript // @namespace http://tampermonkey.net/ // @version 1.0 // @description A JS script that intercepts the fetch prototype and overrides it to intercept POST requests // @author You // @match https://academy.cs.cmu.edu/* // @icon https://www.google.com/s2/favicons?sz=64&domain=cmu.edu // @grant none // ==/UserScript== //add any desired link addresses to block to the list const blockingRequests = [] var originalFetch = window.fetch; window.fetch = function(url, options){ if (url == "https://backend.academy.cs.cmu.edu/api/v0/submission/points/"){ const optionsBody = JSON.parse(options.body) let submissionID = optionsBody.submission_id; let fileVersion = optionsBody.file_version; /* @param {number} submissionID a 4 digit number that is created upon submission(is in link) @param {number} points - a 1 digit number that represents the amount of points scored upon submission | (NOTE - be very careful with setting it to high or to negative values - it can break the website/exercises) @param {string} score - string that can have 2 possiblities "PASS" or "FAIL" @param {arr} fileVersion - an array that contains 2 numbers that represent fileversion (should be kept the same) */ let jsonDefined = { "submission_id": submissionID, "points": 1, "score": "PASS", "file_version": fileVersion } options.body = JSON.stringify(jsonDefined); console.log(`Found submission url: ${url}, ${options.body}`); } //elif not blocked url if (blockingRequests.some(blockedUrl => url.includes(blockedUrl))){ console.log("Blocked Request in List:", url); return Promise.reject(new Error("Blocked Request.")) }else{ return originalFetch.apply(this, arguments) } }