您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Removes images with blacklisted tags from the DOM on rule34.xxx based on a tag blacklist stored in cookies.
当前为
// ==UserScript== // @name Remove Blacklisted Images // @namespace http://tampermonkey.net/ // @version 1.0 // @description Removes images with blacklisted tags from the DOM on rule34.xxx based on a tag blacklist stored in cookies. // @author Dramorian // @match https://rule34.xxx/index.php?page=post* // @match https://rule34.xxx/index.php?page=favorites* // @match https://rule34.xxx/index.php?page=comment* // @exclude https://rule34.xxx/index.php?page=post&s=view* // @icon https://www.google.com/s2/favicons?sz=64&domain=rule34.xxx // @license MIT // @grant none // ==/UserScript== (function() { 'use strict'; // Function to get the tag blacklist from cookies function getTagBlacklist() { const cookie = document.cookie .split('; ') .find(row => row.startsWith('tag_blacklist=')); return cookie ? decodeURIComponent(cookie.split('=')[1]).split('%20') : []; } // Function to remove elements matching the blacklist criteria function removeBlacklistedElements() { const tagBlacklist = getTagBlacklist(); if (tagBlacklist.length === 0) { console.log('No blacklist found in cookies.'); return; } let removedCount = 0; // Check for post page by detecting spans with the class blacklisted-image const postSpans = document.querySelectorAll('span.blacklisted-image'); if (postSpans.length > 0) { postSpans.forEach(span => { span.remove(); removedCount++; }); } // Check for favorites page by detecting images with titles const favoriteImages = document.querySelectorAll('img[title]'); if (favoriteImages.length > 0) { favoriteImages.forEach(img => { const imgTitle = img.getAttribute('title'); if (tagBlacklist.some(tag => imgTitle && imgTitle.includes(tag))) { const spanElement = img.closest('span'); if (spanElement) { spanElement.remove(); removedCount++; } } }); } // Check for comment page by detecting images in the comment structure const commentImages = document.querySelectorAll('div[id^="p"] > div.col1.thumb > a > img'); if (commentImages.length > 0) { commentImages.forEach(img => { const imgTitle = img.getAttribute('title'); if (tagBlacklist.some(tag => imgTitle && imgTitle.includes(tag))) { const divElement = img.closest('div[id^="p"]'); if (divElement) { divElement.remove(); removedCount++; } } }); } const message = removedCount > 0 ? `Blacklisted images removed: ${removedCount}` : 'Blacklisted images have not been found'; const contentElement = document.getElementById('content'); if (contentElement) { const messageElement = document.createElement('div'); messageElement.textContent = message; contentElement.insertAdjacentElement('afterbegin', messageElement); } } removeBlacklistedElements(); })();