From 1676d012d142ab919df96d6cad0d4793f1638b0b Mon Sep 17 00:00:00 2001 From: the1812 Date: Mon, 10 May 2021 17:44:45 +0800 Subject: [PATCH] Improve home hidden, remove 'removeGameMatchModule' option --- min/gui-settings.min.html | 2 +- min/home-hidden.min.css | 2 +- min/home-hidden.min.js | 2 +- min/remove-promotions.min.js | 2 +- src/client/resource-manifest.js | 1 - src/client/settings.js | 1 - src/style/home-hidden/home-hidden.scss | 42 ++----- src/style/home-hidden/home-hidden.ts | 112 +++--------------- src/utils/gui-settings/gui-settings.html | 1 - .../remove-promotions/remove-promotions.js | 6 +- 10 files changed, 29 insertions(+), 142 deletions(-) diff --git a/min/gui-settings.min.html b/min/gui-settings.min.html index 9a2f84376..4c9e50440 100644 --- a/min/gui-settings.min.html +++ b/min/gui-settings.min.html @@ -1 +1 @@ -
附加功能
空空如也哦 = ̄ω ̄=
设置
主页更新日志
导出设置
导入设置
  • 视频
  • 样式
  • 动态
  • 直播
  • 工具
  • 触摸
  • 其他
\ No newline at end of file +
附加功能
空空如也哦 = ̄ω ̄=
设置
主页更新日志
导出设置
导入设置
  • 视频
  • 样式
  • 动态
  • 直播
  • 工具
  • 触摸
  • 其他
\ No newline at end of file diff --git a/min/home-hidden.min.css b/min/home-hidden.min.css index d893cf32e..c6a6c2a87 100644 --- a/min/home-hidden.min.css +++ b/min/home-hidden.min.css @@ -1 +1 @@ -body.home-hidden-animal .storey-box .proxy-box #bili_animal,body.home-hidden-anime .storey-box .proxy-box #bili_anime,body.home-hidden-car .storey-box .proxy-box #bili_car,body.home-hidden-cheese .storey-box .proxy-box #bili_cheese,body.home-hidden-cinephile .storey-box .proxy-box #bili_cinephile,body.home-hidden-dance .storey-box .proxy-box #bili_dance,body.home-hidden-digital .storey-box .proxy-box #bili_digital,body.home-hidden-documentary .storey-box .proxy-box #bili_documentary,body.home-hidden-douga .storey-box .proxy-box #bili_douga,body.home-hidden-ent .storey-box .proxy-box #bili_ent,body.home-hidden-fashion .storey-box .proxy-box #bili_fashion,body.home-hidden-food .storey-box .proxy-box #bili_food,body.home-hidden-game .storey-box .proxy-box #bili_game,body.home-hidden-guochuang .storey-box .proxy-box #bili_guochuang,body.home-hidden-information .storey-box .proxy-box #bili_information,body.home-hidden-kichiku .storey-box .proxy-box #bili_kichiku,body.home-hidden-life .storey-box .proxy-box #bili_life,body.home-hidden-live .storey-box .proxy-box #bili_live,body.home-hidden-manga .storey-box .proxy-box #bili_manga,body.home-hidden-movie .storey-box .proxy-box #bili_movie,body.home-hidden-music .storey-box .proxy-box #bili_music,body.home-hidden-read .storey-box .proxy-box #bili_read,body.home-hidden-technology .storey-box .proxy-box #bili_technology,body.home-hidden-teleplay .storey-box .proxy-box #bili_teleplay{display:none!important}.gui-settings-flat-button .home-hidden-settings.popup{align-items:stretch}.home-hidden-settings-item{padding:4px 12px;display:flex;align-items:center;border-radius:8px}.home-hidden-settings-item .mdi-eye-off{display:none}.home-hidden-settings-item:hover{background:#8882}.home-hidden-settings-item.home-hidden{opacity:.5}.home-hidden-settings-item.home-hidden .mdi-eye{display:none}.home-hidden-settings-item.home-hidden .mdi-eye-off{display:inline-flex} \ No newline at end of file +.gui-settings-flat-button .home-hidden-settings.popup{align-items:flex-start;flex-direction:row;flex-wrap:wrap;max-width:180px;left:-24px;transform:none}.home-hidden-settings-item{padding:4px 12px;flex-grow:1;display:flex;align-items:center;border-radius:8px}.home-hidden-settings-item .mdi-eye-off{display:none}.home-hidden-settings-item:hover{background:#8882}.home-hidden-settings-item.home-hidden{opacity:.5}.home-hidden-settings-item.home-hidden .mdi-eye{display:none}.home-hidden-settings-item.home-hidden .mdi-eye-off{display:inline-flex} \ No newline at end of file diff --git a/min/home-hidden.min.js b/min/home-hidden.min.js index dbc1d2343..58ccb6da0 100644 --- a/min/home-hidden.min.js +++ b/min/home-hidden.min.js @@ -1 +1 @@ -(()=>(e,n)=>{const i=()=>!e.simplifyHome&&document.URL.includes("https://www.bilibili.com/");const a=[{name:"categories",displayName:"分区栏",style:`\n .bili-header-m>.bili-wrapper {\n visibility: hidden !important;\n height: 18px !important;\n }\n .primary-menu-itnl {\n visibility: hidden !important;\n height: 24px !important;\n padding: 0 !important;\n }\n`},{name:"trends",displayName:"活动/热门视频",style:`\n .first-screen #reportFirst1 { display: none !important; }\n .first-screen .space-between {\n margin-bottom: 0 !important;\n }\n .rcmd-box-wrap { display: none !important; }\n`},{name:"online",displayName:"在线列表",style:`\n .first-screen #reportFirst2 { display: none !important; }\n`},{name:"ext-box",displayName:"电竞赛事",style:`\n .first-screen #reportFirst3 { display: none !important; } `},{name:"special",displayName:"特别推荐",style:`\n #bili_report_spe_rec { display: none !important; }\n`},{name:"contact",displayName:"联系方式",style:`\n .international-footer { display: none !important; }\n`},{name:"elevator",displayName:"右侧分区导航",style:`\n .storey-box .elevator { display: none !important; }\n`},{name:"live",displayName:"直播"},{name:"douga",displayName:"动画"},{name:"anime",displayName:"番剧"},{name:"guochuang",displayName:"国创"},{name:"manga",displayName:"漫画"},{name:"music",displayName:"音乐"},{name:"dance",displayName:"舞蹈"},{name:"game",displayName:"游戏"},{name:"technology",displayName:"知识"},{name:"cheese",displayName:"课堂"},{name:"digital",displayName:"数码"},{name:"car",displayName:"汽车"},{name:"life",displayName:"生活"},{name:"food",displayName:"美食"},{name:"animal",displayName:"动物圈"},{name:"kichiku",displayName:"鬼畜"},{name:"fashion",displayName:"时尚"},{name:"information",displayName:"资讯"},{name:"ent",displayName:"娱乐"},{name:"read",displayName:"专栏"},{name:"movie",displayName:"电影"},{name:"teleplay",displayName:"电视剧"},{name:"cinephile",displayName:"影视"},{name:"documentary",displayName:"纪录片"}];const t=i=>{if(!e.homeHiddenItems.includes(i.name)){if(i.style){var a;(a=dq(`#home-hidden-style-${i.name}`))===null||a===void 0?void 0:a.remove()}else{document.body.classList.remove(`home-hidden-${i.name}`)}}else{if(i.style){n.applyImportantStyleFromText(i.style,`home-hidden-style-${i.name}`)}else{document.body.classList.add(`home-hidden-${i.name}`)}}};if(i()){a.forEach(t);n.applyImportantStyle("homeHiddenStyle")}return{widget:{condition:i,content:`\n
\n\n首页过滤\n\n
\n`,success:async()=>{const n=dq("#home-hidden");new Vue({el:dq(n,".popup"),data(){return{items:a,hiddenItems:[...e.homeHiddenItems]}},watch:{hiddenItems(n){e.homeHiddenItems=[...n]}},mounted(){const e=this.$el;n.addEventListener("click",(n=>{if(n.target===e||e.contains(n.target)){return}e.classList.toggle("opened")}))},methods:{async toggle(e){const n=this.hiddenItems;const i=n.indexOf(e.name);if(i!==-1){n.splice(i,1)}else{n.push(e.name)}await this.$nextTick();t(e)}}})}}}})(); \ No newline at end of file +(()=>(e,n)=>{const i=()=>!e.simplifyHome&&document.URL.includes("https://www.bilibili.com/");const t=dqa(".proxy-box > div").map((e=>{var n,i,t;return{name:e.id.replace(/^bili_/,""),displayName:(n=(i=e.querySelector("header .name"))===null||i===void 0?void 0:(t=i.textContent)===null||t===void 0?void 0:t.trim())!==null&&n!==void 0?n:"未知分区"}}));const s=[{name:"categories",displayName:"分区栏",style:`\n .bili-header-m>.bili-wrapper {\n visibility: hidden !important;\n height: 18px !important;\n }\n .primary-menu-itnl {\n visibility: hidden !important;\n height: 24px !important;\n padding: 0 !important;\n }\n`},{name:"trends",displayName:"活动/热门视频",style:`\n .first-screen #reportFirst1 { display: none !important; }\n .first-screen .space-between {\n margin-bottom: 0 !important;\n }\n .rcmd-box-wrap { display: none !important; }\n`},{name:"online",displayName:"在线列表",style:`\n .first-screen #reportFirst2 { display: none !important; }\n`},{name:"ext-box",displayName:"电竞赛事",style:`\n .first-screen #reportFirst3 { display: none !important; } `},{name:"special",displayName:"特别推荐",style:`\n #bili_report_spe_rec { display: none !important; }\n`},{name:"contact",displayName:"联系方式",style:`\n .international-footer { display: none !important; }\n`},{name:"elevator",displayName:"右侧分区导航",style:`\n .storey-box .elevator { display: none !important; }\n`},...t];const d=i=>{if(!e.homeHiddenItems.includes(i.name)){if(i.style){var t;(t=dq(`#home-hidden-style-${i.name}`))===null||t===void 0?void 0:t.remove()}else{document.body.classList.remove(`home-hidden-${i.name}`)}}else{if(i.style){n.applyImportantStyleFromText(i.style,`home-hidden-style-${i.name}`)}else{document.body.classList.add(`home-hidden-${i.name}`)}}};if(i()){s.forEach(d);const e=t.map((({name:e})=>`\nbody.home-hidden-${e} .storey-box .proxy-box #bili_${e} {\n display: none !important;\n}\n`.trim())).join("\n");const i=n.import("homeHiddenStyle");n.applyImportantStyleFromText(e+i,"home-hidden-style")}return{widget:{condition:i,content:`\n
\n\n首页过滤\n\n
\n`,success:async()=>{const n=dq("#home-hidden");new Vue({el:dq(n,".popup"),data(){return{items:s,hiddenItems:[...e.homeHiddenItems]}},watch:{hiddenItems(n){e.homeHiddenItems=[...n]}},mounted(){const e=this.$el;n.addEventListener("click",(n=>{if(n.target===e||e.contains(n.target)){return}e.classList.toggle("opened")}))},methods:{async toggle(e){const n=this.hiddenItems;const i=n.indexOf(e.name);if(i!==-1){n.splice(i,1)}else{n.push(e.name)}await this.$nextTick();d(e)}}})}}}})(); \ No newline at end of file diff --git a/min/remove-promotions.min.js b/min/remove-promotions.min.js index d4547ba87..eb8be4c9f 100644 --- a/min/remove-promotions.min.js +++ b/min/remove-promotions.min.js @@ -1 +1 @@ -(()=>(e,t)=>{if(document.URL.replace(window.location.search,"")==="https://www.bilibili.com/"){addSettingsListener("removeGameMatchModule",(e=>{document.body.classList.toggle("remove-game-match-module",e)}),true);SpinQuery.any((()=>dqa(".gg-pic")),(t=>{t.forEach((t=>{const n=t.parentElement;n.style.display="none";const l=[...n.parentElement.childNodes].indexOf(n)+1;const i=n.parentElement.parentElement.querySelector(`.pic li:nth-child(${l})`);if(i){i.style.display="flex";const t=i.querySelector("a:not(.more-text)");t.insertAdjacentHTML("afterend",`\n
${e.showBlockedAdsTip?"🚫已屏蔽广告":""}
\n`);t.style.visibility="hidden";i.querySelector("a.more-text").style.display="none";i.querySelector("img").style.display="none"}}))}));SpinQuery.select(".focus-carousel.home-slide").then((t=>{if(!t){return}[...t.querySelectorAll(".gg-icon,.bypb-icon")].map((e=>e.parentElement.parentElement)).forEach((t=>{t.style.display="none";t.insertAdjacentHTML("afterend",`\n
${e.showBlockedAdsTip?"🚫已屏蔽广告":""}
\n`)}))}))}addSettingsListener("preserveEventBanner",(e=>{document.body.classList.toggle("preserve-event-banner",e)}),true)})(); \ No newline at end of file +(()=>(e,n)=>{if(document.URL.replace(window.location.search,"")==="https://www.bilibili.com/"){SpinQuery.any((()=>dqa(".gg-pic")),(n=>{n.forEach((n=>{const t=n.parentElement;t.style.display="none";const l=[...t.parentElement.childNodes].indexOf(t)+1;const i=t.parentElement.parentElement.querySelector(`.pic li:nth-child(${l})`);if(i){i.style.display="flex";const n=i.querySelector("a:not(.more-text)");n.insertAdjacentHTML("afterend",`\n
${e.showBlockedAdsTip?"🚫已屏蔽广告":""}
\n`);n.style.visibility="hidden";i.querySelector("a.more-text").style.display="none";i.querySelector("img").style.display="none"}}))}));SpinQuery.select(".focus-carousel.home-slide").then((n=>{if(!n){return}[...n.querySelectorAll(".gg-icon,.bypb-icon")].map((e=>e.parentElement.parentElement)).forEach((n=>{n.style.display="none";n.insertAdjacentHTML("afterend",`\n
${e.showBlockedAdsTip?"🚫已屏蔽广告":""}
\n`)}))}))}addSettingsListener("preserveEventBanner",(e=>{document.body.classList.toggle("preserve-event-banner",e)}),true)})(); \ No newline at end of file diff --git a/src/client/resource-manifest.js b/src/client/resource-manifest.js index 126d30708..b99f372ee 100644 --- a/src/client/resource-manifest.js +++ b/src/client/resource-manifest.js @@ -156,7 +156,6 @@ Resource.manifest = { displayNames: { removeAds: '删除广告', showBlockedAdsTip: '显示占位文本', - removeGameMatchModule: '删除电竞赛事', preserveEventBanner: '保留活动横幅', }, }, diff --git a/src/client/settings.js b/src/client/settings.js index fc0886a0d..93c1632b3 100644 --- a/src/client/settings.js +++ b/src/client/settings.js @@ -197,7 +197,6 @@ export const settings = { keymapJumpSeconds: 85, urlParamsClean: true, collapseLiveSideBar: true, - removeGameMatchModule: false, noDarkOnMember: true, feedsTranslate: false, feedsTranslateProvider: 'Bing', diff --git a/src/style/home-hidden/home-hidden.scss b/src/style/home-hidden/home-hidden.scss index 8fbb1c7a7..2cb91b6cc 100644 --- a/src/style/home-hidden/home-hidden.scss +++ b/src/style/home-hidden/home-hidden.scss @@ -1,43 +1,15 @@ -$items: ( - live, - douga, - anime, - guochuang, - manga, - music, - dance, - game, - technology, - cheese, - digital, - car, - life, - food, - animal, - kichiku, - fashion, - information, - ent, - read, - movie, - teleplay, - cinephile, - documentary -); -@each $item in $items { - body.home-hidden-#{$item} { - .storey-box .proxy-box #bili_#{$item} { - display: none !important; - } - } -} - .home-hidden-settings { .gui-settings-flat-button &.popup { - align-items: stretch; + align-items: flex-start; + flex-direction: row; + flex-wrap: wrap; + max-width: 180px; + left: -24px; + transform: none; } &-item { padding: 4px 12px; + flex-grow: 1; display: flex; align-items: center; border-radius: 8px; diff --git a/src/style/home-hidden/home-hidden.ts b/src/style/home-hidden/home-hidden.ts index 913b523d9..3aadfb2de 100644 --- a/src/style/home-hidden/home-hidden.ts +++ b/src/style/home-hidden/home-hidden.ts @@ -6,6 +6,11 @@ type HomeHiddenOption = Readonly<{ const isHome = () => { return !settings.simplifyHome && document.URL.includes('https://www.bilibili.com/') } +const generatedOptions: HomeHiddenOption[] = dqa('.proxy-box > div') + .map(it => ({ + name: it.id.replace(/^bili_/, ''), + displayName: it.querySelector('header .name')?.textContent?.trim() ?? '未知分区', + })) const homeHiddenOptions: HomeHiddenOption[] = [ { name: 'categories', displayName: '分区栏', style: ` @@ -52,102 +57,7 @@ const homeHiddenOptions: HomeHiddenOption[] = [ .storey-box .elevator { display: none !important; } `, }, - { - name: "live", - displayName: "直播" - }, - { - name: "douga", - displayName: "动画" - }, - { - name: "anime", - displayName: "番剧" - }, - { - name: "guochuang", - displayName: "国创" - }, - { - name: "manga", - displayName: "漫画" - }, - { - name: "music", - displayName: "音乐" - }, - { - name: "dance", - displayName: "舞蹈" - }, - { - name: "game", - displayName: "游戏" - }, - { - name: "technology", - displayName: "知识" - }, - { - name: "cheese", - displayName: "课堂" - }, - { - name: "digital", - displayName: "数码" - }, - { - name: "car", - displayName: "汽车" - }, - { - name: "life", - displayName: "生活" - }, - { - name: "food", - displayName: "美食" - }, - { - name: 'animal', - displayName: '动物圈', - }, - { - name: "kichiku", - displayName: "鬼畜" - }, - { - name: "fashion", - displayName: "时尚" - }, - { - name: "information", - displayName: "资讯" - }, - { - name: "ent", - displayName: "娱乐" - }, - { - name: "read", - displayName: "专栏" - }, - { - name: "movie", - displayName: "电影" - }, - { - name: "teleplay", - displayName: "电视剧" - }, - { - name: "cinephile", - displayName: "影视" - }, - { - name: "documentary", - displayName: "纪录片" - } + ...generatedOptions, ] const syncState = (item: HomeHiddenOption) => { if (!settings.homeHiddenItems.includes(item.name)) { @@ -166,7 +76,15 @@ const syncState = (item: HomeHiddenOption) => { } if (isHome()) { homeHiddenOptions.forEach(syncState) - resources.applyImportantStyle('homeHiddenStyle') + const generatedStyles = generatedOptions.map(({ name }) => { + return ` +body.home-hidden-${name} .storey-box .proxy-box #bili_${name} { + display: none !important; +} +`.trim() + }).join('\n') + const fixedStyles: string = resources.import('homeHiddenStyle') + resources.applyImportantStyleFromText(generatedStyles + fixedStyles, 'home-hidden-style') } export default { diff --git a/src/utils/gui-settings/gui-settings.html b/src/utils/gui-settings/gui-settings.html index 5a5876513..ac639e7b2 100644 --- a/src/utils/gui-settings/gui-settings.html +++ b/src/utils/gui-settings/gui-settings.html @@ -153,7 +153,6 @@ 工具 - diff --git a/src/utils/remove-promotions/remove-promotions.js b/src/utils/remove-promotions/remove-promotions.js index c691338cb..6df5af90e 100644 --- a/src/utils/remove-promotions/remove-promotions.js +++ b/src/utils/remove-promotions/remove-promotions.js @@ -1,7 +1,7 @@ if (document.URL.replace(window.location.search, '') === 'https://www.bilibili.com/') { - addSettingsListener('removeGameMatchModule', value => { - document.body.classList.toggle('remove-game-match-module', value) - }, true) + // addSettingsListener('removeGameMatchModule', value => { + // document.body.classList.toggle('remove-game-match-module', value) + // }, true) SpinQuery.any( () => dqa('.gg-pic'), it => {