您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Sleazy Fork is available in English.
Integrates a raw Cybar URL into F95Zone threads
当前为
// ==UserScript== // @name Pixeldrain No Limit DL on F95Zone.to // @namespace https://greasyfork.org/fr/users/1468290-payamarre // @version 1.1 // @icon https://www.google.com/s2/favicons?sz=64&domain=f95zone.to // @description Integrates a raw Cybar URL into F95Zone threads // @author NoOne // @license MIT // @match https://f95zone.to/* // @grant GM_xmlhttpRequest // @connect f95zone.to // ==/UserScript== /* >> This script works better when used alongside: * >> F95Zone-Skipper → https://github.com/Cat-Ling/f95zone-skipper * >> Pixeldrain-Bypass-Userscript → https://github.com/MegaLime0/pixeldrain-bypass-usercript * >> No links showing? Click the Pixeldrain link, complete the CAPTCHA, then refresh the page. */ (function () { 'use strict'; const CYBAR_BASE = "https://pd.cybar.xyz/"; if (window.location.hostname === 'f95zone.to' && !window.location.pathname.startsWith('/masked/')) { const addCybarLinks = () => { const links = document.querySelectorAll('a[href*="/masked/pixeldrain.com/"]'); links.forEach(link => { if (link.dataset.cybarDone) return; link.dataset.cybarDone = "true"; GM_xmlhttpRequest({ method: "POST", url: link.href, headers: { "Content-Type": "application/x-www-form-urlencoded" }, data: "xhr=1&download=1", onload: function (res) { try { const json = JSON.parse(res.responseText); if (json.status === "ok" && json.msg.includes("pixeldrain.com/u/")) { const match = json.msg.match(/pixeldrain\.com\/u\/([\w\d]+)/); if (match && match[1]) { const cybarUrl = CYBAR_BASE + match[1]; const rawLink = document.createElement('a'); rawLink.href = cybarUrl; rawLink.textContent = ` [${match[1]}]`; rawLink.style.color = "#a4be8c"; rawLink.style.marginLeft = "5px"; rawLink.target = "_blank"; link.insertAdjacentElement('afterend', rawLink); } } } catch (e) { console.error("Erreur parsing JSON pour :", link.href, e); } }, onerror: function () { console.error("Erreur HTTP pour :", link.href); } }); }); }; addCybarLinks(); const observer = new MutationObserver(addCybarLinks); observer.observe(document.body, { childList: true, subtree: true }); } })();