删除b站垃圾板块-改

删除b站首页广告、特定垃圾板块。

  1. // ==UserScript==
  2. // @name 删除b站垃圾板块-改
  3. // @namespace https://github.com/lossj
  4. // @include https://www.bilibili.com
  5. // @version 0.5.2
  6. // @description 删除b站首页广告、特定垃圾板块。
  7. // @author Loss J.
  8. // @match https://www.bilibili.com
  9. // @match https://www.bilibili.com/?*
  10. // @grant none
  11. // ==/UserScript==
  12.  
  13.  
  14. (function(){
  15. 'use strict';
  16. function hideAds(){
  17. // 删除顶部分区目录下的banner
  18. document.getElementById("reportFirst1").style.display = "none";
  19. // 删除banner下的推广
  20. document.getElementById("reportFirst2").style.display = "none";
  21. // 删除英雄联盟推广
  22. var report3 = document.getElementById("reportFirst3");
  23. if (report3 != null){
  24. report3.style.display = "none";
  25. }
  26. }
  27. var nameList = ["直播", "动画", "番剧", "国创", "漫画", "音乐", "舞蹈", "游戏",
  28. "知识", "课堂", "数码", "生活", "鬼畜", "时尚", "资讯", "娱乐",
  29. "专栏", "电影", "电视剧", "影视", "纪录片", "特别推荐"];
  30. var idList = ["bili_live", "bili_douga", "bili_anime", "bili_guochuang", "bili_manga", "bili_music", "bili_dance", "bili_game",
  31. "bili_technology", "bili_cheese", "bili_digital", "bili_life", "bili_kichiku", "bili_fashion", "bili_information", "bili_ent",
  32. "bili_read", "bili_movie", "bili_teleplay", "bili_cinephile", "bili_documentary", "bili_report_spe_rec"];
  33. // 设置要屏蔽的up主的名字
  34. var sbUploaderNames = new Set(["papi酱", "凉风Kaze", "拜托了小翔哥", "贤宝宝Baby", "记录生活的蛋黄派",
  35. "硬核的半佛仙人", "啊吗粽", "盖里老哥", "敬汉卿", "哔哩哔哩英雄联盟赛事",
  36. "英雄联盟", "说唱新世代", "不2不叫周淑怡", "LexBurner", "上海滩许Van强",
  37. "仙道居士", "-星辰菌-", "特效小哥studio", "长又心", "在下哲别", "女胖胖",
  38. "老番茄", "机智的党妹", "逗比的雀巢", "Super也好君", "不死な千咲", "敖厂长",
  39. "Baka恶魔", "拯救世界的狗子", "花少北丶", "linkmusicnow", "浅澄月", "十代冥王",
  40. "小潮院长", "狗辉大师", "陈家淇_B11", "某幻君", "Python_子木", "木鱼水心",
  41. "岚鸽鸽不鸽鸽", "红豆稀饭中", "沈逸老师", "东尼ookii", "小潮院长", "Ksr桑",
  42. "vansamaofficial", "嬉皮怪客", "卧龙寺", "Easrfa", "蜻蜓隊長い", "广西吴恩师",
  43. "最绅士Yuppie", "华农兄弟", "赤焰男孩", "宝剑嫂", "vivi可爱多", "面筋哥-程书林",
  44. "雨哥到处跑"]);
  45. var name2id = {}
  46. for (var i = 0; i < nameList.length; i++){
  47. var value = [idList[i], i]
  48. name2id[nameList[i]] = value;
  49. }
  50. // 设置你要屏蔽的板块
  51. var garbageBlocks = ["动画", "国创", "漫画", "游戏", "课堂", "鬼畜", "娱乐", "专栏", "影视", "特别推荐"]
  52. var idSet = new Set([])
  53. for (var k = 0; k < garbageBlocks.length; k++){
  54. idSet.add(name2id[garbageBlocks[k]]);
  55. }
  56. function hideBlock(){
  57. for (var i = 0; i < garbageBlocks.length; i++){
  58. if (garbageBlocks[i] != "特别推荐"){
  59. document.getElementById(name2id[garbageBlocks[i]][0]).style.display = "none";
  60. // document.getElementById(name2id[garbageBlocks[i]][0]).remove();
  61. }else{
  62. try{
  63. document.getElementById(name2id[garbageBlocks[i]][0]).style.display = "none";
  64. }catch{}
  65. }
  66. }
  67. }
  68. function funcSleep(func, time, limitTime=5){
  69. try{
  70. setTimeout(func, time);
  71. }catch{
  72. if (limitTime > 0){
  73. funcSleep(func, time, limitTime=limitTime-1);
  74. }else{
  75. console.log("Can't find Element!")
  76. }
  77. }
  78. }
  79. // 删除右侧固定分区导航条
  80. function hideElevator(){
  81. var item = document.querySelectorAll("#elevator > .list-box > div .item");
  82. for(var i = 0; i < garbageBlocks.length; i++){
  83. if(garbageBlocks[i] != "特别推荐"){
  84. var idx = name2id[garbageBlocks[i]][1];
  85. item[idx].style.display = "none";
  86. }
  87. }
  88. }
  89. // 删除直播板块右侧banner广告
  90. function hideLiveAds(){
  91. var tabContents = document.querySelectorAll(".live-tabs > div");
  92. tabContents[3].style = "display: none;";
  93. tabContents[2].style = "";
  94. var tabs = document.querySelectorAll(".live-tabs .tab-switch-item");
  95. tabs[2].remove();
  96. tabs[1].className += " on";
  97. }
  98.  
  99.  
  100.  
  101. // 删除直播板块指定标签外的直播间
  102. function hideLiveRoom(){
  103.  
  104.  
  105. var reporter = document.getElementById('bili_report_live');
  106. reporter.remove();
  107.  
  108. }
  109. function clickBtn(){
  110. var btn = document.querySelector(".live-list .btn-change");
  111. function sleepHideLiveRoom(){
  112. funcSleep(hideLiveRoom, 600);
  113. }
  114. btn.addEventListener('click', sleepHideLiveRoom, false);
  115. }
  116. // 删除sb up主的视频
  117. function hideSbUploader(){
  118. var wraps = document.querySelectorAll(".rank-list .rank-wrap");
  119. for (var i = 0; i < wraps.length; i++){
  120. try{
  121. var name = wraps[i].querySelector(".popover-video-card > .content > .info > .subtitle > .name").textContent;
  122. if(sbUploaderNames.has(name)){
  123. if(wraps[i].style.display != "none"){
  124. wraps[i].style.display = "none";
  125. }
  126. }
  127. }catch{}
  128. }
  129. var videoCards = document.querySelectorAll(".video-card-common");
  130. for (var j = 0; j < videoCards.length; j++){
  131. if (idSet.has(videoCards[j].parentNode.parentNode.parentNode.id)){
  132. }else{
  133. var uploader = videoCards[j].querySelector("a.up");
  134. if(uploader){
  135. var uploaderName = uploader.querySelector("i").nextSibling.textContent;
  136. uploaderName = uploaderName.trim();
  137. if(sbUploaderNames.has(uploaderName)){
  138. if(videoCards[j].style.display != "none"){
  139. videoCards[j].style.display = "none";
  140. }
  141. }
  142. }
  143. }
  144. }
  145. }
  146. var scrollAllow = true;
  147. function scrollEvent(e){
  148. function scrollAwake(){
  149. scrollAllow = true;
  150. }
  151. e = e || window.event;
  152. if (scrollAllow && e.wheelDelta) {
  153. if (e.wheelDelta < -30) {
  154. scrollAllow = false;
  155. funcSleep(hideSbUploader, 1500);
  156. setTimeout(scrollAwake, 2000);
  157. }
  158. } else if (scrollAllow && e.detail) {
  159. if (e.detail < -30) {
  160. scrollAllow = false;
  161. funcSleep(hideSbUploader, 1500);
  162. setTimeout(scrollAwake, 2000);
  163. }
  164. }
  165. }
  166. function main(){
  167. hideAds();
  168. var time = 1500;
  169. funcSleep(hideElevator, time);
  170. funcSleep(hideBlock, 1000);
  171. funcSleep(hideLiveAds, 900);
  172. funcSleep(hideLiveRoom, 1000);
  173. funcSleep(hideSbUploader, 5500);
  174. window.onmousewheel = document.onmousewheel = scrollEvent;
  175. console.log("okokok");
  176. funcSleep(clickBtn, 1000);
  177. }
  178. main()
  179. })();

QingJ © 2025

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