您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Disable adblocker on softcobra.net and decode links when possible
/** * MIT License * * Copyright (c) 2021-2022 GreatWizard * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ // ==UserScript== // @name Softcobra Unadblocker and Decoder (2022) // @namespace https://greasyfork.runtimutd.eu.org/en/users/781676-greatwizard // @version 0.17 // @description Disable adblocker on softcobra.net and decode links when possible // @author GreatWizard (based on butforme and GlumWoodpecker work) // @copyright 2021-2022, GreatWizard (https://greasyfork.runtimutd.eu.org/en/users/781676-greatwizard) // @license MIT // @match https://www.softcobra.net/* // @match https://www.nin10news.net/* // @grant none // @run-at document-end // @require https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/crypto-js.min.js // ==/UserScript== // ==OpenUserScript== // @author GreatWizard // @collaborator butforme // @collaborator GlumWoodpecker // ==/OpenUserScript== /* jshint esversion: 6 */ /* global CryptoJS */ setTimeout(function() { const message = document.getElementsByClassName("message")[0]; const modal = document.getElementById("myModal"); message.style.display = "none"; modal.style.display = "none"; }, 1800); const DEFAULT_STORE = { version: 1, resolved: [] }; const STORE_NAME = "__decoder__"; const base64RegExp = /^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=|[A-Za-z0-9+\/]{4})$/; const aesStart = "U2FsdGVkX1"; const formBody = (body) => { let data = []; for (let k in body) { data.push(`${encodeURIComponent(k)}=${encodeURIComponent(body[k])}`); } data = data.join("&"); return data; } let store = JSON.parse(localStorage.getItem(STORE_NAME)) || {}; if (store.version !== DEFAULT_STORE.version) { store = DEFAULT_STORE; } (async () => { const tableRows = document.getElementsByTagName("td"); for (let j = 0; j < tableRows.length; j++) { const prevRow = j - 1 > 0 ? tableRows[j - 1].innerText : undefined; const currRow = tableRows[j].innerText; let decodedLink; let tryBase64 = currRow; try { let tryBase64Counter = 2; do { tryBase64 = atob(tryBase64); tryBase64Counter--; } while (!tryBase64.startsWith("http") && tryBase64Counter > 0); } catch (e) {} const findInStore = store.resolved.find(element => element.encoded === currRow); if (findInStore !== undefined) { decodedLink = findInStore.decoded; } else if (tryBase64.startsWith("http")) { decodedLink = tryBase64; } else if (currRow.startsWith(aesStart)) { decodedLink = CryptoJS.AES.decrypt(currRow, "/").toString(CryptoJS.enc.Utf8); } else if (currRow.match(base64RegExp)) { tableRows[j].innerHTML = `<a href="https://www.nin10news.net/decode/" target="_blank">${currRow}</a>`; // let response = await fetch("https://www.nin10news.net/wp-content/themes/twentysixteen/inc/decode.php", { // method: "POST", // headers: { // "Content-Type": "application/x-www-form-urlencoded" // }, // body: formBody({ // data: currRow // }) // }); // let body = await response.body; // let data = await body.getReader().read(); // try { // decodedLink = atob(new TextDecoder("utf-8").decode(data.value)); // } catch (e) { // console.log(`Impossible to decode ${currRow}`); // } } if (decodedLink !== undefined) { tableRows[j].innerHTML = `<a href="${decodedLink}" target="_blank">${decodedLink}</a>`; store.resolved.push({ title: prevRow !== undefined && prevRow !== "" ? prevRow : undefined, encoded: currRow, decoded: decodedLink }); localStorage.setItem(STORE_NAME, JSON.stringify(store)); } } })();