Bypass the "open in app prompt", unblur NSFW content and thumbnails, and remove the blur from community highlight cards on Reddit automatically.
当前为
// ==UserScript==
// @name Reddit Bypass Enhancer
// @namespace https://greasyfork.org/en/users/1030895-universedev
// @version 1.5
// @description Bypass the "open in app prompt", unblur NSFW content and thumbnails, and remove the blur from community highlight cards on Reddit automatically.
// @author UniverseDev
// @license GPL-3.0-or-later
// @match https://www.reddit.com/*
// @match https://sh.reddit.com/*
// @grant none
// @run-at document-start
// @noframes
// ==/UserScript==
'use strict';
(function () {
const NSFW_MODAL_TAG = 'shreddit-async-loader';
const NSFW_MODAL_ATTR = 'bundlename';
const BLURRED_TAG = 'shreddit-blurred-container';
const PROMPT_SELECTOR = 'xpromo-nsfw-blocking-container';
const THUMBNAIL_BLUR_SELECTOR = '.thumbnail-blur';
const BLURRED_CLICKED_CLASS = 'rbe-unblurred';
const COMMUNITY_HIGHLIGHT_CARD_SELECTOR = 'community-highlight-card';
function removeNSFWBlock() {
const nsfwModal = document.querySelector(`${NSFW_MODAL_TAG}[${NSFW_MODAL_ATTR}*="nsfw_blocking_modal"]`);
if (nsfwModal) nsfwModal.remove();
const prompt = document.querySelector(`${PROMPT_SELECTOR} > *`)?.shadowRoot?.querySelector('.prompt');
if (prompt) prompt.remove();
const blurredContainers = document.querySelectorAll(BLURRED_TAG);
blurredContainers.forEach(container => {
if (container.shadowRoot?.innerHTML && !container.classList.contains(BLURRED_CLICKED_CLASS)) {
container.firstElementChild.click();
container.classList.add(BLURRED_CLICKED_CLASS);
}
});
const thumbnailBlurElements = document.querySelectorAll(THUMBNAIL_BLUR_SELECTOR);
thumbnailBlurElements.forEach(el => {
el.classList.remove('thumbnail-blur');
});
// Remove blur from community highlight cards
const cards = document.querySelectorAll(COMMUNITY_HIGHLIGHT_CARD_SELECTOR);
cards.forEach(card => {
card.removeAttribute('blurred');
});
}
const observer = new MutationObserver(() => {
removeNSFWBlock();
});
observer.observe(document, {
childList: true,
subtree: true,
attributes: false,
});
removeNSFWBlock();
setTimeout(removeNSFWBlock, 100);
const shredditCheckInterval = setInterval(() => {
if (!document.querySelector('shreddit-app')) {
observer.disconnect();
clearInterval(shredditCheckInterval);
}
}, 5000);
})();