From 0245a1bfa477e29f6124141fdbc7fa0c8ab30e66 Mon Sep 17 00:00:00 2001 From: the1812 Date: Wed, 16 Oct 2019 23:41:25 +0800 Subject: [PATCH] Add pattern block --- @types/global/index.d.ts | 2 +- bilibili-evolved.offline.user.js | 6 +- bilibili-evolved.preview-offline.user.js | 6 +- bilibili-evolved.preview.user.js | 4 +- bilibili-evolved.user.js | 4 +- min/bundle.json | 4 +- min/bundle.zip | Bin 1390608 -> 1392346 bytes min/feeds-filter-card.vue.min.js | 2 +- min/filter-type-switch.vue.min.js | 2 +- .../feeds-filter/feeds-filter-card.vue | 116 +++++++++++++++--- 10 files changed, 116 insertions(+), 30 deletions(-) diff --git a/@types/global/index.d.ts b/@types/global/index.d.ts index d18755e7c..d6ccbdb1f 100644 --- a/@types/global/index.d.ts +++ b/@types/global/index.d.ts @@ -35,7 +35,7 @@ declare global { } type RunAtOptions = "document-start" | "document-end" | "document-idle" | "document-body" | "context-menu"; type DanmakuOption = '无' | 'XML' | 'ASS' - type Pattern = string | RegExp + type Pattern = string interface RpcOption { secretKey: string baseDir: string diff --git a/bilibili-evolved.offline.user.js b/bilibili-evolved.offline.user.js index fe9b498bf..1d1528326 100644 --- a/bilibili-evolved.offline.user.js +++ b/bilibili-evolved.offline.user.js @@ -1,6 +1,6 @@ // ==UserScript== // @name Bilibili Evolved (Offline) -// @version 457.21 +// @version 457.33 // @description Bilibili Evolved 的离线版, 所有功能都已内置于脚本中. // @author Grant Howard, Coulomb-G // @copyright 2019, Grant Howard (https://github.com/the1812) & Coulomb-G (https://github.com/Coulomb-G) @@ -1087,9 +1087,9 @@ offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/m offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/expand-description.min.js"] = (()=>{return(e,p)=>{p.applyStyle("expandDescriptionStyle")}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/favorites-redirect.min.js"] = (()=>{return(t,e)=>{function i(){const t=document.querySelectorAll("li[data-aid]>a");t.forEach(t=>{const e=t.getAttribute("href");if(e===null||!e.includes("medialist")){return}const i=t.parentElement.getAttribute("data-aid");t.setAttribute("href",`https://www.bilibili.com/video/av${i}`)})}(async()=>{const t=await SpinQuery.select("#app>.s-space");if(t!==null){Observer.childListSubtree("#app>.s-space",i)}})()}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/feeds-apis.min.js"] = (()=>{return(e,t)=>{const r={repost:{id:1,name:"转发"},textWithImages:{id:2,name:"图文"},text:{id:4,name:"文字"},video:{id:8,name:"视频"},miniVideo:{id:16,name:"小视频"},column:{id:64,name:"专栏"},audio:{id:256,name:"音频"},bangumi:{id:512,name:"番剧"},share:{id:2048,name:"分享"}};class n extends EventTarget{constructor(){super(...arguments);this.cards=[]}addEventListener(e,t,r){super.addEventListener(e,t,r)}removeEventListener(e,t,r){super.removeEventListener(e,t,r)}addCard(e){if(e instanceof HTMLElement&&e.classList.contains("card")){if(e.querySelector(".skeleton")!==null){const t=Observer.childList(e,()=>{if(e.querySelector(".skeleton")===null){t.forEach(e=>e.stop());this.addCard(e)}})}else{const t=this.parseCard(e);this.cards.push(t);const r=new CustomEvent("addCard",{detail:t});this.dispatchEvent(r)}}}removeCard(e){if(e instanceof HTMLElement&&e.classList.contains("card")){const t=this.parseCard(e).id;const r=this.cards.findIndex(e=>e.id===t);const n=this.cards[r];this.cards.splice(r,1);const s=new CustomEvent("removeCard",{detail:n});this.dispatchEvent(s)}}parseCard(e){const t=t=>{if(e.querySelector(t)===null){return""}return e.querySelector(t).innerText};const n=e=>{const r=parseInt(t(e));if(isNaN(r)){return 0}return r};const s=(()=>{if(e.querySelector(".repost")){return r.repost}if(e.querySelector(".imagesbox")){return r.textWithImages}if(e.querySelector(".video-container")){return r.video}if(e.querySelector(".bangumi-container")){return r.bangumi}if(e.querySelector(".article-container")){return r.column}if(e.querySelector(".music-container")){return r.audio}if(e.querySelector(".h5share-container")){return r.share}if(e.querySelector(".vc-ctnr")){return r.miniVideo}return r.text})();const i={id:e.getAttribute("data-did"),username:t(".main-content .user-name"),text:t(".card-content .text.description"),reposts:n(".button-bar .single-button:nth-child(1) .text-offset"),comments:n(".button-bar .single-button:nth-child(2) .text-offset"),likes:n(".button-bar .single-button:nth-child(3) .text-offset"),element:e,type:s};e.setAttribute("data-type",s.id.toString());return i}async startWatching(){const e=await SpinQuery.select(".card-list .content");if(!e){return false}const t=[...e.querySelectorAll(".content>.card")];t.forEach(e=>this.addCard(e));Observer.childList(e,e=>{e.forEach(e=>{e.addedNodes.forEach(e=>this.addCard(e));e.removedNodes.forEach(e=>this.removeCard(e))})});return true}}const s=new n;return{export:{feedsCardsManager:s,feedsCardTypes:r}}}})(); -offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/feeds-filter-card.vue.min.js"] = (()=>{return(e,t)=>{const d=`

动态过滤

类型

`;t.applyStyleFromText(`body.feeds-filter-block-audio .feed-card .card[data-type="256"],body.feeds-filter-block-bangumi .feed-card .card[data-type="512"],body.feeds-filter-block-column .feed-card .card[data-type="64"],body.feeds-filter-block-miniVideo .feed-card .card[data-type="16"],body.feeds-filter-block-repost .feed-card .card[data-type="1"],body.feeds-filter-block-share .feed-card .card[data-type="2048"],body.feeds-filter-block-text .feed-card .card[data-type="4"],body.feeds-filter-block-textWithImages .feed-card .card[data-type="2"],body.feeds-filter-block-video .feed-card .card[data-type="8"]{display:none!important}.feeds-filter{background-color:#fff;width:100%;padding:12px 16px;float:left;border-radius:4px;margin-top:8px;box-sizing:border-box;display:flex;flex-direction:column}.feeds-filter,.feeds-filter *{transition:.2s ease-out}body.dark .feeds-filter{color:#eee;background-color:#444}.feeds-filter h1{font-weight:400;font-size:14px;margin:0 0 14px}.feeds-filter h2{font-weight:700;font-size:12px;margin:0 0 12px}.feeds-filter .filter-types{display:flex;flex-wrap:wrap;justify-content:space-between}.feeds-filter .filter-types .filter-type-switch{flex:0 0 49%}.feeds-filter .filter-types .filter-type-switch:not(:last-child){margin-bottom:4px}`,"feeds-filter-card-style");return{export:Object.assign({template:d},{components:{FilterTypeSwitch:()=>t.importAsync("filter-type-switch.vue")},methods:{updateCard(t){if(e.feedsFilterPatterns.some(e=>{if(e instanceof RegExp){return e.test(t.text)}return t.text.includes(e)})){t.element.style.display="none"}else{t.element.style.display="block"}}},data(){return{allTypes:[]}},async mounted(){const{feedsCardsManager:e,feedsCardTypes:d}=await t.importAsync("feeds-apis");const a=await e.startWatching();if(!a){console.error("feedsCardsManager.startWatching() failed!")}this.allTypes=Object.entries(d);e.cards.forEach(e=>this.updateCard(e));e.addEventListener("addCard",e=>{const t=e.detail;this.updateCard(t)})}})}}})(); +offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/feeds-filter-card.vue.min.js"] = (()=>{return(e,t)=>{const r=`

动态过滤

类型

关键词

{{p}}
`;t.applyStyleFromText(`body .feed-card .card.pattern-block,body.feeds-filter-block-audio .feed-card .card[data-type="256"],body.feeds-filter-block-bangumi .feed-card .card[data-type="512"],body.feeds-filter-block-column .feed-card .card[data-type="64"],body.feeds-filter-block-miniVideo .feed-card .card[data-type="16"],body.feeds-filter-block-repost .feed-card .card[data-type="1"],body.feeds-filter-block-share .feed-card .card[data-type="2048"],body.feeds-filter-block-text .feed-card .card[data-type="4"],body.feeds-filter-block-textWithImages .feed-card .card[data-type="2"],body.feeds-filter-block-video .feed-card .card[data-type="8"]{display:none!important}.feeds-filter{background-color:#fff;width:100%;padding:12px 16px;float:left;border-radius:4px;margin-top:8px;box-sizing:border-box;display:flex;flex-direction:column}.feeds-filter,.feeds-filter *{transition:.2s ease-out}body.dark .feeds-filter{color:#eee;background-color:#444}.feeds-filter h1{font-weight:400;font-size:14px;margin:0 0 14px}.feeds-filter h2{font-weight:700;font-size:13px;margin:0 0 8px}.feeds-filter .filter-types{display:flex;flex-wrap:wrap;justify-content:space-between;margin-bottom:18px}.feeds-filter .filter-types .filter-type-switch{flex:0 0 49%}.feeds-filter .filter-types .filter-type-switch:not(:last-child){margin-bottom:4px}.feeds-filter .filter-patterns:not(:empty){margin-bottom:8px}.feeds-filter .filter-patterns .pattern{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;border-radius:4px;background-color:#0001;font-size:12px}.feeds-filter .filter-patterns .pattern:not(:last-child){margin-bottom:4px}.feeds-filter .filter-patterns .pattern .be-icon{font-size:18px;cursor:pointer}.feeds-filter .add-pattern{display:flex;align-items:center}.feeds-filter .add-pattern input{color:inherit;background-color:transparent;font-size:12px;border:1px solid #8884;border-radius:4px;outline:0!important;padding:4px;flex:1 0 0;width:0}.feeds-filter .add-pattern input:focus{border-color:var(--theme-color)}.feeds-filter .add-pattern .be-icon{font-size:18px;cursor:pointer;margin-left:8px}`,"feeds-filter-card-style");return{export:Object.assign({template:r},{components:{FilterTypeSwitch:()=>t.importAsync("filter-type-switch.vue"),Icon:()=>t.importAsync("icon.vue")},methods:{updateCard(t){if(e.feedsFilterPatterns.some(e=>{if(e.startsWith("/")&&e.endsWith("/")){return new RegExp(e.slice(1,e.length-1)).test(t.text)}return t.text.includes(e)})){t.element.classList.add("pattern-block")}else{t.element.classList.remove("pattern-block")}},deletePattern(t){const r=e.feedsFilterPatterns.indexOf(t);if(r!==-1){this.patterns.splice(r,1)}},addPattern(e){if(e&&!this.patterns.includes(e)){this.patterns.push(e)}this.newPattern=""}},watch:{patterns(){e.feedsFilterPatterns=this.patterns;if(this.feedsCardsManager!==null){this.feedsCardsManager.cards.forEach(e=>this.updateCard(e))}}},data(){return{allTypes:[],patterns:[...e.feedsFilterPatterns],newPattern:"",feedsCardsManager:null}},async mounted(){const{feedsCardsManager:e,feedsCardTypes:r}=await t.importAsync("feeds-apis");const a=await e.startWatching();if(!a){console.error("feedsCardsManager.startWatching() failed!");return}this.allTypes=Object.entries(r);e.cards.forEach(e=>this.updateCard(e));e.addEventListener("addCard",e=>{const t=e.detail;this.updateCard(t)});this.feedsCardsManager=e}})}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/feeds-filter.min.js"] = (()=>{return(e,r)=>{(async()=>{if(document.URL.replace(location.search,"")!=="https://t.bilibili.com/"){return}const e=await SpinQuery.select(".home-container .left-panel");if(e===null){return}e.insertAdjacentHTML("beforeend",html``);new Vue({el:"feeds-filter-card",components:{FeedsFilterCard:()=>r.importAsync("feeds-filter-card.vue")}})})()}})(); -offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/filter-type-switch.vue.min.js"] = (()=>{return(e,t)=>{const i=`
`;t.applyStyleFromText(`.filter-type-switch label{cursor:pointer;margin:0;padding:4px 8px;border-radius:4px;background-color:#0001;display:flex;align-items:center;justify-content:space-between}.filter-type-switch label .name{font-size:12px}.filter-type-switch label .disabled{color:var(--theme-color)!important}.filter-type-switch label:not(.disabled):hover{background-color:#0002}.filter-type-switch label.disabled{background-color:var(--theme-color-10)}.filter-type-switch label.disabled:hover{background-color:var(--theme-color-20)}.filter-type-switch label input{display:none}.filter-type-switch label .be-icon{font-size:16px}`,"filter-type-switch-style");return{export:Object.assign({template:i},{components:{Icon:()=>t.importAsync("icon.vue")},props:["name","type"],methods:{setFilter(t,i=true){document.body.classList[t?"add":"remove"](`feeds-filter-block-${this.name}`);if(!i){return}if(t){e.feedsFilterTypes.push(this.type.id)}else{const t=e.feedsFilterTypes.indexOf(this.type.id);if(t!==-1){e.feedsFilterTypes.splice(t,1)}}e.feedsFilterTypes=e.feedsFilterTypes}},data(){const t=e.feedsFilterTypes.includes(this.type.id);this.setFilter(t,false);return{disabled:t}},watch:{disabled(e){this.setFilter(e)}}})}}})(); +offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/filter-type-switch.vue.min.js"] = (()=>{return(e,t)=>{const i=`
`;t.applyStyleFromText(`.filter-type-switch label{cursor:pointer;margin:0;padding:4px 8px;border-radius:4px;background-color:#0001;display:flex;align-items:center;justify-content:space-between;border:1px solid transparent}.filter-type-switch label .name{font-size:12px}.filter-type-switch label .disabled{color:var(--theme-color)!important}.filter-type-switch label:hover{background-color:#0002}.filter-type-switch label.disabled{border-color:var(--theme-color)}.filter-type-switch label input{display:none}.filter-type-switch label .be-icon{font-size:16px}`,"filter-type-switch-style");return{export:Object.assign({template:i},{components:{Icon:()=>t.importAsync("icon.vue")},props:["name","type"],methods:{setFilter(t,i=true){document.body.classList[t?"add":"remove"](`feeds-filter-block-${this.name}`);if(!i){return}if(t){e.feedsFilterTypes.push(this.type.id)}else{const t=e.feedsFilterTypes.indexOf(this.type.id);if(t!==-1){e.feedsFilterTypes.splice(t,1)}}e.feedsFilterTypes=e.feedsFilterTypes}},data(){const t=e.feedsFilterTypes.includes(this.type.id);this.setFilter(t,false);return{disabled:t}},watch:{disabled(e){this.setFilter(e)}}})}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/fix-fullscreen.min.js"] = (()=>{return(e,n)=>{unsafeWindow.Element.ALLOW_KEYBOARD_INPUT={};const t=unsafeWindow.Element.prototype.requestFullscreen;unsafeWindow.Element.prototype.requestFullscreen=function(){t.call(this)}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/fold-comment.min.css"] = `.panel-area .bb-comment .fold-comment{position:-webkit-sticky;position:sticky;bottom:0;height:40px;width:calc(100% + 48px);font-size:14px;transform:translateX(-24px);display:flex;align-items:center;justify-content:center;background-color:#fff;color:#99a2aa;cursor:pointer;transition:.2s ease-out;z-index:1000;border-radius:4px}.panel-area .bb-comment .fold-comment:hover{color:#000}body.dark .panel-area .bb-comment .fold-comment{background-color:#444;color:#eee}body.dark .panel-area .bb-comment .fold-comment:hover{color:var(--theme-color)}`; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/fold-comment.min.js"] = (()=>{return(e,t)=>{if(document.URL.replace(window.location.search,"")==="https://t.bilibili.com/"){(async()=>{t.applyImportantStyle("foldCommentStyle");const e=await SpinQuery.select(".card-list .feed-card>.content");const l=e=>{const t=t=>{const l=document.createElement("div");l.classList.add("fold-comment");l.innerHTML="收起评论";const n=t.querySelector(".bb-comment");if(n===null){console.error("未找到评论区");return}else if(n.querySelector(".fold-comment")!==null){return}else{l.addEventListener("click",()=>{const t=e.querySelector(".button-bar").children[1];if(t!==null){t.click();e.scrollIntoView()}});n.insertAdjacentElement("beforeend",l)}};const l=e.querySelector(".panel-area");if(l===null){console.log(e)}if(l.childElementCount===0){const e=Observer.childList(l,n=>{if(n.length>0){t(l);e.forEach(e=>e.stop())}})}else{t(l)}};Observer.childList(e,()=>e.querySelectorAll("div.card").forEach(l))})()}}})(); diff --git a/bilibili-evolved.preview-offline.user.js b/bilibili-evolved.preview-offline.user.js index 931e9784d..c42ab0c55 100644 --- a/bilibili-evolved.preview-offline.user.js +++ b/bilibili-evolved.preview-offline.user.js @@ -1,6 +1,6 @@ // ==UserScript== // @name Bilibili Evolved (Preview Offline) -// @version 457.21 +// @version 457.33 // @description Bilibili Evolved 的预览离线版, 可以抢先体验新功能, 并且所有功能都已内置于脚本中. // @author Grant Howard, Coulomb-G // @copyright 2019, Grant Howard (https://github.com/the1812) & Coulomb-G (https://github.com/Coulomb-G) @@ -1087,9 +1087,9 @@ offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/m offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/expand-description.min.js"] = (()=>{return(e,p)=>{p.applyStyle("expandDescriptionStyle")}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/favorites-redirect.min.js"] = (()=>{return(t,e)=>{function i(){const t=document.querySelectorAll("li[data-aid]>a");t.forEach(t=>{const e=t.getAttribute("href");if(e===null||!e.includes("medialist")){return}const i=t.parentElement.getAttribute("data-aid");t.setAttribute("href",`https://www.bilibili.com/video/av${i}`)})}(async()=>{const t=await SpinQuery.select("#app>.s-space");if(t!==null){Observer.childListSubtree("#app>.s-space",i)}})()}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/feeds-apis.min.js"] = (()=>{return(e,t)=>{const r={repost:{id:1,name:"转发"},textWithImages:{id:2,name:"图文"},text:{id:4,name:"文字"},video:{id:8,name:"视频"},miniVideo:{id:16,name:"小视频"},column:{id:64,name:"专栏"},audio:{id:256,name:"音频"},bangumi:{id:512,name:"番剧"},share:{id:2048,name:"分享"}};class n extends EventTarget{constructor(){super(...arguments);this.cards=[]}addEventListener(e,t,r){super.addEventListener(e,t,r)}removeEventListener(e,t,r){super.removeEventListener(e,t,r)}addCard(e){if(e instanceof HTMLElement&&e.classList.contains("card")){if(e.querySelector(".skeleton")!==null){const t=Observer.childList(e,()=>{if(e.querySelector(".skeleton")===null){t.forEach(e=>e.stop());this.addCard(e)}})}else{const t=this.parseCard(e);this.cards.push(t);const r=new CustomEvent("addCard",{detail:t});this.dispatchEvent(r)}}}removeCard(e){if(e instanceof HTMLElement&&e.classList.contains("card")){const t=this.parseCard(e).id;const r=this.cards.findIndex(e=>e.id===t);const n=this.cards[r];this.cards.splice(r,1);const s=new CustomEvent("removeCard",{detail:n});this.dispatchEvent(s)}}parseCard(e){const t=t=>{if(e.querySelector(t)===null){return""}return e.querySelector(t).innerText};const n=e=>{const r=parseInt(t(e));if(isNaN(r)){return 0}return r};const s=(()=>{if(e.querySelector(".repost")){return r.repost}if(e.querySelector(".imagesbox")){return r.textWithImages}if(e.querySelector(".video-container")){return r.video}if(e.querySelector(".bangumi-container")){return r.bangumi}if(e.querySelector(".article-container")){return r.column}if(e.querySelector(".music-container")){return r.audio}if(e.querySelector(".h5share-container")){return r.share}if(e.querySelector(".vc-ctnr")){return r.miniVideo}return r.text})();const i={id:e.getAttribute("data-did"),username:t(".main-content .user-name"),text:t(".card-content .text.description"),reposts:n(".button-bar .single-button:nth-child(1) .text-offset"),comments:n(".button-bar .single-button:nth-child(2) .text-offset"),likes:n(".button-bar .single-button:nth-child(3) .text-offset"),element:e,type:s};e.setAttribute("data-type",s.id.toString());return i}async startWatching(){const e=await SpinQuery.select(".card-list .content");if(!e){return false}const t=[...e.querySelectorAll(".content>.card")];t.forEach(e=>this.addCard(e));Observer.childList(e,e=>{e.forEach(e=>{e.addedNodes.forEach(e=>this.addCard(e));e.removedNodes.forEach(e=>this.removeCard(e))})});return true}}const s=new n;return{export:{feedsCardsManager:s,feedsCardTypes:r}}}})(); -offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/feeds-filter-card.vue.min.js"] = (()=>{return(e,t)=>{const d=`

动态过滤

类型

`;t.applyStyleFromText(`body.feeds-filter-block-audio .feed-card .card[data-type="256"],body.feeds-filter-block-bangumi .feed-card .card[data-type="512"],body.feeds-filter-block-column .feed-card .card[data-type="64"],body.feeds-filter-block-miniVideo .feed-card .card[data-type="16"],body.feeds-filter-block-repost .feed-card .card[data-type="1"],body.feeds-filter-block-share .feed-card .card[data-type="2048"],body.feeds-filter-block-text .feed-card .card[data-type="4"],body.feeds-filter-block-textWithImages .feed-card .card[data-type="2"],body.feeds-filter-block-video .feed-card .card[data-type="8"]{display:none!important}.feeds-filter{background-color:#fff;width:100%;padding:12px 16px;float:left;border-radius:4px;margin-top:8px;box-sizing:border-box;display:flex;flex-direction:column}.feeds-filter,.feeds-filter *{transition:.2s ease-out}body.dark .feeds-filter{color:#eee;background-color:#444}.feeds-filter h1{font-weight:400;font-size:14px;margin:0 0 14px}.feeds-filter h2{font-weight:700;font-size:12px;margin:0 0 12px}.feeds-filter .filter-types{display:flex;flex-wrap:wrap;justify-content:space-between}.feeds-filter .filter-types .filter-type-switch{flex:0 0 49%}.feeds-filter .filter-types .filter-type-switch:not(:last-child){margin-bottom:4px}`,"feeds-filter-card-style");return{export:Object.assign({template:d},{components:{FilterTypeSwitch:()=>t.importAsync("filter-type-switch.vue")},methods:{updateCard(t){if(e.feedsFilterPatterns.some(e=>{if(e instanceof RegExp){return e.test(t.text)}return t.text.includes(e)})){t.element.style.display="none"}else{t.element.style.display="block"}}},data(){return{allTypes:[]}},async mounted(){const{feedsCardsManager:e,feedsCardTypes:d}=await t.importAsync("feeds-apis");const a=await e.startWatching();if(!a){console.error("feedsCardsManager.startWatching() failed!")}this.allTypes=Object.entries(d);e.cards.forEach(e=>this.updateCard(e));e.addEventListener("addCard",e=>{const t=e.detail;this.updateCard(t)})}})}}})(); +offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/feeds-filter-card.vue.min.js"] = (()=>{return(e,t)=>{const r=`

动态过滤

类型

关键词

{{p}}
`;t.applyStyleFromText(`body .feed-card .card.pattern-block,body.feeds-filter-block-audio .feed-card .card[data-type="256"],body.feeds-filter-block-bangumi .feed-card .card[data-type="512"],body.feeds-filter-block-column .feed-card .card[data-type="64"],body.feeds-filter-block-miniVideo .feed-card .card[data-type="16"],body.feeds-filter-block-repost .feed-card .card[data-type="1"],body.feeds-filter-block-share .feed-card .card[data-type="2048"],body.feeds-filter-block-text .feed-card .card[data-type="4"],body.feeds-filter-block-textWithImages .feed-card .card[data-type="2"],body.feeds-filter-block-video .feed-card .card[data-type="8"]{display:none!important}.feeds-filter{background-color:#fff;width:100%;padding:12px 16px;float:left;border-radius:4px;margin-top:8px;box-sizing:border-box;display:flex;flex-direction:column}.feeds-filter,.feeds-filter *{transition:.2s ease-out}body.dark .feeds-filter{color:#eee;background-color:#444}.feeds-filter h1{font-weight:400;font-size:14px;margin:0 0 14px}.feeds-filter h2{font-weight:700;font-size:13px;margin:0 0 8px}.feeds-filter .filter-types{display:flex;flex-wrap:wrap;justify-content:space-between;margin-bottom:18px}.feeds-filter .filter-types .filter-type-switch{flex:0 0 49%}.feeds-filter .filter-types .filter-type-switch:not(:last-child){margin-bottom:4px}.feeds-filter .filter-patterns:not(:empty){margin-bottom:8px}.feeds-filter .filter-patterns .pattern{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;border-radius:4px;background-color:#0001;font-size:12px}.feeds-filter .filter-patterns .pattern:not(:last-child){margin-bottom:4px}.feeds-filter .filter-patterns .pattern .be-icon{font-size:18px;cursor:pointer}.feeds-filter .add-pattern{display:flex;align-items:center}.feeds-filter .add-pattern input{color:inherit;background-color:transparent;font-size:12px;border:1px solid #8884;border-radius:4px;outline:0!important;padding:4px;flex:1 0 0;width:0}.feeds-filter .add-pattern input:focus{border-color:var(--theme-color)}.feeds-filter .add-pattern .be-icon{font-size:18px;cursor:pointer;margin-left:8px}`,"feeds-filter-card-style");return{export:Object.assign({template:r},{components:{FilterTypeSwitch:()=>t.importAsync("filter-type-switch.vue"),Icon:()=>t.importAsync("icon.vue")},methods:{updateCard(t){if(e.feedsFilterPatterns.some(e=>{if(e.startsWith("/")&&e.endsWith("/")){return new RegExp(e.slice(1,e.length-1)).test(t.text)}return t.text.includes(e)})){t.element.classList.add("pattern-block")}else{t.element.classList.remove("pattern-block")}},deletePattern(t){const r=e.feedsFilterPatterns.indexOf(t);if(r!==-1){this.patterns.splice(r,1)}},addPattern(e){if(e&&!this.patterns.includes(e)){this.patterns.push(e)}this.newPattern=""}},watch:{patterns(){e.feedsFilterPatterns=this.patterns;if(this.feedsCardsManager!==null){this.feedsCardsManager.cards.forEach(e=>this.updateCard(e))}}},data(){return{allTypes:[],patterns:[...e.feedsFilterPatterns],newPattern:"",feedsCardsManager:null}},async mounted(){const{feedsCardsManager:e,feedsCardTypes:r}=await t.importAsync("feeds-apis");const a=await e.startWatching();if(!a){console.error("feedsCardsManager.startWatching() failed!");return}this.allTypes=Object.entries(r);e.cards.forEach(e=>this.updateCard(e));e.addEventListener("addCard",e=>{const t=e.detail;this.updateCard(t)});this.feedsCardsManager=e}})}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/feeds-filter.min.js"] = (()=>{return(e,r)=>{(async()=>{if(document.URL.replace(location.search,"")!=="https://t.bilibili.com/"){return}const e=await SpinQuery.select(".home-container .left-panel");if(e===null){return}e.insertAdjacentHTML("beforeend",html``);new Vue({el:"feeds-filter-card",components:{FeedsFilterCard:()=>r.importAsync("feeds-filter-card.vue")}})})()}})(); -offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/filter-type-switch.vue.min.js"] = (()=>{return(e,t)=>{const i=`
`;t.applyStyleFromText(`.filter-type-switch label{cursor:pointer;margin:0;padding:4px 8px;border-radius:4px;background-color:#0001;display:flex;align-items:center;justify-content:space-between}.filter-type-switch label .name{font-size:12px}.filter-type-switch label .disabled{color:var(--theme-color)!important}.filter-type-switch label:not(.disabled):hover{background-color:#0002}.filter-type-switch label.disabled{background-color:var(--theme-color-10)}.filter-type-switch label.disabled:hover{background-color:var(--theme-color-20)}.filter-type-switch label input{display:none}.filter-type-switch label .be-icon{font-size:16px}`,"filter-type-switch-style");return{export:Object.assign({template:i},{components:{Icon:()=>t.importAsync("icon.vue")},props:["name","type"],methods:{setFilter(t,i=true){document.body.classList[t?"add":"remove"](`feeds-filter-block-${this.name}`);if(!i){return}if(t){e.feedsFilterTypes.push(this.type.id)}else{const t=e.feedsFilterTypes.indexOf(this.type.id);if(t!==-1){e.feedsFilterTypes.splice(t,1)}}e.feedsFilterTypes=e.feedsFilterTypes}},data(){const t=e.feedsFilterTypes.includes(this.type.id);this.setFilter(t,false);return{disabled:t}},watch:{disabled(e){this.setFilter(e)}}})}}})(); +offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/filter-type-switch.vue.min.js"] = (()=>{return(e,t)=>{const i=`
`;t.applyStyleFromText(`.filter-type-switch label{cursor:pointer;margin:0;padding:4px 8px;border-radius:4px;background-color:#0001;display:flex;align-items:center;justify-content:space-between;border:1px solid transparent}.filter-type-switch label .name{font-size:12px}.filter-type-switch label .disabled{color:var(--theme-color)!important}.filter-type-switch label:hover{background-color:#0002}.filter-type-switch label.disabled{border-color:var(--theme-color)}.filter-type-switch label input{display:none}.filter-type-switch label .be-icon{font-size:16px}`,"filter-type-switch-style");return{export:Object.assign({template:i},{components:{Icon:()=>t.importAsync("icon.vue")},props:["name","type"],methods:{setFilter(t,i=true){document.body.classList[t?"add":"remove"](`feeds-filter-block-${this.name}`);if(!i){return}if(t){e.feedsFilterTypes.push(this.type.id)}else{const t=e.feedsFilterTypes.indexOf(this.type.id);if(t!==-1){e.feedsFilterTypes.splice(t,1)}}e.feedsFilterTypes=e.feedsFilterTypes}},data(){const t=e.feedsFilterTypes.includes(this.type.id);this.setFilter(t,false);return{disabled:t}},watch:{disabled(e){this.setFilter(e)}}})}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/fix-fullscreen.min.js"] = (()=>{return(e,n)=>{unsafeWindow.Element.ALLOW_KEYBOARD_INPUT={};const t=unsafeWindow.Element.prototype.requestFullscreen;unsafeWindow.Element.prototype.requestFullscreen=function(){t.call(this)}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/fold-comment.min.css"] = `.panel-area .bb-comment .fold-comment{position:-webkit-sticky;position:sticky;bottom:0;height:40px;width:calc(100% + 48px);font-size:14px;transform:translateX(-24px);display:flex;align-items:center;justify-content:center;background-color:#fff;color:#99a2aa;cursor:pointer;transition:.2s ease-out;z-index:1000;border-radius:4px}.panel-area .bb-comment .fold-comment:hover{color:#000}body.dark .panel-area .bb-comment .fold-comment{background-color:#444;color:#eee}body.dark .panel-area .bb-comment .fold-comment:hover{color:var(--theme-color)}`; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/fold-comment.min.js"] = (()=>{return(e,t)=>{if(document.URL.replace(window.location.search,"")==="https://t.bilibili.com/"){(async()=>{t.applyImportantStyle("foldCommentStyle");const e=await SpinQuery.select(".card-list .feed-card>.content");const l=e=>{const t=t=>{const l=document.createElement("div");l.classList.add("fold-comment");l.innerHTML="收起评论";const n=t.querySelector(".bb-comment");if(n===null){console.error("未找到评论区");return}else if(n.querySelector(".fold-comment")!==null){return}else{l.addEventListener("click",()=>{const t=e.querySelector(".button-bar").children[1];if(t!==null){t.click();e.scrollIntoView()}});n.insertAdjacentElement("beforeend",l)}};const l=e.querySelector(".panel-area");if(l===null){console.log(e)}if(l.childElementCount===0){const e=Observer.childList(l,n=>{if(n.length>0){t(l);e.forEach(e=>e.stop())}})}else{t(l)}};Observer.childList(e,()=>e.querySelectorAll("div.card").forEach(l))})()}}})(); diff --git a/bilibili-evolved.preview.user.js b/bilibili-evolved.preview.user.js index 8a597e848..3898f93d2 100644 --- a/bilibili-evolved.preview.user.js +++ b/bilibili-evolved.preview.user.js @@ -1086,9 +1086,9 @@ onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/m onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/expand-description.min.js"] = (()=>{return(e,p)=>{p.applyStyle("expandDescriptionStyle")}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/favorites-redirect.min.js"] = (()=>{return(t,e)=>{function i(){const t=document.querySelectorAll("li[data-aid]>a");t.forEach(t=>{const e=t.getAttribute("href");if(e===null||!e.includes("medialist")){return}const i=t.parentElement.getAttribute("data-aid");t.setAttribute("href",`https://www.bilibili.com/video/av${i}`)})}(async()=>{const t=await SpinQuery.select("#app>.s-space");if(t!==null){Observer.childListSubtree("#app>.s-space",i)}})()}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/feeds-apis.min.js"] = (()=>{return(e,t)=>{const r={repost:{id:1,name:"转发"},textWithImages:{id:2,name:"图文"},text:{id:4,name:"文字"},video:{id:8,name:"视频"},miniVideo:{id:16,name:"小视频"},column:{id:64,name:"专栏"},audio:{id:256,name:"音频"},bangumi:{id:512,name:"番剧"},share:{id:2048,name:"分享"}};class n extends EventTarget{constructor(){super(...arguments);this.cards=[]}addEventListener(e,t,r){super.addEventListener(e,t,r)}removeEventListener(e,t,r){super.removeEventListener(e,t,r)}addCard(e){if(e instanceof HTMLElement&&e.classList.contains("card")){if(e.querySelector(".skeleton")!==null){const t=Observer.childList(e,()=>{if(e.querySelector(".skeleton")===null){t.forEach(e=>e.stop());this.addCard(e)}})}else{const t=this.parseCard(e);this.cards.push(t);const r=new CustomEvent("addCard",{detail:t});this.dispatchEvent(r)}}}removeCard(e){if(e instanceof HTMLElement&&e.classList.contains("card")){const t=this.parseCard(e).id;const r=this.cards.findIndex(e=>e.id===t);const n=this.cards[r];this.cards.splice(r,1);const s=new CustomEvent("removeCard",{detail:n});this.dispatchEvent(s)}}parseCard(e){const t=t=>{if(e.querySelector(t)===null){return""}return e.querySelector(t).innerText};const n=e=>{const r=parseInt(t(e));if(isNaN(r)){return 0}return r};const s=(()=>{if(e.querySelector(".repost")){return r.repost}if(e.querySelector(".imagesbox")){return r.textWithImages}if(e.querySelector(".video-container")){return r.video}if(e.querySelector(".bangumi-container")){return r.bangumi}if(e.querySelector(".article-container")){return r.column}if(e.querySelector(".music-container")){return r.audio}if(e.querySelector(".h5share-container")){return r.share}if(e.querySelector(".vc-ctnr")){return r.miniVideo}return r.text})();const i={id:e.getAttribute("data-did"),username:t(".main-content .user-name"),text:t(".card-content .text.description"),reposts:n(".button-bar .single-button:nth-child(1) .text-offset"),comments:n(".button-bar .single-button:nth-child(2) .text-offset"),likes:n(".button-bar .single-button:nth-child(3) .text-offset"),element:e,type:s};e.setAttribute("data-type",s.id.toString());return i}async startWatching(){const e=await SpinQuery.select(".card-list .content");if(!e){return false}const t=[...e.querySelectorAll(".content>.card")];t.forEach(e=>this.addCard(e));Observer.childList(e,e=>{e.forEach(e=>{e.addedNodes.forEach(e=>this.addCard(e));e.removedNodes.forEach(e=>this.removeCard(e))})});return true}}const s=new n;return{export:{feedsCardsManager:s,feedsCardTypes:r}}}})(); -onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/feeds-filter-card.vue.min.js"] = (()=>{return(e,t)=>{const d=`

动态过滤

类型

`;t.applyStyleFromText(`body.feeds-filter-block-audio .feed-card .card[data-type="256"],body.feeds-filter-block-bangumi .feed-card .card[data-type="512"],body.feeds-filter-block-column .feed-card .card[data-type="64"],body.feeds-filter-block-miniVideo .feed-card .card[data-type="16"],body.feeds-filter-block-repost .feed-card .card[data-type="1"],body.feeds-filter-block-share .feed-card .card[data-type="2048"],body.feeds-filter-block-text .feed-card .card[data-type="4"],body.feeds-filter-block-textWithImages .feed-card .card[data-type="2"],body.feeds-filter-block-video .feed-card .card[data-type="8"]{display:none!important}.feeds-filter{background-color:#fff;width:100%;padding:12px 16px;float:left;border-radius:4px;margin-top:8px;box-sizing:border-box;display:flex;flex-direction:column}.feeds-filter,.feeds-filter *{transition:.2s ease-out}body.dark .feeds-filter{color:#eee;background-color:#444}.feeds-filter h1{font-weight:400;font-size:14px;margin:0 0 14px}.feeds-filter h2{font-weight:700;font-size:12px;margin:0 0 12px}.feeds-filter .filter-types{display:flex;flex-wrap:wrap;justify-content:space-between}.feeds-filter .filter-types .filter-type-switch{flex:0 0 49%}.feeds-filter .filter-types .filter-type-switch:not(:last-child){margin-bottom:4px}`,"feeds-filter-card-style");return{export:Object.assign({template:d},{components:{FilterTypeSwitch:()=>t.importAsync("filter-type-switch.vue")},methods:{updateCard(t){if(e.feedsFilterPatterns.some(e=>{if(e instanceof RegExp){return e.test(t.text)}return t.text.includes(e)})){t.element.style.display="none"}else{t.element.style.display="block"}}},data(){return{allTypes:[]}},async mounted(){const{feedsCardsManager:e,feedsCardTypes:d}=await t.importAsync("feeds-apis");const a=await e.startWatching();if(!a){console.error("feedsCardsManager.startWatching() failed!")}this.allTypes=Object.entries(d);e.cards.forEach(e=>this.updateCard(e));e.addEventListener("addCard",e=>{const t=e.detail;this.updateCard(t)})}})}}})(); +onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/feeds-filter-card.vue.min.js"] = (()=>{return(e,t)=>{const r=`

动态过滤

类型

关键词

{{p}}
`;t.applyStyleFromText(`body .feed-card .card.pattern-block,body.feeds-filter-block-audio .feed-card .card[data-type="256"],body.feeds-filter-block-bangumi .feed-card .card[data-type="512"],body.feeds-filter-block-column .feed-card .card[data-type="64"],body.feeds-filter-block-miniVideo .feed-card .card[data-type="16"],body.feeds-filter-block-repost .feed-card .card[data-type="1"],body.feeds-filter-block-share .feed-card .card[data-type="2048"],body.feeds-filter-block-text .feed-card .card[data-type="4"],body.feeds-filter-block-textWithImages .feed-card .card[data-type="2"],body.feeds-filter-block-video .feed-card .card[data-type="8"]{display:none!important}.feeds-filter{background-color:#fff;width:100%;padding:12px 16px;float:left;border-radius:4px;margin-top:8px;box-sizing:border-box;display:flex;flex-direction:column}.feeds-filter,.feeds-filter *{transition:.2s ease-out}body.dark .feeds-filter{color:#eee;background-color:#444}.feeds-filter h1{font-weight:400;font-size:14px;margin:0 0 14px}.feeds-filter h2{font-weight:700;font-size:13px;margin:0 0 8px}.feeds-filter .filter-types{display:flex;flex-wrap:wrap;justify-content:space-between;margin-bottom:18px}.feeds-filter .filter-types .filter-type-switch{flex:0 0 49%}.feeds-filter .filter-types .filter-type-switch:not(:last-child){margin-bottom:4px}.feeds-filter .filter-patterns:not(:empty){margin-bottom:8px}.feeds-filter .filter-patterns .pattern{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;border-radius:4px;background-color:#0001;font-size:12px}.feeds-filter .filter-patterns .pattern:not(:last-child){margin-bottom:4px}.feeds-filter .filter-patterns .pattern .be-icon{font-size:18px;cursor:pointer}.feeds-filter .add-pattern{display:flex;align-items:center}.feeds-filter .add-pattern input{color:inherit;background-color:transparent;font-size:12px;border:1px solid #8884;border-radius:4px;outline:0!important;padding:4px;flex:1 0 0;width:0}.feeds-filter .add-pattern input:focus{border-color:var(--theme-color)}.feeds-filter .add-pattern .be-icon{font-size:18px;cursor:pointer;margin-left:8px}`,"feeds-filter-card-style");return{export:Object.assign({template:r},{components:{FilterTypeSwitch:()=>t.importAsync("filter-type-switch.vue"),Icon:()=>t.importAsync("icon.vue")},methods:{updateCard(t){if(e.feedsFilterPatterns.some(e=>{if(e.startsWith("/")&&e.endsWith("/")){return new RegExp(e.slice(1,e.length-1)).test(t.text)}return t.text.includes(e)})){t.element.classList.add("pattern-block")}else{t.element.classList.remove("pattern-block")}},deletePattern(t){const r=e.feedsFilterPatterns.indexOf(t);if(r!==-1){this.patterns.splice(r,1)}},addPattern(e){if(e&&!this.patterns.includes(e)){this.patterns.push(e)}this.newPattern=""}},watch:{patterns(){e.feedsFilterPatterns=this.patterns;if(this.feedsCardsManager!==null){this.feedsCardsManager.cards.forEach(e=>this.updateCard(e))}}},data(){return{allTypes:[],patterns:[...e.feedsFilterPatterns],newPattern:"",feedsCardsManager:null}},async mounted(){const{feedsCardsManager:e,feedsCardTypes:r}=await t.importAsync("feeds-apis");const a=await e.startWatching();if(!a){console.error("feedsCardsManager.startWatching() failed!");return}this.allTypes=Object.entries(r);e.cards.forEach(e=>this.updateCard(e));e.addEventListener("addCard",e=>{const t=e.detail;this.updateCard(t)});this.feedsCardsManager=e}})}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/feeds-filter.min.js"] = (()=>{return(e,r)=>{(async()=>{if(document.URL.replace(location.search,"")!=="https://t.bilibili.com/"){return}const e=await SpinQuery.select(".home-container .left-panel");if(e===null){return}e.insertAdjacentHTML("beforeend",html``);new Vue({el:"feeds-filter-card",components:{FeedsFilterCard:()=>r.importAsync("feeds-filter-card.vue")}})})()}})(); -onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/filter-type-switch.vue.min.js"] = (()=>{return(e,t)=>{const i=`
`;t.applyStyleFromText(`.filter-type-switch label{cursor:pointer;margin:0;padding:4px 8px;border-radius:4px;background-color:#0001;display:flex;align-items:center;justify-content:space-between}.filter-type-switch label .name{font-size:12px}.filter-type-switch label .disabled{color:var(--theme-color)!important}.filter-type-switch label:not(.disabled):hover{background-color:#0002}.filter-type-switch label.disabled{background-color:var(--theme-color-10)}.filter-type-switch label.disabled:hover{background-color:var(--theme-color-20)}.filter-type-switch label input{display:none}.filter-type-switch label .be-icon{font-size:16px}`,"filter-type-switch-style");return{export:Object.assign({template:i},{components:{Icon:()=>t.importAsync("icon.vue")},props:["name","type"],methods:{setFilter(t,i=true){document.body.classList[t?"add":"remove"](`feeds-filter-block-${this.name}`);if(!i){return}if(t){e.feedsFilterTypes.push(this.type.id)}else{const t=e.feedsFilterTypes.indexOf(this.type.id);if(t!==-1){e.feedsFilterTypes.splice(t,1)}}e.feedsFilterTypes=e.feedsFilterTypes}},data(){const t=e.feedsFilterTypes.includes(this.type.id);this.setFilter(t,false);return{disabled:t}},watch:{disabled(e){this.setFilter(e)}}})}}})(); +onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/filter-type-switch.vue.min.js"] = (()=>{return(e,t)=>{const i=`
`;t.applyStyleFromText(`.filter-type-switch label{cursor:pointer;margin:0;padding:4px 8px;border-radius:4px;background-color:#0001;display:flex;align-items:center;justify-content:space-between;border:1px solid transparent}.filter-type-switch label .name{font-size:12px}.filter-type-switch label .disabled{color:var(--theme-color)!important}.filter-type-switch label:hover{background-color:#0002}.filter-type-switch label.disabled{border-color:var(--theme-color)}.filter-type-switch label input{display:none}.filter-type-switch label .be-icon{font-size:16px}`,"filter-type-switch-style");return{export:Object.assign({template:i},{components:{Icon:()=>t.importAsync("icon.vue")},props:["name","type"],methods:{setFilter(t,i=true){document.body.classList[t?"add":"remove"](`feeds-filter-block-${this.name}`);if(!i){return}if(t){e.feedsFilterTypes.push(this.type.id)}else{const t=e.feedsFilterTypes.indexOf(this.type.id);if(t!==-1){e.feedsFilterTypes.splice(t,1)}}e.feedsFilterTypes=e.feedsFilterTypes}},data(){const t=e.feedsFilterTypes.includes(this.type.id);this.setFilter(t,false);return{disabled:t}},watch:{disabled(e){this.setFilter(e)}}})}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/fix-fullscreen.min.js"] = (()=>{return(e,n)=>{unsafeWindow.Element.ALLOW_KEYBOARD_INPUT={};const t=unsafeWindow.Element.prototype.requestFullscreen;unsafeWindow.Element.prototype.requestFullscreen=function(){t.call(this)}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/fold-comment.min.css"] = `.panel-area .bb-comment .fold-comment{position:-webkit-sticky;position:sticky;bottom:0;height:40px;width:calc(100% + 48px);font-size:14px;transform:translateX(-24px);display:flex;align-items:center;justify-content:center;background-color:#fff;color:#99a2aa;cursor:pointer;transition:.2s ease-out;z-index:1000;border-radius:4px}.panel-area .bb-comment .fold-comment:hover{color:#000}body.dark .panel-area .bb-comment .fold-comment{background-color:#444;color:#eee}body.dark .panel-area .bb-comment .fold-comment:hover{color:var(--theme-color)}`; onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/fold-comment.min.js"] = (()=>{return(e,t)=>{if(document.URL.replace(window.location.search,"")==="https://t.bilibili.com/"){(async()=>{t.applyImportantStyle("foldCommentStyle");const e=await SpinQuery.select(".card-list .feed-card>.content");const l=e=>{const t=t=>{const l=document.createElement("div");l.classList.add("fold-comment");l.innerHTML="收起评论";const n=t.querySelector(".bb-comment");if(n===null){console.error("未找到评论区");return}else if(n.querySelector(".fold-comment")!==null){return}else{l.addEventListener("click",()=>{const t=e.querySelector(".button-bar").children[1];if(t!==null){t.click();e.scrollIntoView()}});n.insertAdjacentElement("beforeend",l)}};const l=e.querySelector(".panel-area");if(l===null){console.log(e)}if(l.childElementCount===0){const e=Observer.childList(l,n=>{if(n.length>0){t(l);e.forEach(e=>e.stop())}})}else{t(l)}};Observer.childList(e,()=>e.querySelectorAll("div.card").forEach(l))})()}}})(); diff --git a/bilibili-evolved.user.js b/bilibili-evolved.user.js index 231137d43..387f73ddb 100644 --- a/bilibili-evolved.user.js +++ b/bilibili-evolved.user.js @@ -1086,9 +1086,9 @@ onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/mi onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/expand-description.min.js"] = (()=>{return(e,p)=>{p.applyStyle("expandDescriptionStyle")}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/favorites-redirect.min.js"] = (()=>{return(t,e)=>{function i(){const t=document.querySelectorAll("li[data-aid]>a");t.forEach(t=>{const e=t.getAttribute("href");if(e===null||!e.includes("medialist")){return}const i=t.parentElement.getAttribute("data-aid");t.setAttribute("href",`https://www.bilibili.com/video/av${i}`)})}(async()=>{const t=await SpinQuery.select("#app>.s-space");if(t!==null){Observer.childListSubtree("#app>.s-space",i)}})()}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/feeds-apis.min.js"] = (()=>{return(e,t)=>{const r={repost:{id:1,name:"转发"},textWithImages:{id:2,name:"图文"},text:{id:4,name:"文字"},video:{id:8,name:"视频"},miniVideo:{id:16,name:"小视频"},column:{id:64,name:"专栏"},audio:{id:256,name:"音频"},bangumi:{id:512,name:"番剧"},share:{id:2048,name:"分享"}};class n extends EventTarget{constructor(){super(...arguments);this.cards=[]}addEventListener(e,t,r){super.addEventListener(e,t,r)}removeEventListener(e,t,r){super.removeEventListener(e,t,r)}addCard(e){if(e instanceof HTMLElement&&e.classList.contains("card")){if(e.querySelector(".skeleton")!==null){const t=Observer.childList(e,()=>{if(e.querySelector(".skeleton")===null){t.forEach(e=>e.stop());this.addCard(e)}})}else{const t=this.parseCard(e);this.cards.push(t);const r=new CustomEvent("addCard",{detail:t});this.dispatchEvent(r)}}}removeCard(e){if(e instanceof HTMLElement&&e.classList.contains("card")){const t=this.parseCard(e).id;const r=this.cards.findIndex(e=>e.id===t);const n=this.cards[r];this.cards.splice(r,1);const s=new CustomEvent("removeCard",{detail:n});this.dispatchEvent(s)}}parseCard(e){const t=t=>{if(e.querySelector(t)===null){return""}return e.querySelector(t).innerText};const n=e=>{const r=parseInt(t(e));if(isNaN(r)){return 0}return r};const s=(()=>{if(e.querySelector(".repost")){return r.repost}if(e.querySelector(".imagesbox")){return r.textWithImages}if(e.querySelector(".video-container")){return r.video}if(e.querySelector(".bangumi-container")){return r.bangumi}if(e.querySelector(".article-container")){return r.column}if(e.querySelector(".music-container")){return r.audio}if(e.querySelector(".h5share-container")){return r.share}if(e.querySelector(".vc-ctnr")){return r.miniVideo}return r.text})();const i={id:e.getAttribute("data-did"),username:t(".main-content .user-name"),text:t(".card-content .text.description"),reposts:n(".button-bar .single-button:nth-child(1) .text-offset"),comments:n(".button-bar .single-button:nth-child(2) .text-offset"),likes:n(".button-bar .single-button:nth-child(3) .text-offset"),element:e,type:s};e.setAttribute("data-type",s.id.toString());return i}async startWatching(){const e=await SpinQuery.select(".card-list .content");if(!e){return false}const t=[...e.querySelectorAll(".content>.card")];t.forEach(e=>this.addCard(e));Observer.childList(e,e=>{e.forEach(e=>{e.addedNodes.forEach(e=>this.addCard(e));e.removedNodes.forEach(e=>this.removeCard(e))})});return true}}const s=new n;return{export:{feedsCardsManager:s,feedsCardTypes:r}}}})(); -onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/feeds-filter-card.vue.min.js"] = (()=>{return(e,t)=>{const d=`

动态过滤

类型

`;t.applyStyleFromText(`body.feeds-filter-block-audio .feed-card .card[data-type="256"],body.feeds-filter-block-bangumi .feed-card .card[data-type="512"],body.feeds-filter-block-column .feed-card .card[data-type="64"],body.feeds-filter-block-miniVideo .feed-card .card[data-type="16"],body.feeds-filter-block-repost .feed-card .card[data-type="1"],body.feeds-filter-block-share .feed-card .card[data-type="2048"],body.feeds-filter-block-text .feed-card .card[data-type="4"],body.feeds-filter-block-textWithImages .feed-card .card[data-type="2"],body.feeds-filter-block-video .feed-card .card[data-type="8"]{display:none!important}.feeds-filter{background-color:#fff;width:100%;padding:12px 16px;float:left;border-radius:4px;margin-top:8px;box-sizing:border-box;display:flex;flex-direction:column}.feeds-filter,.feeds-filter *{transition:.2s ease-out}body.dark .feeds-filter{color:#eee;background-color:#444}.feeds-filter h1{font-weight:400;font-size:14px;margin:0 0 14px}.feeds-filter h2{font-weight:700;font-size:12px;margin:0 0 12px}.feeds-filter .filter-types{display:flex;flex-wrap:wrap;justify-content:space-between}.feeds-filter .filter-types .filter-type-switch{flex:0 0 49%}.feeds-filter .filter-types .filter-type-switch:not(:last-child){margin-bottom:4px}`,"feeds-filter-card-style");return{export:Object.assign({template:d},{components:{FilterTypeSwitch:()=>t.importAsync("filter-type-switch.vue")},methods:{updateCard(t){if(e.feedsFilterPatterns.some(e=>{if(e instanceof RegExp){return e.test(t.text)}return t.text.includes(e)})){t.element.style.display="none"}else{t.element.style.display="block"}}},data(){return{allTypes:[]}},async mounted(){const{feedsCardsManager:e,feedsCardTypes:d}=await t.importAsync("feeds-apis");const a=await e.startWatching();if(!a){console.error("feedsCardsManager.startWatching() failed!")}this.allTypes=Object.entries(d);e.cards.forEach(e=>this.updateCard(e));e.addEventListener("addCard",e=>{const t=e.detail;this.updateCard(t)})}})}}})(); +onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/feeds-filter-card.vue.min.js"] = (()=>{return(e,t)=>{const r=`

动态过滤

类型

关键词

{{p}}
`;t.applyStyleFromText(`body .feed-card .card.pattern-block,body.feeds-filter-block-audio .feed-card .card[data-type="256"],body.feeds-filter-block-bangumi .feed-card .card[data-type="512"],body.feeds-filter-block-column .feed-card .card[data-type="64"],body.feeds-filter-block-miniVideo .feed-card .card[data-type="16"],body.feeds-filter-block-repost .feed-card .card[data-type="1"],body.feeds-filter-block-share .feed-card .card[data-type="2048"],body.feeds-filter-block-text .feed-card .card[data-type="4"],body.feeds-filter-block-textWithImages .feed-card .card[data-type="2"],body.feeds-filter-block-video .feed-card .card[data-type="8"]{display:none!important}.feeds-filter{background-color:#fff;width:100%;padding:12px 16px;float:left;border-radius:4px;margin-top:8px;box-sizing:border-box;display:flex;flex-direction:column}.feeds-filter,.feeds-filter *{transition:.2s ease-out}body.dark .feeds-filter{color:#eee;background-color:#444}.feeds-filter h1{font-weight:400;font-size:14px;margin:0 0 14px}.feeds-filter h2{font-weight:700;font-size:13px;margin:0 0 8px}.feeds-filter .filter-types{display:flex;flex-wrap:wrap;justify-content:space-between;margin-bottom:18px}.feeds-filter .filter-types .filter-type-switch{flex:0 0 49%}.feeds-filter .filter-types .filter-type-switch:not(:last-child){margin-bottom:4px}.feeds-filter .filter-patterns:not(:empty){margin-bottom:8px}.feeds-filter .filter-patterns .pattern{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;border-radius:4px;background-color:#0001;font-size:12px}.feeds-filter .filter-patterns .pattern:not(:last-child){margin-bottom:4px}.feeds-filter .filter-patterns .pattern .be-icon{font-size:18px;cursor:pointer}.feeds-filter .add-pattern{display:flex;align-items:center}.feeds-filter .add-pattern input{color:inherit;background-color:transparent;font-size:12px;border:1px solid #8884;border-radius:4px;outline:0!important;padding:4px;flex:1 0 0;width:0}.feeds-filter .add-pattern input:focus{border-color:var(--theme-color)}.feeds-filter .add-pattern .be-icon{font-size:18px;cursor:pointer;margin-left:8px}`,"feeds-filter-card-style");return{export:Object.assign({template:r},{components:{FilterTypeSwitch:()=>t.importAsync("filter-type-switch.vue"),Icon:()=>t.importAsync("icon.vue")},methods:{updateCard(t){if(e.feedsFilterPatterns.some(e=>{if(e.startsWith("/")&&e.endsWith("/")){return new RegExp(e.slice(1,e.length-1)).test(t.text)}return t.text.includes(e)})){t.element.classList.add("pattern-block")}else{t.element.classList.remove("pattern-block")}},deletePattern(t){const r=e.feedsFilterPatterns.indexOf(t);if(r!==-1){this.patterns.splice(r,1)}},addPattern(e){if(e&&!this.patterns.includes(e)){this.patterns.push(e)}this.newPattern=""}},watch:{patterns(){e.feedsFilterPatterns=this.patterns;if(this.feedsCardsManager!==null){this.feedsCardsManager.cards.forEach(e=>this.updateCard(e))}}},data(){return{allTypes:[],patterns:[...e.feedsFilterPatterns],newPattern:"",feedsCardsManager:null}},async mounted(){const{feedsCardsManager:e,feedsCardTypes:r}=await t.importAsync("feeds-apis");const a=await e.startWatching();if(!a){console.error("feedsCardsManager.startWatching() failed!");return}this.allTypes=Object.entries(r);e.cards.forEach(e=>this.updateCard(e));e.addEventListener("addCard",e=>{const t=e.detail;this.updateCard(t)});this.feedsCardsManager=e}})}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/feeds-filter.min.js"] = (()=>{return(e,r)=>{(async()=>{if(document.URL.replace(location.search,"")!=="https://t.bilibili.com/"){return}const e=await SpinQuery.select(".home-container .left-panel");if(e===null){return}e.insertAdjacentHTML("beforeend",html``);new Vue({el:"feeds-filter-card",components:{FeedsFilterCard:()=>r.importAsync("feeds-filter-card.vue")}})})()}})(); -onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/filter-type-switch.vue.min.js"] = (()=>{return(e,t)=>{const i=`
`;t.applyStyleFromText(`.filter-type-switch label{cursor:pointer;margin:0;padding:4px 8px;border-radius:4px;background-color:#0001;display:flex;align-items:center;justify-content:space-between}.filter-type-switch label .name{font-size:12px}.filter-type-switch label .disabled{color:var(--theme-color)!important}.filter-type-switch label:not(.disabled):hover{background-color:#0002}.filter-type-switch label.disabled{background-color:var(--theme-color-10)}.filter-type-switch label.disabled:hover{background-color:var(--theme-color-20)}.filter-type-switch label input{display:none}.filter-type-switch label .be-icon{font-size:16px}`,"filter-type-switch-style");return{export:Object.assign({template:i},{components:{Icon:()=>t.importAsync("icon.vue")},props:["name","type"],methods:{setFilter(t,i=true){document.body.classList[t?"add":"remove"](`feeds-filter-block-${this.name}`);if(!i){return}if(t){e.feedsFilterTypes.push(this.type.id)}else{const t=e.feedsFilterTypes.indexOf(this.type.id);if(t!==-1){e.feedsFilterTypes.splice(t,1)}}e.feedsFilterTypes=e.feedsFilterTypes}},data(){const t=e.feedsFilterTypes.includes(this.type.id);this.setFilter(t,false);return{disabled:t}},watch:{disabled(e){this.setFilter(e)}}})}}})(); +onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/filter-type-switch.vue.min.js"] = (()=>{return(e,t)=>{const i=`
`;t.applyStyleFromText(`.filter-type-switch label{cursor:pointer;margin:0;padding:4px 8px;border-radius:4px;background-color:#0001;display:flex;align-items:center;justify-content:space-between;border:1px solid transparent}.filter-type-switch label .name{font-size:12px}.filter-type-switch label .disabled{color:var(--theme-color)!important}.filter-type-switch label:hover{background-color:#0002}.filter-type-switch label.disabled{border-color:var(--theme-color)}.filter-type-switch label input{display:none}.filter-type-switch label .be-icon{font-size:16px}`,"filter-type-switch-style");return{export:Object.assign({template:i},{components:{Icon:()=>t.importAsync("icon.vue")},props:["name","type"],methods:{setFilter(t,i=true){document.body.classList[t?"add":"remove"](`feeds-filter-block-${this.name}`);if(!i){return}if(t){e.feedsFilterTypes.push(this.type.id)}else{const t=e.feedsFilterTypes.indexOf(this.type.id);if(t!==-1){e.feedsFilterTypes.splice(t,1)}}e.feedsFilterTypes=e.feedsFilterTypes}},data(){const t=e.feedsFilterTypes.includes(this.type.id);this.setFilter(t,false);return{disabled:t}},watch:{disabled(e){this.setFilter(e)}}})}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/fix-fullscreen.min.js"] = (()=>{return(e,n)=>{unsafeWindow.Element.ALLOW_KEYBOARD_INPUT={};const t=unsafeWindow.Element.prototype.requestFullscreen;unsafeWindow.Element.prototype.requestFullscreen=function(){t.call(this)}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/fold-comment.min.css"] = `.panel-area .bb-comment .fold-comment{position:-webkit-sticky;position:sticky;bottom:0;height:40px;width:calc(100% + 48px);font-size:14px;transform:translateX(-24px);display:flex;align-items:center;justify-content:center;background-color:#fff;color:#99a2aa;cursor:pointer;transition:.2s ease-out;z-index:1000;border-radius:4px}.panel-area .bb-comment .fold-comment:hover{color:#000}body.dark .panel-area .bb-comment .fold-comment{background-color:#444;color:#eee}body.dark .panel-area .bb-comment .fold-comment:hover{color:var(--theme-color)}`; onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/fold-comment.min.js"] = (()=>{return(e,t)=>{if(document.URL.replace(window.location.search,"")==="https://t.bilibili.com/"){(async()=>{t.applyImportantStyle("foldCommentStyle");const e=await SpinQuery.select(".card-list .feed-card>.content");const l=e=>{const t=t=>{const l=document.createElement("div");l.classList.add("fold-comment");l.innerHTML="收起评论";const n=t.querySelector(".bb-comment");if(n===null){console.error("未找到评论区");return}else if(n.querySelector(".fold-comment")!==null){return}else{l.addEventListener("click",()=>{const t=e.querySelector(".button-bar").children[1];if(t!==null){t.click();e.scrollIntoView()}});n.insertAdjacentElement("beforeend",l)}};const l=e.querySelector(".panel-area");if(l===null){console.log(e)}if(l.childElementCount===0){const e=Observer.childList(l,n=>{if(n.length>0){t(l);e.forEach(e=>e.stop())}})}else{t(l)}};Observer.childList(e,()=>e.querySelectorAll("div.card").forEach(l))})()}}})(); diff --git a/min/bundle.json b/min/bundle.json index b0712af8e..487580741 100644 --- a/min/bundle.json +++ b/min/bundle.json @@ -51,9 +51,9 @@ "expand-description.min.js": "A56857AD6B1C9F431B233D188E857D30DD5A2EB644986DE32A21280B1B7BC7A7", "favorites-redirect.min.js": "70D6ECCE0402AA76387D2A3288C1148C60CC88D5378B7A2BDC813F3F78E4EE84", "feeds-apis.min.js": "2C704CF50C6F2C562AC2FCD7E6C9706E63E109D2FB4A6836BFE316C34D4A4FCE", - "feeds-filter-card.vue.min.js": "9B3B09C62982448CE4175FE7339585F31E14DE19D4F794C6BB65C45126DD143E", + "feeds-filter-card.vue.min.js": "B7D084FC44D0C57D3A0BC88016DE103780A51AEE3D5294628210F00F8946FD72", "feeds-filter.min.js": "C5781B8313AFDE875CE65C7BDF2C6D545847E2A29EC98BA4CD55C0F802567228", - "filter-type-switch.vue.min.js": "7FEA6617256698891A5282F18F4ECAAC910586FA582384D054133A43E186E88A", + "filter-type-switch.vue.min.js": "86F40D40C2464A56A2A0D32A0B94860DD376D1FE7850836B4CE37B767312BBE7", "fix-fullscreen.min.js": "C0628A7CABB4421FCBD7663700EF9965C96F6D79979B9F7523A9F9B0B009C8B6", "fold-comment.min.css": "74DF4566EB80AD7078E65E8B68633E05FC41D3B4E47A20D6E415E8A743F35378", "fold-comment.min.js": "B149A9A8EA03DCB39BC4FF59591BE9D8E7BA45B2049A545F9611251EBE85FEA9", diff --git a/min/bundle.zip b/min/bundle.zip index 972bda10004f13f36e9011f8bf3a58b6f22bedc2..e0b88587e2033078869524dc27ea072dba4a750e 100644 GIT binary patch delta 3216 zcma)84Qx}_6?UG1AK&s^n-i8W;@G1U9dy^SZVcq(lFD`t+tyarMxv$8Nm&^O63YRYmw! z72w-gzu=Q)Z;%%hF5(FL6kJ4kyehHBwmE`Q#A^<-Qji_BGkco3joxr|G#c*gtm6HW z$SS-daNeP9Jva8g%PJegoVO*wv#9E7w(2cxjbGsX%}&v$@NJwozzLkf)y1<~!?x59XkCw zTeQBTqa(k_9Lub59SY)ZkuZ-};Baq=^?jF4o1)4|l*9emV!b{j{h1pD7vI#LjNG?5Af~5^-dYC@EGC z*AiAX+M;oPN28=DQi~_ykjaeNvZL9fUAMkx11}Aw8&auI8E+cZ98+Q^u*{tZqB!6gaU-2|3(0 z8?5B$GDmE_pX6ml?WxtAIG{Mo%(hNWkh!Sh#5ruiVSp_?JWyF- zBVI0kZcAdsS@EDz-{KXpQ7~y@)5Ogm`(BXR=cc#~?@SZd+%kecae^ zn`}|^;w+ZDi5|S@7g__HY~^eZ2Mf2#A>8haIgHJ)*KEev?LNgH@owIG3qVC36-DniM}RIEk|q>gan31)bPt7JqJ#5bnbHdXim=$oKELsv#zs` z!S$HU_D8~b)LfAFjX@7LINFAsx#iGhLSc{=lPlv?fS(0v6DkIRw3Jo(c+g%Bk|f$N z;Ax_dCr#aVvTjvVHv8Ox$r{apfqNlZN5Pj>lXH_gVf_nq7O>59JFK=RWy4@IZGnR~ zwWfq>Ynwo$=ulEo(om+Nq@zqj$v~No!l38}+605C4D#HmJ-dHB{b4=*%VysM|k+v)N=J)&CMu zIb;#_@yoC@hty6wy`9#;^jGmIJYXk!_%Mf3Go3AE?Y=8 zxEL}C8fFnA^;H!_XOU{{4zCWbmFs4JEsLbV)maFlsTv;4!UFzU4K*yOO`Bg658+Ux zFkG_}BfQ6=+45RAk80|bWuVI=-jwX+It}lhFTw@~$%0TGn&cjVZKz5W%GIqKDqCn(c1>Y52} zJBgiAB5{jrPExMb_32?}_!}{?&ynYmXML2Q?e*uSz@c8Y549yNNyJ#wEQ5 z-@gP2d)?^Wqk};=si5);;hvi;rOw4xBQz9akUb@^vlwY-tAtC%NH^O;$S5K6smKag zQ9>$GE9i5dkWsV0rVb@vL3yLZ>!jra%? z)5dBHv?V0@#G{gNmAX)4LU4SlJq}Dn7-psFD7@2Qm%a-Q6V~SHx9#bHi4b&)2#+sDvHA zT#XSQtD%Fog@r5_{7jwI9qI6ftv4yPO=~+9HziafA+HiH^x&AE1u*n{vNX6%Wyj-E zKc*tI1vmFynWoWP8Jr$uS|P3*8#b`p&>Ui2{Viu^p(!Cg5u+hy!TL{<())v_Gp5O9 zrA0Sr*F%i;?|WxPEM9&yzN0?O2wFliA%&1iNFz)qq!Tg-I)Z+%J}emzkYj^ua=33= z+Ei!oo{8TlmbNpjQJI9L**wKGMK(z{Xm0&3cc3emFBXymIF-vASYnWA)&+bX8LwyY z9L&k%Mqyl&F6?3k z{6C+kBcX?-r%oPg-Og~ahjGBhr{lDl8^!Nqp)CAh<`&WW8;0gymW^j@lz91UB8&3l|}db3O7GYo!^J%32oOpeU+*&x#mj&XFmU6@R@!>2%3Unq!pX zxyiTQ?@~7U3b`%uU`2BDK)jvHC45xKjcL8}CnBnKONZRLGPc=V#EnVMHqwGSpyE}D zXJHM61X~lf6>+=p`ET)Z5pNWBJo&VR*QW(`6VvZ%SLBUer3*vF#8)ib$cFaNg6dH= zq1i&Vzp#IbrqMrP$U@oT4&s`H*CrOeoUHMCyfF!MUOZM7^X#e&u_YUT5U znO(@A%NGhqH)H)=+PZTa251yJx9iZ-qsu~SDYpoZJ_dU!NgLgTEv3{4qdhng9WOnB zA4~Znq3h}BI0LK8c!}`SZaiK_&2jf1@MalrOgr#LohIxKDT*5I2t<%kK$caOlV$%o zG-Y9;YpTxZq|C{#as6|G67c!fy0A}<7N2%%M_#3{;tIJtVy>R7r7C}0&a;IRCy`M> z&n|FUhhLo28Ii>4>JL}Y)ho{6*$UFt@)|y@;0wj9cXjyj0#WX)q*rj^nhqyLy%9SN z^iKa=NxA-Z2U@DAllLyyr{V)53GOA)NER{+=((0vQPS4CqLD`7(E1qnU=^i6MN z6~9w397b_9op|9e0@b`B{qo=Sny}X&^m*59mOBD|4CPQQ&K}p_+Tvdy#W&UD$X|}( zk$F_piL=H}P2reNMAsIIWB<})!yEccjLze-xa;i1Y)0(P7Y$UC@i+D9>67K0H9`V> za8*$uCpt4=qkEng@wkoK#rw<>8Z6Sx*w5w*8~tp)jfHMQk)51LZInXF+A^}(UhR1UqRG+wJGUs9lA}9MpHWw_(^po#a~s=A=~b z?!rTc&mor zB`p3QjI}f$cps~4Y5n>Y?5(ArSH)Faq_}wcngmlFuNU|IBw=R)&x_Tkua0uI$KzNX LHz!z9I92Iqdrx?S diff --git a/min/feeds-filter-card.vue.min.js b/min/feeds-filter-card.vue.min.js index bcc279753..292c7763f 100644 --- a/min/feeds-filter-card.vue.min.js +++ b/min/feeds-filter-card.vue.min.js @@ -1 +1 @@ -(()=>{return(e,t)=>{const d=`

动态过滤

类型

`;t.applyStyleFromText(`body.feeds-filter-block-audio .feed-card .card[data-type="256"],body.feeds-filter-block-bangumi .feed-card .card[data-type="512"],body.feeds-filter-block-column .feed-card .card[data-type="64"],body.feeds-filter-block-miniVideo .feed-card .card[data-type="16"],body.feeds-filter-block-repost .feed-card .card[data-type="1"],body.feeds-filter-block-share .feed-card .card[data-type="2048"],body.feeds-filter-block-text .feed-card .card[data-type="4"],body.feeds-filter-block-textWithImages .feed-card .card[data-type="2"],body.feeds-filter-block-video .feed-card .card[data-type="8"]{display:none!important}.feeds-filter{background-color:#fff;width:100%;padding:12px 16px;float:left;border-radius:4px;margin-top:8px;box-sizing:border-box;display:flex;flex-direction:column}.feeds-filter,.feeds-filter *{transition:.2s ease-out}body.dark .feeds-filter{color:#eee;background-color:#444}.feeds-filter h1{font-weight:400;font-size:14px;margin:0 0 14px}.feeds-filter h2{font-weight:700;font-size:12px;margin:0 0 12px}.feeds-filter .filter-types{display:flex;flex-wrap:wrap;justify-content:space-between}.feeds-filter .filter-types .filter-type-switch{flex:0 0 49%}.feeds-filter .filter-types .filter-type-switch:not(:last-child){margin-bottom:4px}`,"feeds-filter-card-style");return{export:Object.assign({template:d},{components:{FilterTypeSwitch:()=>t.importAsync("filter-type-switch.vue")},methods:{updateCard(t){if(e.feedsFilterPatterns.some(e=>{if(e instanceof RegExp){return e.test(t.text)}return t.text.includes(e)})){t.element.style.display="none"}else{t.element.style.display="block"}}},data(){return{allTypes:[]}},async mounted(){const{feedsCardsManager:e,feedsCardTypes:d}=await t.importAsync("feeds-apis");const a=await e.startWatching();if(!a){console.error("feedsCardsManager.startWatching() failed!")}this.allTypes=Object.entries(d);e.cards.forEach(e=>this.updateCard(e));e.addEventListener("addCard",e=>{const t=e.detail;this.updateCard(t)})}})}}})(); \ No newline at end of file +(()=>{return(e,t)=>{const r=`

动态过滤

类型

关键词

{{p}}
`;t.applyStyleFromText(`body .feed-card .card.pattern-block,body.feeds-filter-block-audio .feed-card .card[data-type="256"],body.feeds-filter-block-bangumi .feed-card .card[data-type="512"],body.feeds-filter-block-column .feed-card .card[data-type="64"],body.feeds-filter-block-miniVideo .feed-card .card[data-type="16"],body.feeds-filter-block-repost .feed-card .card[data-type="1"],body.feeds-filter-block-share .feed-card .card[data-type="2048"],body.feeds-filter-block-text .feed-card .card[data-type="4"],body.feeds-filter-block-textWithImages .feed-card .card[data-type="2"],body.feeds-filter-block-video .feed-card .card[data-type="8"]{display:none!important}.feeds-filter{background-color:#fff;width:100%;padding:12px 16px;float:left;border-radius:4px;margin-top:8px;box-sizing:border-box;display:flex;flex-direction:column}.feeds-filter,.feeds-filter *{transition:.2s ease-out}body.dark .feeds-filter{color:#eee;background-color:#444}.feeds-filter h1{font-weight:400;font-size:14px;margin:0 0 14px}.feeds-filter h2{font-weight:700;font-size:13px;margin:0 0 8px}.feeds-filter .filter-types{display:flex;flex-wrap:wrap;justify-content:space-between;margin-bottom:18px}.feeds-filter .filter-types .filter-type-switch{flex:0 0 49%}.feeds-filter .filter-types .filter-type-switch:not(:last-child){margin-bottom:4px}.feeds-filter .filter-patterns:not(:empty){margin-bottom:8px}.feeds-filter .filter-patterns .pattern{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;border-radius:4px;background-color:#0001;font-size:12px}.feeds-filter .filter-patterns .pattern:not(:last-child){margin-bottom:4px}.feeds-filter .filter-patterns .pattern .be-icon{font-size:18px;cursor:pointer}.feeds-filter .add-pattern{display:flex;align-items:center}.feeds-filter .add-pattern input{color:inherit;background-color:transparent;font-size:12px;border:1px solid #8884;border-radius:4px;outline:0!important;padding:4px;flex:1 0 0;width:0}.feeds-filter .add-pattern input:focus{border-color:var(--theme-color)}.feeds-filter .add-pattern .be-icon{font-size:18px;cursor:pointer;margin-left:8px}`,"feeds-filter-card-style");return{export:Object.assign({template:r},{components:{FilterTypeSwitch:()=>t.importAsync("filter-type-switch.vue"),Icon:()=>t.importAsync("icon.vue")},methods:{updateCard(t){if(e.feedsFilterPatterns.some(e=>{if(e.startsWith("/")&&e.endsWith("/")){return new RegExp(e.slice(1,e.length-1)).test(t.text)}return t.text.includes(e)})){t.element.classList.add("pattern-block")}else{t.element.classList.remove("pattern-block")}},deletePattern(t){const r=e.feedsFilterPatterns.indexOf(t);if(r!==-1){this.patterns.splice(r,1)}},addPattern(e){if(e&&!this.patterns.includes(e)){this.patterns.push(e)}this.newPattern=""}},watch:{patterns(){e.feedsFilterPatterns=this.patterns;if(this.feedsCardsManager!==null){this.feedsCardsManager.cards.forEach(e=>this.updateCard(e))}}},data(){return{allTypes:[],patterns:[...e.feedsFilterPatterns],newPattern:"",feedsCardsManager:null}},async mounted(){const{feedsCardsManager:e,feedsCardTypes:r}=await t.importAsync("feeds-apis");const a=await e.startWatching();if(!a){console.error("feedsCardsManager.startWatching() failed!");return}this.allTypes=Object.entries(r);e.cards.forEach(e=>this.updateCard(e));e.addEventListener("addCard",e=>{const t=e.detail;this.updateCard(t)});this.feedsCardsManager=e}})}}})(); \ No newline at end of file diff --git a/min/filter-type-switch.vue.min.js b/min/filter-type-switch.vue.min.js index 3073669f8..74c928913 100644 --- a/min/filter-type-switch.vue.min.js +++ b/min/filter-type-switch.vue.min.js @@ -1 +1 @@ -(()=>{return(e,t)=>{const i=`
`;t.applyStyleFromText(`.filter-type-switch label{cursor:pointer;margin:0;padding:4px 8px;border-radius:4px;background-color:#0001;display:flex;align-items:center;justify-content:space-between}.filter-type-switch label .name{font-size:12px}.filter-type-switch label .disabled{color:var(--theme-color)!important}.filter-type-switch label:not(.disabled):hover{background-color:#0002}.filter-type-switch label.disabled{background-color:var(--theme-color-10)}.filter-type-switch label.disabled:hover{background-color:var(--theme-color-20)}.filter-type-switch label input{display:none}.filter-type-switch label .be-icon{font-size:16px}`,"filter-type-switch-style");return{export:Object.assign({template:i},{components:{Icon:()=>t.importAsync("icon.vue")},props:["name","type"],methods:{setFilter(t,i=true){document.body.classList[t?"add":"remove"](`feeds-filter-block-${this.name}`);if(!i){return}if(t){e.feedsFilterTypes.push(this.type.id)}else{const t=e.feedsFilterTypes.indexOf(this.type.id);if(t!==-1){e.feedsFilterTypes.splice(t,1)}}e.feedsFilterTypes=e.feedsFilterTypes}},data(){const t=e.feedsFilterTypes.includes(this.type.id);this.setFilter(t,false);return{disabled:t}},watch:{disabled(e){this.setFilter(e)}}})}}})(); \ No newline at end of file +(()=>{return(e,t)=>{const i=`
`;t.applyStyleFromText(`.filter-type-switch label{cursor:pointer;margin:0;padding:4px 8px;border-radius:4px;background-color:#0001;display:flex;align-items:center;justify-content:space-between;border:1px solid transparent}.filter-type-switch label .name{font-size:12px}.filter-type-switch label .disabled{color:var(--theme-color)!important}.filter-type-switch label:hover{background-color:#0002}.filter-type-switch label.disabled{border-color:var(--theme-color)}.filter-type-switch label input{display:none}.filter-type-switch label .be-icon{font-size:16px}`,"filter-type-switch-style");return{export:Object.assign({template:i},{components:{Icon:()=>t.importAsync("icon.vue")},props:["name","type"],methods:{setFilter(t,i=true){document.body.classList[t?"add":"remove"](`feeds-filter-block-${this.name}`);if(!i){return}if(t){e.feedsFilterTypes.push(this.type.id)}else{const t=e.feedsFilterTypes.indexOf(this.type.id);if(t!==-1){e.feedsFilterTypes.splice(t,1)}}e.feedsFilterTypes=e.feedsFilterTypes}},data(){const t=e.feedsFilterTypes.includes(this.type.id);this.setFilter(t,false);return{disabled:t}},watch:{disabled(e){this.setFilter(e)}}})}}})(); \ No newline at end of file diff --git a/src/activity/feeds-filter/feeds-filter-card.vue b/src/activity/feeds-filter/feeds-filter-card.vue index 91398e5a1..45df95512 100644 --- a/src/activity/feeds-filter/feeds-filter-card.vue +++ b/src/activity/feeds-filter/feeds-filter-card.vue @@ -5,6 +5,17 @@
+

关键词

+
+
+ {{p}} + +
+
+
+ + +
@@ -12,27 +23,53 @@ import { FeedsCard, FeedsCardType } from '../feeds-apis' export default { components: { - FilterTypeSwitch: () => import('./filter-type-switch.vue') + FilterTypeSwitch: () => import('./filter-type-switch.vue'), + Icon: () => import('../../style/icon.vue') }, methods: { updateCard(card: FeedsCard) { if ( settings.feedsFilterPatterns.some(pattern => { - if (pattern instanceof RegExp) { - return pattern.test(card.text) + if (pattern.startsWith('/') && pattern.endsWith('/')) { + return new RegExp(pattern.slice(1, pattern.length - 1)).test(card.text) } return card.text.includes(pattern) }) ) { - card.element.style.display = 'none' + card.element.classList.add('pattern-block') } else { - card.element.style.display = 'block' + card.element.classList.remove('pattern-block') + } + }, + deletePattern(pattern: Pattern) { + const index = settings.feedsFilterPatterns.indexOf(pattern) + if (index !== -1) { + this.patterns.splice(index, 1) + } + }, + addPattern(pattern: Pattern) { + if (pattern && !this.patterns.includes(pattern)) { + this.patterns.push(pattern) + } + this.newPattern = '' + } + }, + watch: { + patterns() { + settings.feedsFilterPatterns = this.patterns + if (this.feedsCardsManager !== null) { + this.feedsCardsManager.cards.forEach((card: FeedsCard) => + this.updateCard(card) + ) } } }, data() { return { - allTypes: [] as [string, FeedsCardType][] + allTypes: [] as [string, FeedsCardType][], + patterns: [...settings.feedsFilterPatterns], + newPattern: '', + feedsCardsManager: null } }, async mounted() { @@ -40,6 +77,7 @@ export default { const success = await feedsCardsManager.startWatching() if (!success) { console.error('feedsCardsManager.startWatching() failed!') + return } this.allTypes = Object.entries(feedsCardTypes) feedsCardsManager.cards.forEach(card => this.updateCard(card)) @@ -47,6 +85,7 @@ export default { const card = e.detail as FeedsCard this.updateCard(card) }) + this.feedsCardsManager = feedsCardsManager } } @@ -71,6 +110,9 @@ body { display: none !important; } } + .feed-card .card.pattern-block { + display: none !important; + } } .feeds-filter { background-color: white; @@ -83,8 +125,9 @@ body { display: flex; flex-direction: column; - &, & * { - transition: .2s ease-out; + &, + & * { + transition: 0.2s ease-out; } body.dark & { color: #eee; @@ -93,21 +136,20 @@ body { h1 { font-weight: normal; font-size: 14px; - margin: 0 { - bottom: 14px; - } + margin: 0; + margin-bottom: 14px; } h2 { font-weight: bold; - font-size: 12px; - margin: 0 { - bottom: 12px; - } + font-size: 13px; + margin: 0; + margin-bottom: 8px; } .filter-types { display: flex; flex-wrap: wrap; justify-content: space-between; + margin-bottom: 18px; .filter-type-switch { flex: 0 0 49%; &:not(:last-child) { @@ -115,5 +157,49 @@ body { } } } + .filter-patterns { + &:not(:empty) { + margin-bottom: 8px; + } + .pattern { + display: flex; + align-items: center; + justify-content: space-between; + padding: 4px 8px; + border-radius: 4px; + background-color: #0001; + font-size: 12px; + &:not(:last-child) { + margin-bottom: 4px; + } + .be-icon { + font-size: 18px; + cursor: pointer; + } + } + } + .add-pattern { + display: flex; + align-items: center; + input { + color: inherit; + background-color: transparent; + font-size: 12px; + border: 1px solid #8884; + border-radius: 4px; + outline: none !important; + padding: 4px; + flex: 1 0 0; + width: 0; + &:focus { + border-color: var(--theme-color); + } + } + .be-icon { + font-size: 18px; + cursor: pointer; + margin-left: 8px; + } + } } \ No newline at end of file