FUCK CSDN

CSDN 增强工具

As of 2023-05-18. See the latest version.

  1. // ==UserScript==
  2. // @name FUCK CSDN
  3. // @version 1.0.0
  4. // @description CSDN 增强工具
  5. // @author unknown
  6. // @namespace https://github.com/ultrazg/FUCK-CSDN
  7. // @match *://*.csdn.net/*
  8. // @match *://blog.csdn.net/*
  9. // @icon https://ossweb-img.qq.com/images/lol/img/spell/SummonerBoost.png
  10. // @require https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/
  11. // @require https://lf26-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery-cookie/1.4.1/jquery.cookie.min.js
  12. // @license WTFPL
  13. // @grant unsafeWindow
  14. // ==/UserScript==
  15.  
  16. (function () {
  17. 'use strict';
  18.  
  19. const VERSION = '1.0.0';
  20. const classNameArray = ['box-shadow', 'programmer1Box', 'programmer2Box', 'programmer3Box', 'programmer4Box', 'template-box', 'template-box', 'toolbar-advert','recommend-box','blog-footer-bottom'];
  21. const idArray = ['recommendAdBox', 'asideNewNps', 'recommendNps','asideSearchArticle','asideHotArticle','asideArchive'];
  22. const toolBarBoxDom = `
  23. <li style="color: forestgreen;user-select: none">正在优化 CSDN 的浏览体验。</li><li><a style="color: cornflowerblue" href="https://github.com/ultrazg/FUCK-CSDN/issues" target="_blank">[反馈]</a></li>
  24. `;
  25.  
  26. function loopRemoveByClassName(classNameArray) {
  27. for (const classNameArrayElement of classNameArray) {
  28. $('.' + classNameArrayElement).remove();
  29. }
  30. }
  31.  
  32. function loopRemoveById(idArray) {
  33. for (const idArrayElement of idArray) {
  34. $('#' + idArrayElement).remove();
  35. }
  36. }
  37.  
  38. function printInfo() {
  39. console.log(`%cFUCK YOU CSDN ${VERSION}`, "color:darkorange;background:#57606f;padding:5px;border-radius:8px;font-family:SimSun;font-size:8px");
  40. }
  41.  
  42. loopRemoveByClassName(classNameArray);
  43. loopRemoveById(idArray);
  44.  
  45. $("iframe").remove();
  46.  
  47. setInterval(() => {
  48. $('.passport-login-container').remove();
  49. }, 500);
  50.  
  51. $.cookie('unlogin_scroll_step', 0, {
  52. domain: '.csdn.net',
  53. path: '/'
  54. });
  55.  
  56. $("code").css("user-select", "auto");
  57. $("#content_views").css("user-select", "auto");
  58. $("pre").css("user-select", "auto");
  59.  
  60. $(".hljs-button").removeClass("signin");
  61. $(".hljs-button").addClass("{2}");
  62. $(".hljs-button").attr("data-title", "已解除复制限制-点击复制");
  63. $(".hljs-button").attr("onclick", "hljs.copyCode(event)");
  64. $("code").attr("onclick", "mdcp.copyCode(event)");
  65.  
  66. $('.data-info,.aside-box-footer,.profile-intro-name-boxOpration,.item-rank').wrapAll('<div id="data-info-box" style="display: none"></div>');
  67. $('#asideProfile').append('<div id="data-info-mask" style="height: 40px;text-align: center;line-height: 47px;cursor: pointer;color:tomato" onclick="showInfo()">点击此处查看作者信息</div>');
  68.  
  69. $('#data-info-mask').click(function () {
  70. $('#data-info-box').css('display', 'block');
  71. $('#data-info-mask').css('display', 'none');
  72. });
  73.  
  74. if ($('.hide-article-box').length > 0) {
  75. $('.hide-article-box').remove();
  76. $('article #article_content').css('height', '');
  77. }
  78.  
  79. $('.hide-preCode-bt').click();
  80.  
  81. $('.toolbar-container-right').remove();
  82. $('.toolbar-container-middle').remove();
  83. $('.toolbar-container-left .toolbar-menus').html(toolBarBoxDom);
  84. $('.toolbar-menus li').css('margin-right', '10px');
  85. $('.toolbar-menus li').hover(function () {
  86. $(this).css('background', '#fff');
  87. });
  88. $('#toolBarBox .left-toolbox').remove();
  89.  
  90. document
  91. .querySelectorAll("article")
  92. ?.forEach((item) => (item.innerHTML = item.innerHTML));
  93. document.addEventListener(
  94. "copy",
  95. (e) =>
  96. e.preventDefault() ||
  97. e.clipboardData.setData("text/plain", window.getSelection().toString())
  98. );
  99.  
  100. printInfo();
  101.  
  102. })();