diff --git a/bilibili-evolved.offline.user.js b/bilibili-evolved.offline.user.js index 345d392a5..f8b95b85e 100644 --- a/bilibili-evolved.offline.user.js +++ b/bilibili-evolved.offline.user.js @@ -1,6 +1,6 @@ // ==UserScript== // @name Bilibili Evolved (Offline) -// @version 480.97 +// @version 481.00 // @description Bilibili Evolved 的离线版, 所有功能都已内置于脚本中. // @author Grant Howard, Coulomb-G // @copyright 2019, Grant Howard (https://github.com/the1812) & Coulomb-G (https://github.com/Coulomb-G) @@ -1101,7 +1101,7 @@ offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/m 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 i=`

动态过滤

类型

关键词

{{p}}

侧边栏

`;t.applyStyleFromText(`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}body.enable-feeds-filter:not(.disable-feeds-filter) .left-panel>*,body.enable-feeds-filter:not(.disable-feeds-filter) .right-panel>*{margin:0 0 8px!important}body.enable-feeds-filter:not(.disable-feeds-filter) .feed-card .card.pattern-block,body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-side-block-following-tags .left-panel .tag-panel,body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-side-block-live .right-panel .live-panel,body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-side-block-notice .right-panel .notice-panel,body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-side-block-profile .left-panel .user-wrapper,body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-side-block-trending-tags .right-panel .tag-panel{display:none!important}.feeds-filter{background-color:#fff;width:100%;padding:12px 16px;float:left;border-radius:4px;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 .feeds-filter-swtich:not(:last-child){margin-bottom:4px}.feeds-filter .feeds-filter-swtich 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}.feeds-filter .feeds-filter-swtich label .name{font-size:12px}.feeds-filter .feeds-filter-swtich label .disabled{color:var(--theme-color)!important}.feeds-filter .feeds-filter-swtich label:hover{background-color:#0002}.feeds-filter .feeds-filter-swtich label input{display:none}.feeds-filter .feeds-filter-swtich label .be-icon{font-size:16px}.feeds-filter .feeds-filter-swtich label .be-icon.disabled{display:none}.feeds-filter .feeds-filter-swtich label.disabled{border-color:var(--theme-color)}.feeds-filter .feeds-filter-swtich label.disabled .be-icon{display:none}.feeds-filter .feeds-filter-swtich label.disabled .be-icon.disabled{display:block}.feeds-filter .filter-type-switch{flex:0 0 49%}.feeds-filter .filter-side-card-switch{flex:0 0 100%}.feeds-filter .filter-types{display:flex;flex-wrap:wrap;justify-content:space-between;margin-bottom:18px}.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;margin-bottom:18px}.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");const d={0:{className:"profile",displayName:"个人资料"},1:{className:"following-tags",displayName:"关注的话题"},2:{className:"notice",displayName:"公告栏"},3:{className:"live",displayName:"正在直播"},4:{className:"trending-tags",displayName:"热门话题"}};const s="feeds-filter-side-block-";return{export:Object.assign({template:i},{components:{FilterTypeSwitch:()=>t.importAsync("filter-type-switch.vue"),Icon:()=>t.importAsync("icon.vue")},methods:{updateCard(t){const i=(e,t)=>{if(e.startsWith("/")&&e.endsWith("/")){return new RegExp(e.slice(1,e.length-1)).test(t)}return t.includes(e)};const d=(()=>{return e.feedsFilterPatterns.some(e=>{const d=e.match(/(.+) up:([^ ]+)/);if(d){return i(d[1],t.text)&&i(d[2],t.username)}return i(e,t.text)})})();if(d){t.element.classList.add("pattern-block")}else{t.element.classList.remove("pattern-block")}},deletePattern(t){const i=e.feedsFilterPatterns.indexOf(t);if(i!==-1){this.patterns.splice(i,1)}},addPattern(e){if(e&&!this.patterns.includes(e)){this.patterns.push(e)}this.newPattern=""},updateBlockSide(){Object.entries(d).forEach(([e,t])=>{const i=s+t.className;document.body.classList[this.blockSideCards.includes(e)?"add":"remove"](i)})},toggleBlockSide(t){const i=this.blockSideCards.indexOf(t);const a=d[t];if(i!==-1){this.blockSideCards.splice(i,1);document.body.classList.remove(s+a.className)}else{this.blockSideCards.push(t);document.body.classList.add(s+a.className)}e.feedsFilterSideCards=this.blockSideCards},sideDisabled(e){return this.blockSideCards.includes(e)}},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,allSideCards:d,blockSideCards:[...e.feedsFilterSideCards]}},async mounted(){this.updateBlockSide();const e=await SpinQuery.select(".feed-card .tab-bar");if(!e){console.error("tabBar not found");return}const i=e.querySelector(".tab:nth-child(2) .tab-text");Observer.attributes(i,()=>{document.body.classList[i.classList.contains("selected")?"add":"remove"]("enable-feeds-filter")});const{feedsCardsManager:d,feedsCardTypes:s}=await t.importAsync("feeds-apis");const a=await d.startWatching();if(!a){console.error("feedsCardsManager.startWatching() failed");return}this.allTypes=Object.entries(s);d.cards.forEach(e=>this.updateCard(e));d.addEventListener("addCard",e=>{const t=e.detail;this.updateCard(t)});this.feedsCardsManager=d}})}}})(); 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/ffmpeg-support.min.js"] = (()=>{return(e,t)=>{const n=[".mp4",".m4a"];const r=(e,t,n)=>{if(e<2){return null}const r=[];for(let s=1;s<=e;s++){let e=` - ${s}`;if(n.includes(".m4a")){e=""}r.push(escapeFilename(`file '${t}${e}${n[s-1]}'`))}return r.join("\n")};const s=(e,t)=>{const r=e=>e.fragments.length>1;const s=e.filter(r);if(s.length===0){return null}const i=new Map;s.forEach(e=>{i.set(escapeFilename(`ffmpeg-files-${e.title}.txt`),e.fragments.map((r,s)=>{let i=` - ${s+1}`;if(t===true){i=""}return escapeFilename(`file '${e.title}${i}${t===true?n[s]:t}'`)}).join("\n"))});return i};const i=(e,t)=>{const r=[];e.forEach(e=>{e.fragments.forEach((s,i)=>{let l="";if(e.fragments.length>1&&t!==true){l=` - ${i+1}`}r.push(escapeFilename(`file '${e.title}${l}${t===true?n[i]:t}'`))})});return r.join("\n")};return{export:{getFragmentsList:r,getBatchFragmentsList:s,getBatchEpisodesList:i}}}})(); +offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/ffmpeg-support.min.js"] = (()=>{return(e,t)=>{const n=[".mp4",".m4a"];const r=(e,t,n)=>{if(e<2){return null}const r=[];for(let s=1;s<=e;s++){let e=` - ${s}`;if(n.includes(".m4a")){e=""}const l=escapeFilename(`${t}${e}${n[s-1]}`).replace(/'/g,"'\\''");r.push(`file '${l}'`)}return r.join("\n")};const s=(e,t)=>{const r=e=>e.fragments.length>1;const s=e.filter(r);if(s.length===0){return null}const l=new Map;s.forEach(e=>{l.set(escapeFilename(`ffmpeg-files-${e.title}.txt`),e.fragments.map((r,s)=>{let l=` - ${s+1}`;if(t===true){l=""}const a=escapeFilename(`${e.title}${l}${t===true?n[s]:t}`).replace(/'/g,"'\\''");return`file '${a}'`}).join("\n"))});return l};const l=(e,t)=>{const r=[];e.forEach(e=>{e.fragments.forEach((s,l)=>{let a="";if(e.fragments.length>1&&t!==true){a=` - ${l+1}`}const c=escapeFilename(`${e.title}${a}${t===true?n[l]:t}`).replace(/'/g,"'\\''");r.push(`file '${c}'`)})});return r.join("\n")};return{export:{getFragmentsList:r,getBatchFragmentsList:s,getBatchEpisodesList:l}}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/fill-with-comments.min.js"] = (()=>{return(t,n)=>{const o="fill-with-comments-style";const r=t=>{if(t){if(dq("#"+o)){return}n.applyStyleFromText(`\n .v-wrap { position: relative !important; }\n .v-wrap .l-con { width: 100% !important; }\n .v-wrap .r-con {\n position: absolute !important;\n top: 0 !important;\n right: 0 !important;\n }\n`,o)}else{dqa("#"+o).forEach(t=>t.remove())}};return{export:{fillWithComments:r}}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/filter-type-switch.vue.min.js"] = (()=>{return(e,s)=>{const i=`
`;return{export:Object.assign({template:i},{components:{Icon:()=>s.importAsync("icon.vue")},props:["name","type"],methods:{setFilter(s,i=true){document.body.classList[s?"add":"remove"](`feeds-filter-block-${this.name}`);if(!i){return}if(s){e.feedsFilterTypes.push(this.type.id)}else{const s=e.feedsFilterTypes.indexOf(this.type.id);if(s!==-1){e.feedsFilterTypes.splice(s,1)}}e.feedsFilterTypes=e.feedsFilterTypes}},data(){const s=e.feedsFilterTypes.includes(this.type.id);this.setFilter(s,false);return{disabled:s}},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)}}})(); diff --git a/bilibili-evolved.preview-offline.user.js b/bilibili-evolved.preview-offline.user.js index 0cb3d8a78..bb2742ca6 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 480.97 +// @version 481.00 // @description Bilibili Evolved 的预览离线版, 可以抢先体验新功能, 并且所有功能都已内置于脚本中. // @author Grant Howard, Coulomb-G // @copyright 2019, Grant Howard (https://github.com/the1812) & Coulomb-G (https://github.com/Coulomb-G) @@ -1101,7 +1101,7 @@ offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/m 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 i=`

动态过滤

类型

关键词

{{p}}

侧边栏

`;t.applyStyleFromText(`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}body.enable-feeds-filter:not(.disable-feeds-filter) .left-panel>*,body.enable-feeds-filter:not(.disable-feeds-filter) .right-panel>*{margin:0 0 8px!important}body.enable-feeds-filter:not(.disable-feeds-filter) .feed-card .card.pattern-block,body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-side-block-following-tags .left-panel .tag-panel,body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-side-block-live .right-panel .live-panel,body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-side-block-notice .right-panel .notice-panel,body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-side-block-profile .left-panel .user-wrapper,body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-side-block-trending-tags .right-panel .tag-panel{display:none!important}.feeds-filter{background-color:#fff;width:100%;padding:12px 16px;float:left;border-radius:4px;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 .feeds-filter-swtich:not(:last-child){margin-bottom:4px}.feeds-filter .feeds-filter-swtich 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}.feeds-filter .feeds-filter-swtich label .name{font-size:12px}.feeds-filter .feeds-filter-swtich label .disabled{color:var(--theme-color)!important}.feeds-filter .feeds-filter-swtich label:hover{background-color:#0002}.feeds-filter .feeds-filter-swtich label input{display:none}.feeds-filter .feeds-filter-swtich label .be-icon{font-size:16px}.feeds-filter .feeds-filter-swtich label .be-icon.disabled{display:none}.feeds-filter .feeds-filter-swtich label.disabled{border-color:var(--theme-color)}.feeds-filter .feeds-filter-swtich label.disabled .be-icon{display:none}.feeds-filter .feeds-filter-swtich label.disabled .be-icon.disabled{display:block}.feeds-filter .filter-type-switch{flex:0 0 49%}.feeds-filter .filter-side-card-switch{flex:0 0 100%}.feeds-filter .filter-types{display:flex;flex-wrap:wrap;justify-content:space-between;margin-bottom:18px}.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;margin-bottom:18px}.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");const d={0:{className:"profile",displayName:"个人资料"},1:{className:"following-tags",displayName:"关注的话题"},2:{className:"notice",displayName:"公告栏"},3:{className:"live",displayName:"正在直播"},4:{className:"trending-tags",displayName:"热门话题"}};const s="feeds-filter-side-block-";return{export:Object.assign({template:i},{components:{FilterTypeSwitch:()=>t.importAsync("filter-type-switch.vue"),Icon:()=>t.importAsync("icon.vue")},methods:{updateCard(t){const i=(e,t)=>{if(e.startsWith("/")&&e.endsWith("/")){return new RegExp(e.slice(1,e.length-1)).test(t)}return t.includes(e)};const d=(()=>{return e.feedsFilterPatterns.some(e=>{const d=e.match(/(.+) up:([^ ]+)/);if(d){return i(d[1],t.text)&&i(d[2],t.username)}return i(e,t.text)})})();if(d){t.element.classList.add("pattern-block")}else{t.element.classList.remove("pattern-block")}},deletePattern(t){const i=e.feedsFilterPatterns.indexOf(t);if(i!==-1){this.patterns.splice(i,1)}},addPattern(e){if(e&&!this.patterns.includes(e)){this.patterns.push(e)}this.newPattern=""},updateBlockSide(){Object.entries(d).forEach(([e,t])=>{const i=s+t.className;document.body.classList[this.blockSideCards.includes(e)?"add":"remove"](i)})},toggleBlockSide(t){const i=this.blockSideCards.indexOf(t);const a=d[t];if(i!==-1){this.blockSideCards.splice(i,1);document.body.classList.remove(s+a.className)}else{this.blockSideCards.push(t);document.body.classList.add(s+a.className)}e.feedsFilterSideCards=this.blockSideCards},sideDisabled(e){return this.blockSideCards.includes(e)}},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,allSideCards:d,blockSideCards:[...e.feedsFilterSideCards]}},async mounted(){this.updateBlockSide();const e=await SpinQuery.select(".feed-card .tab-bar");if(!e){console.error("tabBar not found");return}const i=e.querySelector(".tab:nth-child(2) .tab-text");Observer.attributes(i,()=>{document.body.classList[i.classList.contains("selected")?"add":"remove"]("enable-feeds-filter")});const{feedsCardsManager:d,feedsCardTypes:s}=await t.importAsync("feeds-apis");const a=await d.startWatching();if(!a){console.error("feedsCardsManager.startWatching() failed");return}this.allTypes=Object.entries(s);d.cards.forEach(e=>this.updateCard(e));d.addEventListener("addCard",e=>{const t=e.detail;this.updateCard(t)});this.feedsCardsManager=d}})}}})(); 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/ffmpeg-support.min.js"] = (()=>{return(e,t)=>{const n=[".mp4",".m4a"];const r=(e,t,n)=>{if(e<2){return null}const r=[];for(let s=1;s<=e;s++){let e=` - ${s}`;if(n.includes(".m4a")){e=""}r.push(escapeFilename(`file '${t}${e}${n[s-1]}'`))}return r.join("\n")};const s=(e,t)=>{const r=e=>e.fragments.length>1;const s=e.filter(r);if(s.length===0){return null}const i=new Map;s.forEach(e=>{i.set(escapeFilename(`ffmpeg-files-${e.title}.txt`),e.fragments.map((r,s)=>{let i=` - ${s+1}`;if(t===true){i=""}return escapeFilename(`file '${e.title}${i}${t===true?n[s]:t}'`)}).join("\n"))});return i};const i=(e,t)=>{const r=[];e.forEach(e=>{e.fragments.forEach((s,i)=>{let l="";if(e.fragments.length>1&&t!==true){l=` - ${i+1}`}r.push(escapeFilename(`file '${e.title}${l}${t===true?n[i]:t}'`))})});return r.join("\n")};return{export:{getFragmentsList:r,getBatchFragmentsList:s,getBatchEpisodesList:i}}}})(); +offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/ffmpeg-support.min.js"] = (()=>{return(e,t)=>{const n=[".mp4",".m4a"];const r=(e,t,n)=>{if(e<2){return null}const r=[];for(let s=1;s<=e;s++){let e=` - ${s}`;if(n.includes(".m4a")){e=""}const l=escapeFilename(`${t}${e}${n[s-1]}`).replace(/'/g,"'\\''");r.push(`file '${l}'`)}return r.join("\n")};const s=(e,t)=>{const r=e=>e.fragments.length>1;const s=e.filter(r);if(s.length===0){return null}const l=new Map;s.forEach(e=>{l.set(escapeFilename(`ffmpeg-files-${e.title}.txt`),e.fragments.map((r,s)=>{let l=` - ${s+1}`;if(t===true){l=""}const a=escapeFilename(`${e.title}${l}${t===true?n[s]:t}`).replace(/'/g,"'\\''");return`file '${a}'`}).join("\n"))});return l};const l=(e,t)=>{const r=[];e.forEach(e=>{e.fragments.forEach((s,l)=>{let a="";if(e.fragments.length>1&&t!==true){a=` - ${l+1}`}const c=escapeFilename(`${e.title}${a}${t===true?n[l]:t}`).replace(/'/g,"'\\''");r.push(`file '${c}'`)})});return r.join("\n")};return{export:{getFragmentsList:r,getBatchFragmentsList:s,getBatchEpisodesList:l}}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/fill-with-comments.min.js"] = (()=>{return(t,n)=>{const o="fill-with-comments-style";const r=t=>{if(t){if(dq("#"+o)){return}n.applyStyleFromText(`\n .v-wrap { position: relative !important; }\n .v-wrap .l-con { width: 100% !important; }\n .v-wrap .r-con {\n position: absolute !important;\n top: 0 !important;\n right: 0 !important;\n }\n`,o)}else{dqa("#"+o).forEach(t=>t.remove())}};return{export:{fillWithComments:r}}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/filter-type-switch.vue.min.js"] = (()=>{return(e,s)=>{const i=`
`;return{export:Object.assign({template:i},{components:{Icon:()=>s.importAsync("icon.vue")},props:["name","type"],methods:{setFilter(s,i=true){document.body.classList[s?"add":"remove"](`feeds-filter-block-${this.name}`);if(!i){return}if(s){e.feedsFilterTypes.push(this.type.id)}else{const s=e.feedsFilterTypes.indexOf(this.type.id);if(s!==-1){e.feedsFilterTypes.splice(s,1)}}e.feedsFilterTypes=e.feedsFilterTypes}},data(){const s=e.feedsFilterTypes.includes(this.type.id);this.setFilter(s,false);return{disabled:s}},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)}}})(); diff --git a/bilibili-evolved.preview.user.js b/bilibili-evolved.preview.user.js index 480baaccc..946359169 100644 --- a/bilibili-evolved.preview.user.js +++ b/bilibili-evolved.preview.user.js @@ -1100,7 +1100,7 @@ onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/m 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 i=`

动态过滤

类型

关键词

{{p}}

侧边栏

`;t.applyStyleFromText(`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}body.enable-feeds-filter:not(.disable-feeds-filter) .left-panel>*,body.enable-feeds-filter:not(.disable-feeds-filter) .right-panel>*{margin:0 0 8px!important}body.enable-feeds-filter:not(.disable-feeds-filter) .feed-card .card.pattern-block,body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-side-block-following-tags .left-panel .tag-panel,body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-side-block-live .right-panel .live-panel,body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-side-block-notice .right-panel .notice-panel,body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-side-block-profile .left-panel .user-wrapper,body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-side-block-trending-tags .right-panel .tag-panel{display:none!important}.feeds-filter{background-color:#fff;width:100%;padding:12px 16px;float:left;border-radius:4px;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 .feeds-filter-swtich:not(:last-child){margin-bottom:4px}.feeds-filter .feeds-filter-swtich 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}.feeds-filter .feeds-filter-swtich label .name{font-size:12px}.feeds-filter .feeds-filter-swtich label .disabled{color:var(--theme-color)!important}.feeds-filter .feeds-filter-swtich label:hover{background-color:#0002}.feeds-filter .feeds-filter-swtich label input{display:none}.feeds-filter .feeds-filter-swtich label .be-icon{font-size:16px}.feeds-filter .feeds-filter-swtich label .be-icon.disabled{display:none}.feeds-filter .feeds-filter-swtich label.disabled{border-color:var(--theme-color)}.feeds-filter .feeds-filter-swtich label.disabled .be-icon{display:none}.feeds-filter .feeds-filter-swtich label.disabled .be-icon.disabled{display:block}.feeds-filter .filter-type-switch{flex:0 0 49%}.feeds-filter .filter-side-card-switch{flex:0 0 100%}.feeds-filter .filter-types{display:flex;flex-wrap:wrap;justify-content:space-between;margin-bottom:18px}.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;margin-bottom:18px}.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");const d={0:{className:"profile",displayName:"个人资料"},1:{className:"following-tags",displayName:"关注的话题"},2:{className:"notice",displayName:"公告栏"},3:{className:"live",displayName:"正在直播"},4:{className:"trending-tags",displayName:"热门话题"}};const s="feeds-filter-side-block-";return{export:Object.assign({template:i},{components:{FilterTypeSwitch:()=>t.importAsync("filter-type-switch.vue"),Icon:()=>t.importAsync("icon.vue")},methods:{updateCard(t){const i=(e,t)=>{if(e.startsWith("/")&&e.endsWith("/")){return new RegExp(e.slice(1,e.length-1)).test(t)}return t.includes(e)};const d=(()=>{return e.feedsFilterPatterns.some(e=>{const d=e.match(/(.+) up:([^ ]+)/);if(d){return i(d[1],t.text)&&i(d[2],t.username)}return i(e,t.text)})})();if(d){t.element.classList.add("pattern-block")}else{t.element.classList.remove("pattern-block")}},deletePattern(t){const i=e.feedsFilterPatterns.indexOf(t);if(i!==-1){this.patterns.splice(i,1)}},addPattern(e){if(e&&!this.patterns.includes(e)){this.patterns.push(e)}this.newPattern=""},updateBlockSide(){Object.entries(d).forEach(([e,t])=>{const i=s+t.className;document.body.classList[this.blockSideCards.includes(e)?"add":"remove"](i)})},toggleBlockSide(t){const i=this.blockSideCards.indexOf(t);const a=d[t];if(i!==-1){this.blockSideCards.splice(i,1);document.body.classList.remove(s+a.className)}else{this.blockSideCards.push(t);document.body.classList.add(s+a.className)}e.feedsFilterSideCards=this.blockSideCards},sideDisabled(e){return this.blockSideCards.includes(e)}},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,allSideCards:d,blockSideCards:[...e.feedsFilterSideCards]}},async mounted(){this.updateBlockSide();const e=await SpinQuery.select(".feed-card .tab-bar");if(!e){console.error("tabBar not found");return}const i=e.querySelector(".tab:nth-child(2) .tab-text");Observer.attributes(i,()=>{document.body.classList[i.classList.contains("selected")?"add":"remove"]("enable-feeds-filter")});const{feedsCardsManager:d,feedsCardTypes:s}=await t.importAsync("feeds-apis");const a=await d.startWatching();if(!a){console.error("feedsCardsManager.startWatching() failed");return}this.allTypes=Object.entries(s);d.cards.forEach(e=>this.updateCard(e));d.addEventListener("addCard",e=>{const t=e.detail;this.updateCard(t)});this.feedsCardsManager=d}})}}})(); 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/ffmpeg-support.min.js"] = (()=>{return(e,t)=>{const n=[".mp4",".m4a"];const r=(e,t,n)=>{if(e<2){return null}const r=[];for(let s=1;s<=e;s++){let e=` - ${s}`;if(n.includes(".m4a")){e=""}r.push(escapeFilename(`file '${t}${e}${n[s-1]}'`))}return r.join("\n")};const s=(e,t)=>{const r=e=>e.fragments.length>1;const s=e.filter(r);if(s.length===0){return null}const i=new Map;s.forEach(e=>{i.set(escapeFilename(`ffmpeg-files-${e.title}.txt`),e.fragments.map((r,s)=>{let i=` - ${s+1}`;if(t===true){i=""}return escapeFilename(`file '${e.title}${i}${t===true?n[s]:t}'`)}).join("\n"))});return i};const i=(e,t)=>{const r=[];e.forEach(e=>{e.fragments.forEach((s,i)=>{let l="";if(e.fragments.length>1&&t!==true){l=` - ${i+1}`}r.push(escapeFilename(`file '${e.title}${l}${t===true?n[i]:t}'`))})});return r.join("\n")};return{export:{getFragmentsList:r,getBatchFragmentsList:s,getBatchEpisodesList:i}}}})(); +onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/ffmpeg-support.min.js"] = (()=>{return(e,t)=>{const n=[".mp4",".m4a"];const r=(e,t,n)=>{if(e<2){return null}const r=[];for(let s=1;s<=e;s++){let e=` - ${s}`;if(n.includes(".m4a")){e=""}const l=escapeFilename(`${t}${e}${n[s-1]}`).replace(/'/g,"'\\''");r.push(`file '${l}'`)}return r.join("\n")};const s=(e,t)=>{const r=e=>e.fragments.length>1;const s=e.filter(r);if(s.length===0){return null}const l=new Map;s.forEach(e=>{l.set(escapeFilename(`ffmpeg-files-${e.title}.txt`),e.fragments.map((r,s)=>{let l=` - ${s+1}`;if(t===true){l=""}const a=escapeFilename(`${e.title}${l}${t===true?n[s]:t}`).replace(/'/g,"'\\''");return`file '${a}'`}).join("\n"))});return l};const l=(e,t)=>{const r=[];e.forEach(e=>{e.fragments.forEach((s,l)=>{let a="";if(e.fragments.length>1&&t!==true){a=` - ${l+1}`}const c=escapeFilename(`${e.title}${a}${t===true?n[l]:t}`).replace(/'/g,"'\\''");r.push(`file '${c}'`)})});return r.join("\n")};return{export:{getFragmentsList:r,getBatchFragmentsList:s,getBatchEpisodesList:l}}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/fill-with-comments.min.js"] = (()=>{return(t,n)=>{const o="fill-with-comments-style";const r=t=>{if(t){if(dq("#"+o)){return}n.applyStyleFromText(`\n .v-wrap { position: relative !important; }\n .v-wrap .l-con { width: 100% !important; }\n .v-wrap .r-con {\n position: absolute !important;\n top: 0 !important;\n right: 0 !important;\n }\n`,o)}else{dqa("#"+o).forEach(t=>t.remove())}};return{export:{fillWithComments:r}}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/filter-type-switch.vue.min.js"] = (()=>{return(e,s)=>{const i=`
`;return{export:Object.assign({template:i},{components:{Icon:()=>s.importAsync("icon.vue")},props:["name","type"],methods:{setFilter(s,i=true){document.body.classList[s?"add":"remove"](`feeds-filter-block-${this.name}`);if(!i){return}if(s){e.feedsFilterTypes.push(this.type.id)}else{const s=e.feedsFilterTypes.indexOf(this.type.id);if(s!==-1){e.feedsFilterTypes.splice(s,1)}}e.feedsFilterTypes=e.feedsFilterTypes}},data(){const s=e.feedsFilterTypes.includes(this.type.id);this.setFilter(s,false);return{disabled:s}},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)}}})(); diff --git a/bilibili-evolved.user.js b/bilibili-evolved.user.js index 713827891..ea037401b 100644 --- a/bilibili-evolved.user.js +++ b/bilibili-evolved.user.js @@ -1100,7 +1100,7 @@ onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/mi 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 i=`

动态过滤

类型

关键词

{{p}}

侧边栏

`;t.applyStyleFromText(`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}body.enable-feeds-filter:not(.disable-feeds-filter) .left-panel>*,body.enable-feeds-filter:not(.disable-feeds-filter) .right-panel>*{margin:0 0 8px!important}body.enable-feeds-filter:not(.disable-feeds-filter) .feed-card .card.pattern-block,body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-side-block-following-tags .left-panel .tag-panel,body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-side-block-live .right-panel .live-panel,body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-side-block-notice .right-panel .notice-panel,body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-side-block-profile .left-panel .user-wrapper,body.enable-feeds-filter:not(.disable-feeds-filter).feeds-filter-side-block-trending-tags .right-panel .tag-panel{display:none!important}.feeds-filter{background-color:#fff;width:100%;padding:12px 16px;float:left;border-radius:4px;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 .feeds-filter-swtich:not(:last-child){margin-bottom:4px}.feeds-filter .feeds-filter-swtich 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}.feeds-filter .feeds-filter-swtich label .name{font-size:12px}.feeds-filter .feeds-filter-swtich label .disabled{color:var(--theme-color)!important}.feeds-filter .feeds-filter-swtich label:hover{background-color:#0002}.feeds-filter .feeds-filter-swtich label input{display:none}.feeds-filter .feeds-filter-swtich label .be-icon{font-size:16px}.feeds-filter .feeds-filter-swtich label .be-icon.disabled{display:none}.feeds-filter .feeds-filter-swtich label.disabled{border-color:var(--theme-color)}.feeds-filter .feeds-filter-swtich label.disabled .be-icon{display:none}.feeds-filter .feeds-filter-swtich label.disabled .be-icon.disabled{display:block}.feeds-filter .filter-type-switch{flex:0 0 49%}.feeds-filter .filter-side-card-switch{flex:0 0 100%}.feeds-filter .filter-types{display:flex;flex-wrap:wrap;justify-content:space-between;margin-bottom:18px}.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;margin-bottom:18px}.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");const d={0:{className:"profile",displayName:"个人资料"},1:{className:"following-tags",displayName:"关注的话题"},2:{className:"notice",displayName:"公告栏"},3:{className:"live",displayName:"正在直播"},4:{className:"trending-tags",displayName:"热门话题"}};const s="feeds-filter-side-block-";return{export:Object.assign({template:i},{components:{FilterTypeSwitch:()=>t.importAsync("filter-type-switch.vue"),Icon:()=>t.importAsync("icon.vue")},methods:{updateCard(t){const i=(e,t)=>{if(e.startsWith("/")&&e.endsWith("/")){return new RegExp(e.slice(1,e.length-1)).test(t)}return t.includes(e)};const d=(()=>{return e.feedsFilterPatterns.some(e=>{const d=e.match(/(.+) up:([^ ]+)/);if(d){return i(d[1],t.text)&&i(d[2],t.username)}return i(e,t.text)})})();if(d){t.element.classList.add("pattern-block")}else{t.element.classList.remove("pattern-block")}},deletePattern(t){const i=e.feedsFilterPatterns.indexOf(t);if(i!==-1){this.patterns.splice(i,1)}},addPattern(e){if(e&&!this.patterns.includes(e)){this.patterns.push(e)}this.newPattern=""},updateBlockSide(){Object.entries(d).forEach(([e,t])=>{const i=s+t.className;document.body.classList[this.blockSideCards.includes(e)?"add":"remove"](i)})},toggleBlockSide(t){const i=this.blockSideCards.indexOf(t);const a=d[t];if(i!==-1){this.blockSideCards.splice(i,1);document.body.classList.remove(s+a.className)}else{this.blockSideCards.push(t);document.body.classList.add(s+a.className)}e.feedsFilterSideCards=this.blockSideCards},sideDisabled(e){return this.blockSideCards.includes(e)}},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,allSideCards:d,blockSideCards:[...e.feedsFilterSideCards]}},async mounted(){this.updateBlockSide();const e=await SpinQuery.select(".feed-card .tab-bar");if(!e){console.error("tabBar not found");return}const i=e.querySelector(".tab:nth-child(2) .tab-text");Observer.attributes(i,()=>{document.body.classList[i.classList.contains("selected")?"add":"remove"]("enable-feeds-filter")});const{feedsCardsManager:d,feedsCardTypes:s}=await t.importAsync("feeds-apis");const a=await d.startWatching();if(!a){console.error("feedsCardsManager.startWatching() failed");return}this.allTypes=Object.entries(s);d.cards.forEach(e=>this.updateCard(e));d.addEventListener("addCard",e=>{const t=e.detail;this.updateCard(t)});this.feedsCardsManager=d}})}}})(); 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/ffmpeg-support.min.js"] = (()=>{return(e,t)=>{const n=[".mp4",".m4a"];const r=(e,t,n)=>{if(e<2){return null}const r=[];for(let s=1;s<=e;s++){let e=` - ${s}`;if(n.includes(".m4a")){e=""}r.push(escapeFilename(`file '${t}${e}${n[s-1]}'`))}return r.join("\n")};const s=(e,t)=>{const r=e=>e.fragments.length>1;const s=e.filter(r);if(s.length===0){return null}const i=new Map;s.forEach(e=>{i.set(escapeFilename(`ffmpeg-files-${e.title}.txt`),e.fragments.map((r,s)=>{let i=` - ${s+1}`;if(t===true){i=""}return escapeFilename(`file '${e.title}${i}${t===true?n[s]:t}'`)}).join("\n"))});return i};const i=(e,t)=>{const r=[];e.forEach(e=>{e.fragments.forEach((s,i)=>{let l="";if(e.fragments.length>1&&t!==true){l=` - ${i+1}`}r.push(escapeFilename(`file '${e.title}${l}${t===true?n[i]:t}'`))})});return r.join("\n")};return{export:{getFragmentsList:r,getBatchFragmentsList:s,getBatchEpisodesList:i}}}})(); +onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/ffmpeg-support.min.js"] = (()=>{return(e,t)=>{const n=[".mp4",".m4a"];const r=(e,t,n)=>{if(e<2){return null}const r=[];for(let s=1;s<=e;s++){let e=` - ${s}`;if(n.includes(".m4a")){e=""}const l=escapeFilename(`${t}${e}${n[s-1]}`).replace(/'/g,"'\\''");r.push(`file '${l}'`)}return r.join("\n")};const s=(e,t)=>{const r=e=>e.fragments.length>1;const s=e.filter(r);if(s.length===0){return null}const l=new Map;s.forEach(e=>{l.set(escapeFilename(`ffmpeg-files-${e.title}.txt`),e.fragments.map((r,s)=>{let l=` - ${s+1}`;if(t===true){l=""}const a=escapeFilename(`${e.title}${l}${t===true?n[s]:t}`).replace(/'/g,"'\\''");return`file '${a}'`}).join("\n"))});return l};const l=(e,t)=>{const r=[];e.forEach(e=>{e.fragments.forEach((s,l)=>{let a="";if(e.fragments.length>1&&t!==true){a=` - ${l+1}`}const c=escapeFilename(`${e.title}${a}${t===true?n[l]:t}`).replace(/'/g,"'\\''");r.push(`file '${c}'`)})});return r.join("\n")};return{export:{getFragmentsList:r,getBatchFragmentsList:s,getBatchEpisodesList:l}}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/fill-with-comments.min.js"] = (()=>{return(t,n)=>{const o="fill-with-comments-style";const r=t=>{if(t){if(dq("#"+o)){return}n.applyStyleFromText(`\n .v-wrap { position: relative !important; }\n .v-wrap .l-con { width: 100% !important; }\n .v-wrap .r-con {\n position: absolute !important;\n top: 0 !important;\n right: 0 !important;\n }\n`,o)}else{dqa("#"+o).forEach(t=>t.remove())}};return{export:{fillWithComments:r}}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/filter-type-switch.vue.min.js"] = (()=>{return(e,s)=>{const i=`
`;return{export:Object.assign({template:i},{components:{Icon:()=>s.importAsync("icon.vue")},props:["name","type"],methods:{setFilter(s,i=true){document.body.classList[s?"add":"remove"](`feeds-filter-block-${this.name}`);if(!i){return}if(s){e.feedsFilterTypes.push(this.type.id)}else{const s=e.feedsFilterTypes.indexOf(this.type.id);if(s!==-1){e.feedsFilterTypes.splice(s,1)}}e.feedsFilterTypes=e.feedsFilterTypes}},data(){const s=e.feedsFilterTypes.includes(this.type.id);this.setFilter(s,false);return{disabled:s}},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)}}})(); diff --git a/min/bundle.json b/min/bundle.json index 013fd59fd..d865b2e1d 100644 --- a/min/bundle.json +++ b/min/bundle.json @@ -56,7 +56,7 @@ "feeds-apis.min.js": "ED1FFDEBC22680C5089F9D30CF667535FB99881C96A969DB47BC70BF095A99E8", "feeds-filter-card.vue.min.js": "3A7F8F402EA46E43B718506329814953C9E358A8AF94088D4E5745D48296D80B", "feeds-filter.min.js": "10557E498B8BADA3C1C03E8C1DCD6FB24DBA2DA27A5A03BD861054F7E2989D46", - "ffmpeg-support.min.js": "1C9B76371E6E9DDE615FE0D74E11BF205F54C9B825FC9FF0223FB835617EA219", + "ffmpeg-support.min.js": "B88C5BFDC1CC582CA25098D6BA47189FF628B7323EF9F90D4CFBC4E946648927", "fill-with-comments.min.js": "037326432F579E35145333BBDDAFC0B225FE09C194CC84A2F7AE5833FEFBDFCA", "filter-type-switch.vue.min.js": "E06B00EF48F3CCFACC82B858A266CE0DF48F8332C5900B3AD579330D4C6D3125", "fix-fullscreen.min.js": "C0628A7CABB4421FCBD7663700EF9965C96F6D79979B9F7523A9F9B0B009C8B6", diff --git a/min/bundle.zip b/min/bundle.zip index 2330ebe92..c59e5f1ce 100644 Binary files a/min/bundle.zip and b/min/bundle.zip differ diff --git a/min/ffmpeg-support.min.js b/min/ffmpeg-support.min.js index 03883e8f1..bbdebba33 100644 --- a/min/ffmpeg-support.min.js +++ b/min/ffmpeg-support.min.js @@ -1 +1 @@ -(()=>{return(e,t)=>{const n=[".mp4",".m4a"];const r=(e,t,n)=>{if(e<2){return null}const r=[];for(let s=1;s<=e;s++){let e=` - ${s}`;if(n.includes(".m4a")){e=""}r.push(escapeFilename(`file '${t}${e}${n[s-1]}'`))}return r.join("\n")};const s=(e,t)=>{const r=e=>e.fragments.length>1;const s=e.filter(r);if(s.length===0){return null}const i=new Map;s.forEach(e=>{i.set(escapeFilename(`ffmpeg-files-${e.title}.txt`),e.fragments.map((r,s)=>{let i=` - ${s+1}`;if(t===true){i=""}return escapeFilename(`file '${e.title}${i}${t===true?n[s]:t}'`)}).join("\n"))});return i};const i=(e,t)=>{const r=[];e.forEach(e=>{e.fragments.forEach((s,i)=>{let l="";if(e.fragments.length>1&&t!==true){l=` - ${i+1}`}r.push(escapeFilename(`file '${e.title}${l}${t===true?n[i]:t}'`))})});return r.join("\n")};return{export:{getFragmentsList:r,getBatchFragmentsList:s,getBatchEpisodesList:i}}}})(); \ No newline at end of file +(()=>{return(e,t)=>{const n=[".mp4",".m4a"];const r=(e,t,n)=>{if(e<2){return null}const r=[];for(let s=1;s<=e;s++){let e=` - ${s}`;if(n.includes(".m4a")){e=""}const l=escapeFilename(`${t}${e}${n[s-1]}`).replace(/'/g,"'\\''");r.push(`file '${l}'`)}return r.join("\n")};const s=(e,t)=>{const r=e=>e.fragments.length>1;const s=e.filter(r);if(s.length===0){return null}const l=new Map;s.forEach(e=>{l.set(escapeFilename(`ffmpeg-files-${e.title}.txt`),e.fragments.map((r,s)=>{let l=` - ${s+1}`;if(t===true){l=""}const a=escapeFilename(`${e.title}${l}${t===true?n[s]:t}`).replace(/'/g,"'\\''");return`file '${a}'`}).join("\n"))});return l};const l=(e,t)=>{const r=[];e.forEach(e=>{e.fragments.forEach((s,l)=>{let a="";if(e.fragments.length>1&&t!==true){a=` - ${l+1}`}const c=escapeFilename(`${e.title}${a}${t===true?n[l]:t}`).replace(/'/g,"'\\''");r.push(`file '${c}'`)})});return r.join("\n")};return{export:{getFragmentsList:r,getBatchFragmentsList:s,getBatchEpisodesList:l}}}})(); \ No newline at end of file diff --git a/src/video/download-video/ffmpeg-support.ts b/src/video/download-video/ffmpeg-support.ts index c789e65af..ad6b4cea3 100644 --- a/src/video/download-video/ffmpeg-support.ts +++ b/src/video/download-video/ffmpeg-support.ts @@ -11,7 +11,8 @@ export const getFragmentsList = (count: number, originalTitle: string, extension if (extensions.includes('.m4a')) { indexNumber = '' } - names.push(escapeFilename(`file '${originalTitle}${indexNumber}${extensions[index - 1]}'`)) + const filename = escapeFilename(`${originalTitle}${indexNumber}${extensions[index - 1]}`).replace(/'/g, "'\\''") + names.push(`file '${filename}'`) } return names.join('\n') } @@ -28,7 +29,8 @@ export const getBatchFragmentsList = (items: RawItem[], extensionOrDash: string if (extensionOrDash === true) { indexNumber = '' } - return escapeFilename(`file '${item.title}${indexNumber}${extensionOrDash === true ? dashExtensions[index] : extensionOrDash}'`) + const filename = escapeFilename(`${item.title}${indexNumber}${extensionOrDash === true ? dashExtensions[index] : extensionOrDash}`).replace(/'/g, "'\\''") + return `file '${filename}'` }).join('\n')) }) return names @@ -41,7 +43,8 @@ export const getBatchEpisodesList = (items: RawItem[], extensionOrDash: string | if (item.fragments.length > 1 && extensionOrDash !== true) { indexNumber = ` - ${index + 1}` } - names.push(escapeFilename(`file '${item.title}${indexNumber}${extensionOrDash === true ? dashExtensions[index] : extensionOrDash}'`)) + const filename = escapeFilename(`${item.title}${indexNumber}${extensionOrDash === true ? dashExtensions[index] : extensionOrDash}`).replace(/'/g, "'\\''") + names.push(`file '${filename}'`) }) }) return names.join('\n')