Fuck-Yudao

Block and disable a motherfucker's ignorance, bitchy and childish paywall for a so-called "Free & Open Source Software". If YunaiV is reading this, fuck you. China's OSS environment sucks because of losers like you. BTW your documentation sucks even more than your amateur level front-end skill, if you can even call it front-end.

当前为 2024-05-12 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         Fuck-Yudao
// @namespace    none
// @version      0.1
// @license      MIT
// @description  Block and disable a motherfucker's ignorance, bitchy and childish paywall for a so-called "Free & Open Source Software". If YunaiV is reading this, fuck you. China's OSS environment sucks because of losers like you. BTW your documentation sucks even more than your amateur level front-end skill, if you can even call it front-end.
// @author       The fuck you care
// @match        https://www.iocoder.cn/*
// @match        https://doc.iocoder.cn/*
// @match        https://cloud.iocoder.cn/*
// @grant        unsafeWindow
// @grant        GM_addStyle
// @run-at document-end
// ==/UserScript==

(function() {
    'use strict';

    GM_addStyle('.alert-modal, .alert-container {height: 0 !important; opacity: 0 !important; display: none !important; z-Index: -9999 !important};');
    GM_addStyle('body { overflow: auto !important; height: 100vh; }');
    GM_addStyle('#app { overflow: auto !important; height: 100%; }');
    unsafeWindow.jqueryAlert = function() {};
    unsafeWindow.jQuery = function() {};

    let yudaosPoorlyWrittenDoc = null, oldLocation = document.location.pathname, oldIsBlock = null;
    const blockPathList = ['bpm', 'user-center', 'social-user', 'oauth2', 'saas-tenant', 'sms', 'mail', 'notify', 'mybatis-pro', 'dynamic-datasource', 'report', 'Spring-Boot', 'Spring-Cloud', 'api-doc', 'module-new', 'new-feature', 'dev-hot-swap', 'file', 'message-queue', 'job', 'idempotent', 'distributed-lock', 'rate-limiter', 'project-rename', 'delete-code', 'resource-permission', 'data-permission', 'deployment-linux', 'deployment-docker', 'mp', 'mall', 'pay', 'crm', 'member', 'erp', 'websocket', 'vo', 'system-log'];

    const isBlocked = () => {
        const ret = blockPathList.some((e) => document.location.pathname.includes(e));
        console.log(document.location);
        // oldIsBlock = ret;
        return ret;
    }

    let wrapperEl = document.querySelector('.content-wrapper');
    console.log(wrapperEl);
    if (wrapperEl) {
        yudaosPoorlyWrittenDoc = wrapperEl?.innerHTML;
        console.log('init', yudaosPoorlyWrittenDoc.substring(0, 2000));

        const urlObserver = new MutationObserver(() => {
            const _o = oldIsBlock;
            if (oldLocation !== document.location.pathname) {
                console.log('url changed');
                document.location.reload();
            }
        })

        urlObserver.observe(document.body, { childList: true, subtree: true })

        const contentObserver = new MutationObserver(() => {
            if (wrapperEl.innerText.includes('仅 VIP 可见') && !yudaosPoorlyWrittenDoc.includes('仅 VIP 可见')) {
                document.querySelector('.content-wrapper').innerHTML = yudaosPoorlyWrittenDoc;
                console.log('I will give people their freedom back!');
            }
        })

        if (isBlocked()) {
            contentObserver.observe(wrapperEl, { childList: true, characterData: true, subtree: true });
        } else {
            contentObserver.disconnect();
        }
    }
})();