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 提交的版本。查看 最新版本

  1. // ==UserScript==
  2. // @name Fuck-Yudao
  3. // @namespace none
  4. // @version 0.1
  5. // @license MIT
  6. // @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.
  7. // @author The fuck you care
  8. // @match https://www.iocoder.cn/*
  9. // @match https://doc.iocoder.cn/*
  10. // @match https://cloud.iocoder.cn/*
  11. // @grant unsafeWindow
  12. // @grant GM_addStyle
  13. // @run-at document-end
  14. // ==/UserScript==
  15.  
  16. (function() {
  17. 'use strict';
  18.  
  19. GM_addStyle('.alert-modal, .alert-container {height: 0 !important; opacity: 0 !important; display: none !important; z-Index: -9999 !important};');
  20. GM_addStyle('body { overflow: auto !important; height: 100vh; }');
  21. GM_addStyle('#app { overflow: auto !important; height: 100%; }');
  22. unsafeWindow.jqueryAlert = function() {};
  23. unsafeWindow.jQuery = function() {};
  24.  
  25. let yudaosPoorlyWrittenDoc = null, oldLocation = document.location.pathname, oldIsBlock = null;
  26. 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'];
  27.  
  28. const isBlocked = () => {
  29. const ret = blockPathList.some((e) => document.location.pathname.includes(e));
  30. console.log(document.location);
  31. // oldIsBlock = ret;
  32. return ret;
  33. }
  34.  
  35. let wrapperEl = document.querySelector('.content-wrapper');
  36. console.log(wrapperEl);
  37. if (wrapperEl) {
  38. yudaosPoorlyWrittenDoc = wrapperEl?.innerHTML;
  39. console.log('init', yudaosPoorlyWrittenDoc.substring(0, 2000));
  40.  
  41. const urlObserver = new MutationObserver(() => {
  42. const _o = oldIsBlock;
  43. if (oldLocation !== document.location.pathname) {
  44. console.log('url changed');
  45. document.location.reload();
  46. }
  47. })
  48.  
  49. urlObserver.observe(document.body, { childList: true, subtree: true })
  50.  
  51. const contentObserver = new MutationObserver(() => {
  52. if (wrapperEl.innerText.includes('仅 VIP 可见') && !yudaosPoorlyWrittenDoc.includes('仅 VIP 可见')) {
  53. document.querySelector('.content-wrapper').innerHTML = yudaosPoorlyWrittenDoc;
  54. console.log('I will give people their freedom back!');
  55. }
  56. })
  57.  
  58. if (isBlocked()) {
  59. contentObserver.observe(wrapperEl, { childList: true, characterData: true, subtree: true });
  60. } else {
  61. contentObserver.disconnect();
  62. }
  63. }
  64. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址