diff --git a/bilibili-evolved.offline.user.js b/bilibili-evolved.offline.user.js index 201c08188..7fbcb03d6 100644 --- a/bilibili-evolved.offline.user.js +++ b/bilibili-evolved.offline.user.js @@ -1,6 +1,6 @@ // ==UserScript== // @name Bilibili Evolved (Offline) -// @version 468.18 +// @version 468.25 // @description Bilibili Evolved 的离线版, 所有功能都已内置于脚本中. // @author Grant Howard, Coulomb-G // @copyright 2019, Grant Howard (https://github.com/the1812) & Coulomb-G (https://github.com/Coulomb-G) @@ -1092,7 +1092,7 @@ offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/m offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/expand-description.min.css"] = `.play-up-info .play-up-self,.video-desc .info{height:auto!important}.play-up-info .play-up-self-btn,.video-desc .btn{display:none!important}`; 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 a={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 i extends EventTarget{constructor(){super(...arguments);this.cards=[]}addEventListener(e,t,a){super.addEventListener(e,t,a)}removeEventListener(e,t,a){super.removeEventListener(e,t,a)}async 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.stop();this.addCard(e)}})}else{const t=await this.parseCard(e);this.cards.push(t);const a=new CustomEvent("addCard",{detail:t});this.dispatchEvent(a)}}}async removeCard(e){if(e instanceof HTMLElement&&e.classList.contains("card")){const t=(await this.parseCard(e)).id;const a=this.cards.findIndex(e=>e.id===t);const i=this.cards[a];this.cards.splice(a,1);const n=new CustomEvent("removeCard",{detail:i});this.dispatchEvent(n)}}async parseCard(e){const t=async t=>{const a=await SpinQuery.condition(()=>e.querySelector(t),e=>e!==null);if(a===null){return""}return a.innerText};const i=async e=>{const a=parseInt(await t(e));if(isNaN(a)){return 0}return a};const n=(()=>{if(e.querySelector(".repost")){return a.repost}if(e.querySelector(".imagesbox")){return a.textWithImages}if(e.querySelector(".video-container")){return a.video}if(e.querySelector(".bangumi-container")){return a.bangumi}if(e.querySelector(".article-container")){return a.column}if(e.querySelector(".music-container")){return a.audio}if(e.querySelector(".h5share-container")){return a.share}if(e.querySelector(".vc-ctnr")){return a.miniVideo}return a.text})();const r={id:e.getAttribute("data-did"),username:await t(".main-content .user-name"),text:await t(".card-content .text.description"),reposts:await i(".button-bar .single-button:nth-child(1) .text-offset"),comments:await i(".button-bar .single-button:nth-child(2) .text-offset"),likes:await i(".button-bar .single-button:nth-child(3) .text-offset"),element:e,type:n};e.setAttribute("data-type",n.id.toString());return r}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 n=new i;const r=async(e="video")=>{const a=await Ajax.getJsonWithCredentials(`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=${getUID()}&type_list=${e==="video"?8:512}`);if(a.code!==0){throw new Error(a.message)}if(e==="video"){const{getWatchlaterList:e}=await t.importAsync("watchlater-api");const i=await e();return a.data.cards.map(e=>{const t=JSON.parse(e.card);const a=_.get(e,"display.topic_info.topic_details",[]).map(e=>{return{id:e.topic_id,name:e.topic_name}});return{id:e.desc.dynamic_id_str,aid:t.aid,title:t.title,upID:e.desc.user_profile.info.uid,upName:e.desc.user_profile.info.uname,upFaceUrl:e.desc.user_profile.info.face,coverUrl:t.pic,description:t.desc,timestamp:e.timestamp,time:new Date(e.timestamp*1e3),topics:a,dynamic:t.dynamic,like:formatCount(e.desc.like),duration:t.duration,durationText:formatDuration(t.duration,0),playCount:formatCount(t.stat.view),danmakuCount:formatCount(t.stat.danmaku),watchlater:i.includes(t.aid)}})}else if(e==="bangumi"){return a.data.cards.map(e=>{const t=JSON.parse(e.card);return{id:e.desc.dynamic_id_str,aid:t.aid,epID:t.episode_id,title:t.new_desc,upName:t.apiSeasonInfo.title,upFaceUrl:t.apiSeasonInfo.cover,coverUrl:t.cover,description:"",timestamp:e.timestamp,time:new Date(e.timestamp*1e3),like:formatCount(e.desc.like),durationText:"",playCount:formatCount(t.play_count),danmakuCount:formatCount(t.bullet_count),watchlater:false}})}else{return[]}};return{export:{feedsCardsManager:n,feedsCardTypes:a,getVideoFeeds:r}}}})(); +offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/feeds-apis.min.js"] = (()=>{return(e,t)=>{const a={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 i extends EventTarget{constructor(){super(...arguments);this.cards=[]}addEventListener(e,t,a){super.addEventListener(e,t,a)}removeEventListener(e,t,a){super.removeEventListener(e,t,a)}async 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.stop();this.addCard(e)}})}else{const t=await this.parseCard(e);this.cards.push(t);const a=new CustomEvent("addCard",{detail:t});this.dispatchEvent(a)}}}async removeCard(e){if(e instanceof HTMLElement&&e.classList.contains("card")){const t=(await this.parseCard(e)).id;const a=this.cards.findIndex(e=>e.id===t);const i=this.cards[a];this.cards.splice(a,1);const n=new CustomEvent("removeCard",{detail:i});this.dispatchEvent(n)}}async parseCard(e){const t=async t=>{const a=await SpinQuery.condition(()=>e.querySelector(t),e=>e!==null);if(a===null){console.warn(e,t);return""}return a.innerText};const i=async e=>{const a=parseInt(await t(e));if(isNaN(a)){return 0}return a};const n=(()=>{if(e.querySelector(".repost")){return a.repost}if(e.querySelector(".imagesbox")){return a.textWithImages}if(e.querySelector(".video-container")){return a.video}if(e.querySelector(".bangumi-container")){return a.bangumi}if(e.querySelector(".article-container")){return a.column}if(e.querySelector(".music-container")){return a.audio}if(e.querySelector(".h5share-container")){return a.share}if(e.querySelector(".vc-ctnr")){return a.miniVideo}return a.text})();const r={id:e.getAttribute("data-did"),username:await t(".main-content .user-name"),text:await t(".card-content .text.description,.video-container .title,.bangumi-container .title"),reposts:await i(".button-bar .single-button:nth-child(1) .text-offset"),comments:await i(".button-bar .single-button:nth-child(2) .text-offset"),likes:await i(".button-bar .single-button:nth-child(3) .text-offset"),element:e,type:n};e.setAttribute("data-type",n.id.toString());return r}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 n=new i;const r=async(e="video")=>{const a=await Ajax.getJsonWithCredentials(`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=${getUID()}&type_list=${e==="video"?8:512}`);if(a.code!==0){throw new Error(a.message)}if(e==="video"){const{getWatchlaterList:e}=await t.importAsync("watchlater-api");const i=await e();return a.data.cards.map(e=>{const t=JSON.parse(e.card);const a=_.get(e,"display.topic_info.topic_details",[]).map(e=>{return{id:e.topic_id,name:e.topic_name}});return{id:e.desc.dynamic_id_str,aid:t.aid,title:t.title,upID:e.desc.user_profile.info.uid,upName:e.desc.user_profile.info.uname,upFaceUrl:e.desc.user_profile.info.face,coverUrl:t.pic,description:t.desc,timestamp:e.timestamp,time:new Date(e.timestamp*1e3),topics:a,dynamic:t.dynamic,like:formatCount(e.desc.like),duration:t.duration,durationText:formatDuration(t.duration,0),playCount:formatCount(t.stat.view),danmakuCount:formatCount(t.stat.danmaku),watchlater:i.includes(t.aid)}})}else if(e==="bangumi"){return a.data.cards.map(e=>{const t=JSON.parse(e.card);return{id:e.desc.dynamic_id_str,aid:t.aid,epID:t.episode_id,title:t.new_desc,upName:t.apiSeasonInfo.title,upFaceUrl:t.apiSeasonInfo.cover,coverUrl:t.cover,description:"",timestamp:e.timestamp,time:new Date(e.timestamp*1e3),like:formatCount(e.desc.like),durationText:"",playCount:formatCount(t.play_count),danmakuCount:formatCount(t.bullet_count),watchlater:false}})}else{return[]}};return{export:{feedsCardsManager:n,feedsCardTypes:a,getVideoFeeds:r}}}})(); 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.enable-feeds-filter:not(.disable-feeds-filter) .feed-card .card.pattern-block,body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-block-audio .feed-card .card[data-type="256"],body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-block-bangumi .feed-card .card[data-type="512"],body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-block-column .feed-card .card[data-type="64"],body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-block-miniVideo .feed-card .card[data-type="16"],body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-block-repost .feed-card .card[data-type="1"],body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-block-share .feed-card .card[data-type="2048"],body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-block-text .feed-card .card[data-type="4"],body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-block-textWithImages .feed-card .card[data-type="2"],body.enable-feeds-filter:not(.disable-feeds-filter).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:none;flex-direction:column}body.enable-feeds-filter:not(.disable-feeds-filter) .feeds-filter{display:flex}.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){const r=(e,t)=>{if(e.startsWith("/")&&e.endsWith("/")){return new RegExp(e.slice(1,e.length-1)).test(t)}return t.includes(e)};const a=(()=>{return e.feedsFilterPatterns.some(e=>{const a=e.match(/(.+) up:([^ ]+)/);if(a){return r(a[1],t.text)&&r(a[2],t.username)}return r(e,t.text)})})();if(a){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 e=await SpinQuery.select(".feed-card .tab-bar");if(!e){console.error("tabBar not found");return}const r=e.querySelector(".tab:nth-child(2) .tab-text");Observer.attributes(r,()=>{document.body.classList[r.classList.contains("selected")?"add":"remove"]("enable-feeds-filter")});const{feedsCardsManager:a,feedsCardTypes:d}=await t.importAsync("feeds-apis");const i=await a.startWatching();if(!i){console.error("feedsCardsManager.startWatching() failed");return}this.allTypes=Object.entries(d);a.cards.forEach(e=>this.updateCard(e));a.addEventListener("addCard",e=>{const t=e.detail;this.updateCard(t)});this.feedsCardsManager=a}})}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/feeds-filter.min.js"] = (()=>{return(e,t)=>{(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:()=>t.importAsync("feeds-filter-card.vue")}})})();return{reload:()=>document.body.classList.remove("disable-feeds-filter"),unload:()=>document.body.classList.add("disable-feeds-filter")}}})(); 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)}}})}}})(); diff --git a/bilibili-evolved.preview-offline.user.js b/bilibili-evolved.preview-offline.user.js index 1b38bb414..b7b1518c8 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 468.18 +// @version 468.25 // @description Bilibili Evolved 的预览离线版, 可以抢先体验新功能, 并且所有功能都已内置于脚本中. // @author Grant Howard, Coulomb-G // @copyright 2019, Grant Howard (https://github.com/the1812) & Coulomb-G (https://github.com/Coulomb-G) @@ -1092,7 +1092,7 @@ offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/m offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/expand-description.min.css"] = `.play-up-info .play-up-self,.video-desc .info{height:auto!important}.play-up-info .play-up-self-btn,.video-desc .btn{display:none!important}`; 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 a={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 i extends EventTarget{constructor(){super(...arguments);this.cards=[]}addEventListener(e,t,a){super.addEventListener(e,t,a)}removeEventListener(e,t,a){super.removeEventListener(e,t,a)}async 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.stop();this.addCard(e)}})}else{const t=await this.parseCard(e);this.cards.push(t);const a=new CustomEvent("addCard",{detail:t});this.dispatchEvent(a)}}}async removeCard(e){if(e instanceof HTMLElement&&e.classList.contains("card")){const t=(await this.parseCard(e)).id;const a=this.cards.findIndex(e=>e.id===t);const i=this.cards[a];this.cards.splice(a,1);const n=new CustomEvent("removeCard",{detail:i});this.dispatchEvent(n)}}async parseCard(e){const t=async t=>{const a=await SpinQuery.condition(()=>e.querySelector(t),e=>e!==null);if(a===null){return""}return a.innerText};const i=async e=>{const a=parseInt(await t(e));if(isNaN(a)){return 0}return a};const n=(()=>{if(e.querySelector(".repost")){return a.repost}if(e.querySelector(".imagesbox")){return a.textWithImages}if(e.querySelector(".video-container")){return a.video}if(e.querySelector(".bangumi-container")){return a.bangumi}if(e.querySelector(".article-container")){return a.column}if(e.querySelector(".music-container")){return a.audio}if(e.querySelector(".h5share-container")){return a.share}if(e.querySelector(".vc-ctnr")){return a.miniVideo}return a.text})();const r={id:e.getAttribute("data-did"),username:await t(".main-content .user-name"),text:await t(".card-content .text.description"),reposts:await i(".button-bar .single-button:nth-child(1) .text-offset"),comments:await i(".button-bar .single-button:nth-child(2) .text-offset"),likes:await i(".button-bar .single-button:nth-child(3) .text-offset"),element:e,type:n};e.setAttribute("data-type",n.id.toString());return r}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 n=new i;const r=async(e="video")=>{const a=await Ajax.getJsonWithCredentials(`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=${getUID()}&type_list=${e==="video"?8:512}`);if(a.code!==0){throw new Error(a.message)}if(e==="video"){const{getWatchlaterList:e}=await t.importAsync("watchlater-api");const i=await e();return a.data.cards.map(e=>{const t=JSON.parse(e.card);const a=_.get(e,"display.topic_info.topic_details",[]).map(e=>{return{id:e.topic_id,name:e.topic_name}});return{id:e.desc.dynamic_id_str,aid:t.aid,title:t.title,upID:e.desc.user_profile.info.uid,upName:e.desc.user_profile.info.uname,upFaceUrl:e.desc.user_profile.info.face,coverUrl:t.pic,description:t.desc,timestamp:e.timestamp,time:new Date(e.timestamp*1e3),topics:a,dynamic:t.dynamic,like:formatCount(e.desc.like),duration:t.duration,durationText:formatDuration(t.duration,0),playCount:formatCount(t.stat.view),danmakuCount:formatCount(t.stat.danmaku),watchlater:i.includes(t.aid)}})}else if(e==="bangumi"){return a.data.cards.map(e=>{const t=JSON.parse(e.card);return{id:e.desc.dynamic_id_str,aid:t.aid,epID:t.episode_id,title:t.new_desc,upName:t.apiSeasonInfo.title,upFaceUrl:t.apiSeasonInfo.cover,coverUrl:t.cover,description:"",timestamp:e.timestamp,time:new Date(e.timestamp*1e3),like:formatCount(e.desc.like),durationText:"",playCount:formatCount(t.play_count),danmakuCount:formatCount(t.bullet_count),watchlater:false}})}else{return[]}};return{export:{feedsCardsManager:n,feedsCardTypes:a,getVideoFeeds:r}}}})(); +offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/feeds-apis.min.js"] = (()=>{return(e,t)=>{const a={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 i extends EventTarget{constructor(){super(...arguments);this.cards=[]}addEventListener(e,t,a){super.addEventListener(e,t,a)}removeEventListener(e,t,a){super.removeEventListener(e,t,a)}async 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.stop();this.addCard(e)}})}else{const t=await this.parseCard(e);this.cards.push(t);const a=new CustomEvent("addCard",{detail:t});this.dispatchEvent(a)}}}async removeCard(e){if(e instanceof HTMLElement&&e.classList.contains("card")){const t=(await this.parseCard(e)).id;const a=this.cards.findIndex(e=>e.id===t);const i=this.cards[a];this.cards.splice(a,1);const n=new CustomEvent("removeCard",{detail:i});this.dispatchEvent(n)}}async parseCard(e){const t=async t=>{const a=await SpinQuery.condition(()=>e.querySelector(t),e=>e!==null);if(a===null){console.warn(e,t);return""}return a.innerText};const i=async e=>{const a=parseInt(await t(e));if(isNaN(a)){return 0}return a};const n=(()=>{if(e.querySelector(".repost")){return a.repost}if(e.querySelector(".imagesbox")){return a.textWithImages}if(e.querySelector(".video-container")){return a.video}if(e.querySelector(".bangumi-container")){return a.bangumi}if(e.querySelector(".article-container")){return a.column}if(e.querySelector(".music-container")){return a.audio}if(e.querySelector(".h5share-container")){return a.share}if(e.querySelector(".vc-ctnr")){return a.miniVideo}return a.text})();const r={id:e.getAttribute("data-did"),username:await t(".main-content .user-name"),text:await t(".card-content .text.description,.video-container .title,.bangumi-container .title"),reposts:await i(".button-bar .single-button:nth-child(1) .text-offset"),comments:await i(".button-bar .single-button:nth-child(2) .text-offset"),likes:await i(".button-bar .single-button:nth-child(3) .text-offset"),element:e,type:n};e.setAttribute("data-type",n.id.toString());return r}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 n=new i;const r=async(e="video")=>{const a=await Ajax.getJsonWithCredentials(`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=${getUID()}&type_list=${e==="video"?8:512}`);if(a.code!==0){throw new Error(a.message)}if(e==="video"){const{getWatchlaterList:e}=await t.importAsync("watchlater-api");const i=await e();return a.data.cards.map(e=>{const t=JSON.parse(e.card);const a=_.get(e,"display.topic_info.topic_details",[]).map(e=>{return{id:e.topic_id,name:e.topic_name}});return{id:e.desc.dynamic_id_str,aid:t.aid,title:t.title,upID:e.desc.user_profile.info.uid,upName:e.desc.user_profile.info.uname,upFaceUrl:e.desc.user_profile.info.face,coverUrl:t.pic,description:t.desc,timestamp:e.timestamp,time:new Date(e.timestamp*1e3),topics:a,dynamic:t.dynamic,like:formatCount(e.desc.like),duration:t.duration,durationText:formatDuration(t.duration,0),playCount:formatCount(t.stat.view),danmakuCount:formatCount(t.stat.danmaku),watchlater:i.includes(t.aid)}})}else if(e==="bangumi"){return a.data.cards.map(e=>{const t=JSON.parse(e.card);return{id:e.desc.dynamic_id_str,aid:t.aid,epID:t.episode_id,title:t.new_desc,upName:t.apiSeasonInfo.title,upFaceUrl:t.apiSeasonInfo.cover,coverUrl:t.cover,description:"",timestamp:e.timestamp,time:new Date(e.timestamp*1e3),like:formatCount(e.desc.like),durationText:"",playCount:formatCount(t.play_count),danmakuCount:formatCount(t.bullet_count),watchlater:false}})}else{return[]}};return{export:{feedsCardsManager:n,feedsCardTypes:a,getVideoFeeds:r}}}})(); 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.enable-feeds-filter:not(.disable-feeds-filter) .feed-card .card.pattern-block,body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-block-audio .feed-card .card[data-type="256"],body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-block-bangumi .feed-card .card[data-type="512"],body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-block-column .feed-card .card[data-type="64"],body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-block-miniVideo .feed-card .card[data-type="16"],body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-block-repost .feed-card .card[data-type="1"],body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-block-share .feed-card .card[data-type="2048"],body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-block-text .feed-card .card[data-type="4"],body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-block-textWithImages .feed-card .card[data-type="2"],body.enable-feeds-filter:not(.disable-feeds-filter).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:none;flex-direction:column}body.enable-feeds-filter:not(.disable-feeds-filter) .feeds-filter{display:flex}.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){const r=(e,t)=>{if(e.startsWith("/")&&e.endsWith("/")){return new RegExp(e.slice(1,e.length-1)).test(t)}return t.includes(e)};const a=(()=>{return e.feedsFilterPatterns.some(e=>{const a=e.match(/(.+) up:([^ ]+)/);if(a){return r(a[1],t.text)&&r(a[2],t.username)}return r(e,t.text)})})();if(a){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 e=await SpinQuery.select(".feed-card .tab-bar");if(!e){console.error("tabBar not found");return}const r=e.querySelector(".tab:nth-child(2) .tab-text");Observer.attributes(r,()=>{document.body.classList[r.classList.contains("selected")?"add":"remove"]("enable-feeds-filter")});const{feedsCardsManager:a,feedsCardTypes:d}=await t.importAsync("feeds-apis");const i=await a.startWatching();if(!i){console.error("feedsCardsManager.startWatching() failed");return}this.allTypes=Object.entries(d);a.cards.forEach(e=>this.updateCard(e));a.addEventListener("addCard",e=>{const t=e.detail;this.updateCard(t)});this.feedsCardsManager=a}})}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/feeds-filter.min.js"] = (()=>{return(e,t)=>{(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:()=>t.importAsync("feeds-filter-card.vue")}})})();return{reload:()=>document.body.classList.remove("disable-feeds-filter"),unload:()=>document.body.classList.add("disable-feeds-filter")}}})(); 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)}}})}}})(); diff --git a/bilibili-evolved.preview.user.js b/bilibili-evolved.preview.user.js index 0ad81a102..a46493c82 100644 --- a/bilibili-evolved.preview.user.js +++ b/bilibili-evolved.preview.user.js @@ -1091,7 +1091,7 @@ onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/m onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/expand-description.min.css"] = `.play-up-info .play-up-self,.video-desc .info{height:auto!important}.play-up-info .play-up-self-btn,.video-desc .btn{display:none!important}`; 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 a={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 i extends EventTarget{constructor(){super(...arguments);this.cards=[]}addEventListener(e,t,a){super.addEventListener(e,t,a)}removeEventListener(e,t,a){super.removeEventListener(e,t,a)}async 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.stop();this.addCard(e)}})}else{const t=await this.parseCard(e);this.cards.push(t);const a=new CustomEvent("addCard",{detail:t});this.dispatchEvent(a)}}}async removeCard(e){if(e instanceof HTMLElement&&e.classList.contains("card")){const t=(await this.parseCard(e)).id;const a=this.cards.findIndex(e=>e.id===t);const i=this.cards[a];this.cards.splice(a,1);const n=new CustomEvent("removeCard",{detail:i});this.dispatchEvent(n)}}async parseCard(e){const t=async t=>{const a=await SpinQuery.condition(()=>e.querySelector(t),e=>e!==null);if(a===null){return""}return a.innerText};const i=async e=>{const a=parseInt(await t(e));if(isNaN(a)){return 0}return a};const n=(()=>{if(e.querySelector(".repost")){return a.repost}if(e.querySelector(".imagesbox")){return a.textWithImages}if(e.querySelector(".video-container")){return a.video}if(e.querySelector(".bangumi-container")){return a.bangumi}if(e.querySelector(".article-container")){return a.column}if(e.querySelector(".music-container")){return a.audio}if(e.querySelector(".h5share-container")){return a.share}if(e.querySelector(".vc-ctnr")){return a.miniVideo}return a.text})();const r={id:e.getAttribute("data-did"),username:await t(".main-content .user-name"),text:await t(".card-content .text.description"),reposts:await i(".button-bar .single-button:nth-child(1) .text-offset"),comments:await i(".button-bar .single-button:nth-child(2) .text-offset"),likes:await i(".button-bar .single-button:nth-child(3) .text-offset"),element:e,type:n};e.setAttribute("data-type",n.id.toString());return r}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 n=new i;const r=async(e="video")=>{const a=await Ajax.getJsonWithCredentials(`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=${getUID()}&type_list=${e==="video"?8:512}`);if(a.code!==0){throw new Error(a.message)}if(e==="video"){const{getWatchlaterList:e}=await t.importAsync("watchlater-api");const i=await e();return a.data.cards.map(e=>{const t=JSON.parse(e.card);const a=_.get(e,"display.topic_info.topic_details",[]).map(e=>{return{id:e.topic_id,name:e.topic_name}});return{id:e.desc.dynamic_id_str,aid:t.aid,title:t.title,upID:e.desc.user_profile.info.uid,upName:e.desc.user_profile.info.uname,upFaceUrl:e.desc.user_profile.info.face,coverUrl:t.pic,description:t.desc,timestamp:e.timestamp,time:new Date(e.timestamp*1e3),topics:a,dynamic:t.dynamic,like:formatCount(e.desc.like),duration:t.duration,durationText:formatDuration(t.duration,0),playCount:formatCount(t.stat.view),danmakuCount:formatCount(t.stat.danmaku),watchlater:i.includes(t.aid)}})}else if(e==="bangumi"){return a.data.cards.map(e=>{const t=JSON.parse(e.card);return{id:e.desc.dynamic_id_str,aid:t.aid,epID:t.episode_id,title:t.new_desc,upName:t.apiSeasonInfo.title,upFaceUrl:t.apiSeasonInfo.cover,coverUrl:t.cover,description:"",timestamp:e.timestamp,time:new Date(e.timestamp*1e3),like:formatCount(e.desc.like),durationText:"",playCount:formatCount(t.play_count),danmakuCount:formatCount(t.bullet_count),watchlater:false}})}else{return[]}};return{export:{feedsCardsManager:n,feedsCardTypes:a,getVideoFeeds:r}}}})(); +onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/feeds-apis.min.js"] = (()=>{return(e,t)=>{const a={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 i extends EventTarget{constructor(){super(...arguments);this.cards=[]}addEventListener(e,t,a){super.addEventListener(e,t,a)}removeEventListener(e,t,a){super.removeEventListener(e,t,a)}async 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.stop();this.addCard(e)}})}else{const t=await this.parseCard(e);this.cards.push(t);const a=new CustomEvent("addCard",{detail:t});this.dispatchEvent(a)}}}async removeCard(e){if(e instanceof HTMLElement&&e.classList.contains("card")){const t=(await this.parseCard(e)).id;const a=this.cards.findIndex(e=>e.id===t);const i=this.cards[a];this.cards.splice(a,1);const n=new CustomEvent("removeCard",{detail:i});this.dispatchEvent(n)}}async parseCard(e){const t=async t=>{const a=await SpinQuery.condition(()=>e.querySelector(t),e=>e!==null);if(a===null){console.warn(e,t);return""}return a.innerText};const i=async e=>{const a=parseInt(await t(e));if(isNaN(a)){return 0}return a};const n=(()=>{if(e.querySelector(".repost")){return a.repost}if(e.querySelector(".imagesbox")){return a.textWithImages}if(e.querySelector(".video-container")){return a.video}if(e.querySelector(".bangumi-container")){return a.bangumi}if(e.querySelector(".article-container")){return a.column}if(e.querySelector(".music-container")){return a.audio}if(e.querySelector(".h5share-container")){return a.share}if(e.querySelector(".vc-ctnr")){return a.miniVideo}return a.text})();const r={id:e.getAttribute("data-did"),username:await t(".main-content .user-name"),text:await t(".card-content .text.description,.video-container .title,.bangumi-container .title"),reposts:await i(".button-bar .single-button:nth-child(1) .text-offset"),comments:await i(".button-bar .single-button:nth-child(2) .text-offset"),likes:await i(".button-bar .single-button:nth-child(3) .text-offset"),element:e,type:n};e.setAttribute("data-type",n.id.toString());return r}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 n=new i;const r=async(e="video")=>{const a=await Ajax.getJsonWithCredentials(`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=${getUID()}&type_list=${e==="video"?8:512}`);if(a.code!==0){throw new Error(a.message)}if(e==="video"){const{getWatchlaterList:e}=await t.importAsync("watchlater-api");const i=await e();return a.data.cards.map(e=>{const t=JSON.parse(e.card);const a=_.get(e,"display.topic_info.topic_details",[]).map(e=>{return{id:e.topic_id,name:e.topic_name}});return{id:e.desc.dynamic_id_str,aid:t.aid,title:t.title,upID:e.desc.user_profile.info.uid,upName:e.desc.user_profile.info.uname,upFaceUrl:e.desc.user_profile.info.face,coverUrl:t.pic,description:t.desc,timestamp:e.timestamp,time:new Date(e.timestamp*1e3),topics:a,dynamic:t.dynamic,like:formatCount(e.desc.like),duration:t.duration,durationText:formatDuration(t.duration,0),playCount:formatCount(t.stat.view),danmakuCount:formatCount(t.stat.danmaku),watchlater:i.includes(t.aid)}})}else if(e==="bangumi"){return a.data.cards.map(e=>{const t=JSON.parse(e.card);return{id:e.desc.dynamic_id_str,aid:t.aid,epID:t.episode_id,title:t.new_desc,upName:t.apiSeasonInfo.title,upFaceUrl:t.apiSeasonInfo.cover,coverUrl:t.cover,description:"",timestamp:e.timestamp,time:new Date(e.timestamp*1e3),like:formatCount(e.desc.like),durationText:"",playCount:formatCount(t.play_count),danmakuCount:formatCount(t.bullet_count),watchlater:false}})}else{return[]}};return{export:{feedsCardsManager:n,feedsCardTypes:a,getVideoFeeds:r}}}})(); 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.enable-feeds-filter:not(.disable-feeds-filter) .feed-card .card.pattern-block,body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-block-audio .feed-card .card[data-type="256"],body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-block-bangumi .feed-card .card[data-type="512"],body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-block-column .feed-card .card[data-type="64"],body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-block-miniVideo .feed-card .card[data-type="16"],body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-block-repost .feed-card .card[data-type="1"],body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-block-share .feed-card .card[data-type="2048"],body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-block-text .feed-card .card[data-type="4"],body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-block-textWithImages .feed-card .card[data-type="2"],body.enable-feeds-filter:not(.disable-feeds-filter).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:none;flex-direction:column}body.enable-feeds-filter:not(.disable-feeds-filter) .feeds-filter{display:flex}.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){const r=(e,t)=>{if(e.startsWith("/")&&e.endsWith("/")){return new RegExp(e.slice(1,e.length-1)).test(t)}return t.includes(e)};const a=(()=>{return e.feedsFilterPatterns.some(e=>{const a=e.match(/(.+) up:([^ ]+)/);if(a){return r(a[1],t.text)&&r(a[2],t.username)}return r(e,t.text)})})();if(a){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 e=await SpinQuery.select(".feed-card .tab-bar");if(!e){console.error("tabBar not found");return}const r=e.querySelector(".tab:nth-child(2) .tab-text");Observer.attributes(r,()=>{document.body.classList[r.classList.contains("selected")?"add":"remove"]("enable-feeds-filter")});const{feedsCardsManager:a,feedsCardTypes:d}=await t.importAsync("feeds-apis");const i=await a.startWatching();if(!i){console.error("feedsCardsManager.startWatching() failed");return}this.allTypes=Object.entries(d);a.cards.forEach(e=>this.updateCard(e));a.addEventListener("addCard",e=>{const t=e.detail;this.updateCard(t)});this.feedsCardsManager=a}})}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/feeds-filter.min.js"] = (()=>{return(e,t)=>{(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:()=>t.importAsync("feeds-filter-card.vue")}})})();return{reload:()=>document.body.classList.remove("disable-feeds-filter"),unload:()=>document.body.classList.add("disable-feeds-filter")}}})(); 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)}}})}}})(); diff --git a/bilibili-evolved.user.js b/bilibili-evolved.user.js index eea5372e9..1072e622b 100644 --- a/bilibili-evolved.user.js +++ b/bilibili-evolved.user.js @@ -1091,7 +1091,7 @@ onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/mi onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/expand-description.min.css"] = `.play-up-info .play-up-self,.video-desc .info{height:auto!important}.play-up-info .play-up-self-btn,.video-desc .btn{display:none!important}`; 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 a={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 i extends EventTarget{constructor(){super(...arguments);this.cards=[]}addEventListener(e,t,a){super.addEventListener(e,t,a)}removeEventListener(e,t,a){super.removeEventListener(e,t,a)}async 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.stop();this.addCard(e)}})}else{const t=await this.parseCard(e);this.cards.push(t);const a=new CustomEvent("addCard",{detail:t});this.dispatchEvent(a)}}}async removeCard(e){if(e instanceof HTMLElement&&e.classList.contains("card")){const t=(await this.parseCard(e)).id;const a=this.cards.findIndex(e=>e.id===t);const i=this.cards[a];this.cards.splice(a,1);const n=new CustomEvent("removeCard",{detail:i});this.dispatchEvent(n)}}async parseCard(e){const t=async t=>{const a=await SpinQuery.condition(()=>e.querySelector(t),e=>e!==null);if(a===null){return""}return a.innerText};const i=async e=>{const a=parseInt(await t(e));if(isNaN(a)){return 0}return a};const n=(()=>{if(e.querySelector(".repost")){return a.repost}if(e.querySelector(".imagesbox")){return a.textWithImages}if(e.querySelector(".video-container")){return a.video}if(e.querySelector(".bangumi-container")){return a.bangumi}if(e.querySelector(".article-container")){return a.column}if(e.querySelector(".music-container")){return a.audio}if(e.querySelector(".h5share-container")){return a.share}if(e.querySelector(".vc-ctnr")){return a.miniVideo}return a.text})();const r={id:e.getAttribute("data-did"),username:await t(".main-content .user-name"),text:await t(".card-content .text.description"),reposts:await i(".button-bar .single-button:nth-child(1) .text-offset"),comments:await i(".button-bar .single-button:nth-child(2) .text-offset"),likes:await i(".button-bar .single-button:nth-child(3) .text-offset"),element:e,type:n};e.setAttribute("data-type",n.id.toString());return r}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 n=new i;const r=async(e="video")=>{const a=await Ajax.getJsonWithCredentials(`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=${getUID()}&type_list=${e==="video"?8:512}`);if(a.code!==0){throw new Error(a.message)}if(e==="video"){const{getWatchlaterList:e}=await t.importAsync("watchlater-api");const i=await e();return a.data.cards.map(e=>{const t=JSON.parse(e.card);const a=_.get(e,"display.topic_info.topic_details",[]).map(e=>{return{id:e.topic_id,name:e.topic_name}});return{id:e.desc.dynamic_id_str,aid:t.aid,title:t.title,upID:e.desc.user_profile.info.uid,upName:e.desc.user_profile.info.uname,upFaceUrl:e.desc.user_profile.info.face,coverUrl:t.pic,description:t.desc,timestamp:e.timestamp,time:new Date(e.timestamp*1e3),topics:a,dynamic:t.dynamic,like:formatCount(e.desc.like),duration:t.duration,durationText:formatDuration(t.duration,0),playCount:formatCount(t.stat.view),danmakuCount:formatCount(t.stat.danmaku),watchlater:i.includes(t.aid)}})}else if(e==="bangumi"){return a.data.cards.map(e=>{const t=JSON.parse(e.card);return{id:e.desc.dynamic_id_str,aid:t.aid,epID:t.episode_id,title:t.new_desc,upName:t.apiSeasonInfo.title,upFaceUrl:t.apiSeasonInfo.cover,coverUrl:t.cover,description:"",timestamp:e.timestamp,time:new Date(e.timestamp*1e3),like:formatCount(e.desc.like),durationText:"",playCount:formatCount(t.play_count),danmakuCount:formatCount(t.bullet_count),watchlater:false}})}else{return[]}};return{export:{feedsCardsManager:n,feedsCardTypes:a,getVideoFeeds:r}}}})(); +onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/feeds-apis.min.js"] = (()=>{return(e,t)=>{const a={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 i extends EventTarget{constructor(){super(...arguments);this.cards=[]}addEventListener(e,t,a){super.addEventListener(e,t,a)}removeEventListener(e,t,a){super.removeEventListener(e,t,a)}async 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.stop();this.addCard(e)}})}else{const t=await this.parseCard(e);this.cards.push(t);const a=new CustomEvent("addCard",{detail:t});this.dispatchEvent(a)}}}async removeCard(e){if(e instanceof HTMLElement&&e.classList.contains("card")){const t=(await this.parseCard(e)).id;const a=this.cards.findIndex(e=>e.id===t);const i=this.cards[a];this.cards.splice(a,1);const n=new CustomEvent("removeCard",{detail:i});this.dispatchEvent(n)}}async parseCard(e){const t=async t=>{const a=await SpinQuery.condition(()=>e.querySelector(t),e=>e!==null);if(a===null){console.warn(e,t);return""}return a.innerText};const i=async e=>{const a=parseInt(await t(e));if(isNaN(a)){return 0}return a};const n=(()=>{if(e.querySelector(".repost")){return a.repost}if(e.querySelector(".imagesbox")){return a.textWithImages}if(e.querySelector(".video-container")){return a.video}if(e.querySelector(".bangumi-container")){return a.bangumi}if(e.querySelector(".article-container")){return a.column}if(e.querySelector(".music-container")){return a.audio}if(e.querySelector(".h5share-container")){return a.share}if(e.querySelector(".vc-ctnr")){return a.miniVideo}return a.text})();const r={id:e.getAttribute("data-did"),username:await t(".main-content .user-name"),text:await t(".card-content .text.description,.video-container .title,.bangumi-container .title"),reposts:await i(".button-bar .single-button:nth-child(1) .text-offset"),comments:await i(".button-bar .single-button:nth-child(2) .text-offset"),likes:await i(".button-bar .single-button:nth-child(3) .text-offset"),element:e,type:n};e.setAttribute("data-type",n.id.toString());return r}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 n=new i;const r=async(e="video")=>{const a=await Ajax.getJsonWithCredentials(`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=${getUID()}&type_list=${e==="video"?8:512}`);if(a.code!==0){throw new Error(a.message)}if(e==="video"){const{getWatchlaterList:e}=await t.importAsync("watchlater-api");const i=await e();return a.data.cards.map(e=>{const t=JSON.parse(e.card);const a=_.get(e,"display.topic_info.topic_details",[]).map(e=>{return{id:e.topic_id,name:e.topic_name}});return{id:e.desc.dynamic_id_str,aid:t.aid,title:t.title,upID:e.desc.user_profile.info.uid,upName:e.desc.user_profile.info.uname,upFaceUrl:e.desc.user_profile.info.face,coverUrl:t.pic,description:t.desc,timestamp:e.timestamp,time:new Date(e.timestamp*1e3),topics:a,dynamic:t.dynamic,like:formatCount(e.desc.like),duration:t.duration,durationText:formatDuration(t.duration,0),playCount:formatCount(t.stat.view),danmakuCount:formatCount(t.stat.danmaku),watchlater:i.includes(t.aid)}})}else if(e==="bangumi"){return a.data.cards.map(e=>{const t=JSON.parse(e.card);return{id:e.desc.dynamic_id_str,aid:t.aid,epID:t.episode_id,title:t.new_desc,upName:t.apiSeasonInfo.title,upFaceUrl:t.apiSeasonInfo.cover,coverUrl:t.cover,description:"",timestamp:e.timestamp,time:new Date(e.timestamp*1e3),like:formatCount(e.desc.like),durationText:"",playCount:formatCount(t.play_count),danmakuCount:formatCount(t.bullet_count),watchlater:false}})}else{return[]}};return{export:{feedsCardsManager:n,feedsCardTypes:a,getVideoFeeds:r}}}})(); 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.enable-feeds-filter:not(.disable-feeds-filter) .feed-card .card.pattern-block,body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-block-audio .feed-card .card[data-type="256"],body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-block-bangumi .feed-card .card[data-type="512"],body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-block-column .feed-card .card[data-type="64"],body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-block-miniVideo .feed-card .card[data-type="16"],body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-block-repost .feed-card .card[data-type="1"],body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-block-share .feed-card .card[data-type="2048"],body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-block-text .feed-card .card[data-type="4"],body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-block-textWithImages .feed-card .card[data-type="2"],body.enable-feeds-filter:not(.disable-feeds-filter).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:none;flex-direction:column}body.enable-feeds-filter:not(.disable-feeds-filter) .feeds-filter{display:flex}.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){const r=(e,t)=>{if(e.startsWith("/")&&e.endsWith("/")){return new RegExp(e.slice(1,e.length-1)).test(t)}return t.includes(e)};const a=(()=>{return e.feedsFilterPatterns.some(e=>{const a=e.match(/(.+) up:([^ ]+)/);if(a){return r(a[1],t.text)&&r(a[2],t.username)}return r(e,t.text)})})();if(a){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 e=await SpinQuery.select(".feed-card .tab-bar");if(!e){console.error("tabBar not found");return}const r=e.querySelector(".tab:nth-child(2) .tab-text");Observer.attributes(r,()=>{document.body.classList[r.classList.contains("selected")?"add":"remove"]("enable-feeds-filter")});const{feedsCardsManager:a,feedsCardTypes:d}=await t.importAsync("feeds-apis");const i=await a.startWatching();if(!i){console.error("feedsCardsManager.startWatching() failed");return}this.allTypes=Object.entries(d);a.cards.forEach(e=>this.updateCard(e));a.addEventListener("addCard",e=>{const t=e.detail;this.updateCard(t)});this.feedsCardsManager=a}})}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/feeds-filter.min.js"] = (()=>{return(e,t)=>{(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:()=>t.importAsync("feeds-filter-card.vue")}})})();return{reload:()=>document.body.classList.remove("disable-feeds-filter"),unload:()=>document.body.classList.add("disable-feeds-filter")}}})(); 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)}}})}}})(); diff --git a/min/bundle.json b/min/bundle.json index 3ec35253c..56196ccae 100644 --- a/min/bundle.json +++ b/min/bundle.json @@ -52,7 +52,7 @@ "expand-description.min.css": "58C7710A50521B80F7D872BDC4C652610D84C4FABC6874BA66DA37B4F8759224", "expand-description.min.js": "A56857AD6B1C9F431B233D188E857D30DD5A2EB644986DE32A21280B1B7BC7A7", "favorites-redirect.min.js": "70D6ECCE0402AA76387D2A3288C1148C60CC88D5378B7A2BDC813F3F78E4EE84", - "feeds-apis.min.js": "535CB108EAA52E2918D8E75EAA4BB2D6F59D27AB775A99C0D22B25A8CABA4E93", + "feeds-apis.min.js": "ED1FFDEBC22680C5089F9D30CF667535FB99881C96A969DB47BC70BF095A99E8", "feeds-filter-card.vue.min.js": "5922DD76080D5DD57C860018749BD3D82530DDBD537DBFB5D540D10C03645775", "feeds-filter.min.js": "10557E498B8BADA3C1C03E8C1DCD6FB24DBA2DA27A5A03BD861054F7E2989D46", "filter-type-switch.vue.min.js": "86F40D40C2464A56A2A0D32A0B94860DD376D1FE7850836B4CE37B767312BBE7", diff --git a/min/bundle.zip b/min/bundle.zip index 98b7735d9..135d16cf2 100644 Binary files a/min/bundle.zip and b/min/bundle.zip differ diff --git a/min/feeds-apis.min.js b/min/feeds-apis.min.js index d948e5a77..b271b3137 100644 --- a/min/feeds-apis.min.js +++ b/min/feeds-apis.min.js @@ -1 +1 @@ -(()=>{return(e,t)=>{const a={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 i extends EventTarget{constructor(){super(...arguments);this.cards=[]}addEventListener(e,t,a){super.addEventListener(e,t,a)}removeEventListener(e,t,a){super.removeEventListener(e,t,a)}async 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.stop();this.addCard(e)}})}else{const t=await this.parseCard(e);this.cards.push(t);const a=new CustomEvent("addCard",{detail:t});this.dispatchEvent(a)}}}async removeCard(e){if(e instanceof HTMLElement&&e.classList.contains("card")){const t=(await this.parseCard(e)).id;const a=this.cards.findIndex(e=>e.id===t);const i=this.cards[a];this.cards.splice(a,1);const n=new CustomEvent("removeCard",{detail:i});this.dispatchEvent(n)}}async parseCard(e){const t=async t=>{const a=await SpinQuery.condition(()=>e.querySelector(t),e=>e!==null);if(a===null){return""}return a.innerText};const i=async e=>{const a=parseInt(await t(e));if(isNaN(a)){return 0}return a};const n=(()=>{if(e.querySelector(".repost")){return a.repost}if(e.querySelector(".imagesbox")){return a.textWithImages}if(e.querySelector(".video-container")){return a.video}if(e.querySelector(".bangumi-container")){return a.bangumi}if(e.querySelector(".article-container")){return a.column}if(e.querySelector(".music-container")){return a.audio}if(e.querySelector(".h5share-container")){return a.share}if(e.querySelector(".vc-ctnr")){return a.miniVideo}return a.text})();const r={id:e.getAttribute("data-did"),username:await t(".main-content .user-name"),text:await t(".card-content .text.description"),reposts:await i(".button-bar .single-button:nth-child(1) .text-offset"),comments:await i(".button-bar .single-button:nth-child(2) .text-offset"),likes:await i(".button-bar .single-button:nth-child(3) .text-offset"),element:e,type:n};e.setAttribute("data-type",n.id.toString());return r}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 n=new i;const r=async(e="video")=>{const a=await Ajax.getJsonWithCredentials(`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=${getUID()}&type_list=${e==="video"?8:512}`);if(a.code!==0){throw new Error(a.message)}if(e==="video"){const{getWatchlaterList:e}=await t.importAsync("watchlater-api");const i=await e();return a.data.cards.map(e=>{const t=JSON.parse(e.card);const a=_.get(e,"display.topic_info.topic_details",[]).map(e=>{return{id:e.topic_id,name:e.topic_name}});return{id:e.desc.dynamic_id_str,aid:t.aid,title:t.title,upID:e.desc.user_profile.info.uid,upName:e.desc.user_profile.info.uname,upFaceUrl:e.desc.user_profile.info.face,coverUrl:t.pic,description:t.desc,timestamp:e.timestamp,time:new Date(e.timestamp*1e3),topics:a,dynamic:t.dynamic,like:formatCount(e.desc.like),duration:t.duration,durationText:formatDuration(t.duration,0),playCount:formatCount(t.stat.view),danmakuCount:formatCount(t.stat.danmaku),watchlater:i.includes(t.aid)}})}else if(e==="bangumi"){return a.data.cards.map(e=>{const t=JSON.parse(e.card);return{id:e.desc.dynamic_id_str,aid:t.aid,epID:t.episode_id,title:t.new_desc,upName:t.apiSeasonInfo.title,upFaceUrl:t.apiSeasonInfo.cover,coverUrl:t.cover,description:"",timestamp:e.timestamp,time:new Date(e.timestamp*1e3),like:formatCount(e.desc.like),durationText:"",playCount:formatCount(t.play_count),danmakuCount:formatCount(t.bullet_count),watchlater:false}})}else{return[]}};return{export:{feedsCardsManager:n,feedsCardTypes:a,getVideoFeeds:r}}}})(); \ No newline at end of file +(()=>{return(e,t)=>{const a={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 i extends EventTarget{constructor(){super(...arguments);this.cards=[]}addEventListener(e,t,a){super.addEventListener(e,t,a)}removeEventListener(e,t,a){super.removeEventListener(e,t,a)}async 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.stop();this.addCard(e)}})}else{const t=await this.parseCard(e);this.cards.push(t);const a=new CustomEvent("addCard",{detail:t});this.dispatchEvent(a)}}}async removeCard(e){if(e instanceof HTMLElement&&e.classList.contains("card")){const t=(await this.parseCard(e)).id;const a=this.cards.findIndex(e=>e.id===t);const i=this.cards[a];this.cards.splice(a,1);const n=new CustomEvent("removeCard",{detail:i});this.dispatchEvent(n)}}async parseCard(e){const t=async t=>{const a=await SpinQuery.condition(()=>e.querySelector(t),e=>e!==null);if(a===null){console.warn(e,t);return""}return a.innerText};const i=async e=>{const a=parseInt(await t(e));if(isNaN(a)){return 0}return a};const n=(()=>{if(e.querySelector(".repost")){return a.repost}if(e.querySelector(".imagesbox")){return a.textWithImages}if(e.querySelector(".video-container")){return a.video}if(e.querySelector(".bangumi-container")){return a.bangumi}if(e.querySelector(".article-container")){return a.column}if(e.querySelector(".music-container")){return a.audio}if(e.querySelector(".h5share-container")){return a.share}if(e.querySelector(".vc-ctnr")){return a.miniVideo}return a.text})();const r={id:e.getAttribute("data-did"),username:await t(".main-content .user-name"),text:await t(".card-content .text.description,.video-container .title,.bangumi-container .title"),reposts:await i(".button-bar .single-button:nth-child(1) .text-offset"),comments:await i(".button-bar .single-button:nth-child(2) .text-offset"),likes:await i(".button-bar .single-button:nth-child(3) .text-offset"),element:e,type:n};e.setAttribute("data-type",n.id.toString());return r}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 n=new i;const r=async(e="video")=>{const a=await Ajax.getJsonWithCredentials(`https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/dynamic_new?uid=${getUID()}&type_list=${e==="video"?8:512}`);if(a.code!==0){throw new Error(a.message)}if(e==="video"){const{getWatchlaterList:e}=await t.importAsync("watchlater-api");const i=await e();return a.data.cards.map(e=>{const t=JSON.parse(e.card);const a=_.get(e,"display.topic_info.topic_details",[]).map(e=>{return{id:e.topic_id,name:e.topic_name}});return{id:e.desc.dynamic_id_str,aid:t.aid,title:t.title,upID:e.desc.user_profile.info.uid,upName:e.desc.user_profile.info.uname,upFaceUrl:e.desc.user_profile.info.face,coverUrl:t.pic,description:t.desc,timestamp:e.timestamp,time:new Date(e.timestamp*1e3),topics:a,dynamic:t.dynamic,like:formatCount(e.desc.like),duration:t.duration,durationText:formatDuration(t.duration,0),playCount:formatCount(t.stat.view),danmakuCount:formatCount(t.stat.danmaku),watchlater:i.includes(t.aid)}})}else if(e==="bangumi"){return a.data.cards.map(e=>{const t=JSON.parse(e.card);return{id:e.desc.dynamic_id_str,aid:t.aid,epID:t.episode_id,title:t.new_desc,upName:t.apiSeasonInfo.title,upFaceUrl:t.apiSeasonInfo.cover,coverUrl:t.cover,description:"",timestamp:e.timestamp,time:new Date(e.timestamp*1e3),like:formatCount(e.desc.like),durationText:"",playCount:formatCount(t.play_count),danmakuCount:formatCount(t.bullet_count),watchlater:false}})}else{return[]}};return{export:{feedsCardsManager:n,feedsCardTypes:a,getVideoFeeds:r}}}})(); \ No newline at end of file diff --git a/src/activity/feeds-apis.ts b/src/activity/feeds-apis.ts index 82d27c7d1..46aeb1160 100644 --- a/src/activity/feeds-apis.ts +++ b/src/activity/feeds-apis.ts @@ -102,7 +102,7 @@ class FeedsCardsManager extends EventTarget { it => it !== null ) as HTMLElement if (subElement === null) { - // console.warn(element, selector) + console.warn(element, selector) return '' } return subElement.innerText @@ -144,7 +144,7 @@ class FeedsCardsManager extends EventTarget { const card = { id: element.getAttribute('data-did') as string, username: await getText('.main-content .user-name'), - text: await getText('.card-content .text.description'), + text: await getText('.card-content .text.description,.video-container .title,.bangumi-container .title'), reposts: await getNumber('.button-bar .single-button:nth-child(1) .text-offset'), comments: await getNumber('.button-bar .single-button:nth-child(2) .text-offset'), likes: await getNumber('.button-bar .single-button:nth-child(3) .text-offset'),