Greasy Fork is available in English.

De-Junk my Chub Trunk

Bypassess login requirement, removes paid feature buttons, removes blur from NSFW images, fixes CSS, and more...

// ==UserScript==
// @name        De-Junk my Chub Trunk
// @namespace   https://www.chub.ai
// @match       https://*.chub.ai/*
// @version     1.0
// @author      LoafyLemon
// @description Bypassess login requirement, removes paid feature buttons, removes blur from NSFW images, fixes CSS, and more...
// @grant       GM_addStyle
// @license MIT
// ==/UserScript==

(function() {
    'use strict';

    // Set the URL for redirection
    const subpageURL = 'https://www.chub.ai/characters?page=1&sort=last_activity_at&first=100';

    // Redirect to the subpage
    if (window.location.pathname === '/') {
        window.location.href = subpageURL;
    }

    // Define custom CSS
    const customCSS = `
        .nsfw-pixels-sm, .nsfw-pixels-lg, .nsfw-pixels-xs {
            -webkit-filter: none !important;
            filter: none !important;
            image-rendering: auto !important;
            padding: 0px !important;
            max-height: 600px;
        }
        .mb-4 {
            display: none !important;
        }
    `;

    // Add custom CSS styles to the webpage
    GM_addStyle(customCSS);

    // Function to hide elements with the class 'ant-btn' containing specific text
    function hideElements() {
        // Find all elements with class 'ant-btn'
        const elementsToHide = document.querySelectorAll('.ant-btn');

        // Loop through each element
        elementsToHide.forEach(element => {
            // Check if the element's text content contains 'text'
            if (element.textContent.includes('🔒')) {
                // Hide the element
                element.style.display = 'none';
            }
        });
    }

    // Observe changes to the DOM
    const observer = new MutationObserver(mutations => {
        mutations.forEach(mutation => {
            // Check if nodes were added
            if (mutation.addedNodes.length > 0) {
                // Call the function to hide elements
                hideElements();
            }
        });
    });

    // Start observing the entire document for changes
    observer.observe(document.documentElement, {
        childList: true,
        subtree: true
    });

    // Initially hide elements on page load
    hideElements();
})();