mirror of
https://github.com/the1812/Bilibili-Evolved.git
synced 2025-11-04 21:22:45 +08:00
Fix watchlater link (#1640)
This commit is contained in:
parent
08b0782a2c
commit
eb952b9c3e
2
min/custom-navbar-watchlater-list.min.js
vendored
2
min/custom-navbar-watchlater-list.min.js
vendored
@ -1 +1 @@
|
||||
(()=>(t,i)=>{function e(t,i,e){if(i in t){Object.defineProperty(t,i,{value:e,enumerable:true,configurable:true,writable:true})}else{t[i]=e}return t}const{NavbarComponent:a}=i.import("custom-navbar-component");class s extends a{constructor(){super();e(this,"vm",void 0);this.boundingWidth=380;this.noPadding=true;this.href="https://www.bilibili.com/watchlater/#/list";this.html="稍后再看";this.active=document.URL.startsWith("https://www.bilibili.com/watchlater/");this.popupHtml=`\n<div class="watchlater-list loading">\n<div class="loading-tip">\n 加载中...\n</div>\n<div class="empty-tip" v-if="filteredCards.length === 0">\n 空空如也哦 = ̄ω ̄=\n</div>\n<div class="header">\n \x3c!--<div class="operations">\n<div v-if="!redirect" class="round-button" title="播放全部"><i class="mdi mdi-play-circle-outline"></i></div>\n<div class="round-button" title="移除已观看"><i class="mdi mdi-eye-check-outline"></i></div>\n<div class="round-button" title="清空全部"><i class="mdi mdi-trash-can-outline"></i></div>\n</div>--\x3e\n<div class="search">\n<input type="text" placeholder="搜索" v-model="search">\n</div>\n<a class="round-button" target="_blank" href="https://www.bilibili.com/medialist/play/watchlater" title="播放全部">\n<i class="mdi mdi-play"></i>\n</a>\n<a class="round-button" href="https://www.bilibili.com/watchlater/#/list" title="查看更多" target="_blank">\n<i class="mdi mdi-dots-horizontal"></i>\n</a>\n</div>\n<transition-group name="cards" tag="div" class="cards">\n<div class="watchlater-card" v-for="(card, index) of filteredCards" :key="card.aid">\n<a class="cover-container" target="_blank" :href="card.href">\n<dpi-img class="cover" :src="card.coverUrl" :size="{width: 130, height: 85}"></dpi-img>\n<div class="floating remove" title="移除" @click.prevent="remove(card.aid, index)"><i class="mdi mdi-close"></i></div>\n<div class="floating duration">{{card.durationText}}</div>\n<div class="floating viewed" v-if="card.complete">\n 已观看\n</div>\n</a>\n<a class="title" target="_blank" :href="card.href" :title="card.title">{{card.title}}</a>\n<a class="up" target="_blank" :href="'https://space.bilibili.com/' + card.upID" :title="card.upName">\n<dpi-img class="face" :src="card.upFaceUrl" :size="20"></dpi-img>\n<div class="name">{{card.upName}}</div>\n</a>\n</div>\n</transition-group>\n \x3c!--<div class="undo round-button">\n<i class="mdi mdi-undo-variant"></i>\n 撤销\n</div>--\x3e\n</div>\n`;this.initialPopup=()=>{this.init()};this.onPopup=()=>{var t;(t=this.vm)===null||t===void 0?void 0:t.updateList()}}async init(){this.vm=new Vue({el:await SpinQuery.select(`.custom-navbar [data-name="${this.name}"] .watchlater-list`),store:store,components:{DpiImg:()=>i.importAsync("dpi-img.vue")},data:{cards:[],filteredCards:[],search:"",lastRemovedAid:0,redirect:t.watchLaterRedirect&&t.watchLaterRedirectNavbar},computed:{...Vuex.mapState(["watchlaterList"])},watch:{search(){this.updateFilteredCards()}},methods:{...Vuex.mapActions(["toggleWatchlater"]),async updateList(){const{getWatchlaterList:t}=await i.importAsync("watchlater-api");const e=await t(true);if(!e){this.cards=[];return}const a=t=>{if(this.redirect){return`https://www.bilibili.com/video/${t.bvid}`}return`https://www.bilibili.com/watchlater/#/${t.bvid}`};const s=e.map((t=>{const i=(()=>{if(t.pages===undefined){return a(t)}const i=t.pages.map((t=>t.cid));const e=t.cid===0?1:i.indexOf(t.cid)+1;return this.redirect?`${a(t)}?p=${e}`:`${a(t)}/p${e}`})();const e=Math.round(1e3*t.progress/t.duration)/1e3;return{aid:t.aid,bvid:t.bvid,href:i,coverUrl:t.pic.replace("http:","https:"),durationText:formatDuration(t.duration),duration:t.duration,complete:t.progress<0||e>.95,title:t.title,upName:t.owner.name,upFaceUrl:t.owner.face.replace("http:","https:"),upID:t.owner.mid}}));this.cards=s;if(this.search){this.updateFilteredCards()}else{this.filteredCards=s}},async remove(t,i){this.cards.splice(i,1);await this.toggleWatchlater(t);this.lastRemovedAid=t},async undo(){const t=this.lastRemovedAid;if(t!==0){await this.toggleWatchlater(t)}},updateFilteredCards:_.debounce((function(){const t=this.search.toLowerCase();const i=this.$el.querySelector(".cards");i.scrollTo(0,0);this.filteredCards=this.cards.filter((i=>i.title.toLowerCase().includes(t)||i.upName.toLowerCase().includes(t)))}),100)},async mounted(){try{await this.updateList()}finally{this.$el.classList.remove("loading")}}})}get name(){return"watchlaterList"}}return{export:{WatchlaterList:s}}})();
|
||||
(()=>(t,i)=>{function e(t,i,e){if(i in t){Object.defineProperty(t,i,{value:e,enumerable:true,configurable:true,writable:true})}else{t[i]=e}return t}const{NavbarComponent:a}=i.import("custom-navbar-component");class s extends a{constructor(){super();e(this,"vm",void 0);this.boundingWidth=380;this.noPadding=true;this.href="https://www.bilibili.com/watchlater/#/list";this.html="稍后再看";this.active=document.URL.startsWith("https://www.bilibili.com/watchlater/");this.popupHtml=`\n<div class="watchlater-list loading">\n<div class="loading-tip">\n 加载中...\n</div>\n<div class="empty-tip" v-if="filteredCards.length === 0">\n 空空如也哦 = ̄ω ̄=\n</div>\n<div class="header">\n \x3c!--<div class="operations">\n<div v-if="!redirect" class="round-button" title="播放全部"><i class="mdi mdi-play-circle-outline"></i></div>\n<div class="round-button" title="移除已观看"><i class="mdi mdi-eye-check-outline"></i></div>\n<div class="round-button" title="清空全部"><i class="mdi mdi-trash-can-outline"></i></div>\n</div>--\x3e\n<div class="search">\n<input type="text" placeholder="搜索" v-model="search">\n</div>\n<a class="round-button" target="_blank" href="https://www.bilibili.com/medialist/play/watchlater" title="播放全部">\n<i class="mdi mdi-play"></i>\n</a>\n<a class="round-button" href="https://www.bilibili.com/watchlater/#/list" title="查看更多" target="_blank">\n<i class="mdi mdi-dots-horizontal"></i>\n</a>\n</div>\n<transition-group name="cards" tag="div" class="cards">\n<div class="watchlater-card" v-for="(card, index) of filteredCards" :key="card.aid">\n<a class="cover-container" target="_blank" :href="card.href">\n<dpi-img class="cover" :src="card.coverUrl" :size="{width: 130, height: 85}"></dpi-img>\n<div class="floating remove" title="移除" @click.prevent="remove(card.aid, index)"><i class="mdi mdi-close"></i></div>\n<div class="floating duration">{{card.durationText}}</div>\n<div class="floating viewed" v-if="card.complete">\n 已观看\n</div>\n</a>\n<a class="title" target="_blank" :href="card.href" :title="card.title">{{card.title}}</a>\n<a class="up" target="_blank" :href="'https://space.bilibili.com/' + card.upID" :title="card.upName">\n<dpi-img class="face" :src="card.upFaceUrl" :size="20"></dpi-img>\n<div class="name">{{card.upName}}</div>\n</a>\n</div>\n</transition-group>\n \x3c!--<div class="undo round-button">\n<i class="mdi mdi-undo-variant"></i>\n 撤销\n</div>--\x3e\n</div>\n`;this.initialPopup=()=>{this.init()};this.onPopup=()=>{var t;(t=this.vm)===null||t===void 0?void 0:t.updateList()}}async init(){this.vm=new Vue({el:await SpinQuery.select(`.custom-navbar [data-name="${this.name}"] .watchlater-list`),store:store,components:{DpiImg:()=>i.importAsync("dpi-img.vue")},data:{cards:[],filteredCards:[],search:"",lastRemovedAid:0,redirect:t.watchLaterRedirect&&t.watchLaterRedirectNavbar},computed:{...Vuex.mapState(["watchlaterList"])},watch:{search(){this.updateFilteredCards()}},methods:{...Vuex.mapActions(["toggleWatchlater"]),async updateList(){const{getWatchlaterList:t}=await i.importAsync("watchlater-api");const e=await t(true);if(!e){this.cards=[];return}const a=t=>{if(this.redirect){return`https://www.bilibili.com/video/${t.bvid}`}return`https://www.bilibili.com/medialist/play/watchlater/${t.bvid}`};const s=e.map((t=>{const i=(()=>{if(t.pages===undefined){return a(t)}const i=t.pages.map((t=>t.cid));const e=t.cid===0?1:i.indexOf(t.cid)+1;return this.redirect?`${a(t)}?p=${e}`:a(t)})();const e=Math.round(1e3*t.progress/t.duration)/1e3;return{aid:t.aid,bvid:t.bvid,href:i,coverUrl:t.pic.replace("http:","https:"),durationText:formatDuration(t.duration),duration:t.duration,complete:t.progress<0||e>.95,title:t.title,upName:t.owner.name,upFaceUrl:t.owner.face.replace("http:","https:"),upID:t.owner.mid}}));this.cards=s;if(this.search){this.updateFilteredCards()}else{this.filteredCards=s}},async remove(t,i){this.cards.splice(i,1);await this.toggleWatchlater(t);this.lastRemovedAid=t},async undo(){const t=this.lastRemovedAid;if(t!==0){await this.toggleWatchlater(t)}},updateFilteredCards:_.debounce((function(){const t=this.search.toLowerCase();const i=this.$el.querySelector(".cards");i.scrollTo(0,0);this.filteredCards=this.cards.filter((i=>i.title.toLowerCase().includes(t)||i.upName.toLowerCase().includes(t)))}),100)},async mounted(){try{await this.updateList()}finally{this.$el.classList.remove("loading")}}})}get name(){return"watchlaterList"}}return{export:{WatchlaterList:s}}})();
|
||||
@ -124,7 +124,7 @@ export class WatchlaterList extends NavbarComponent {
|
||||
if (this.redirect) {
|
||||
return `https://www.bilibili.com/video/${item.bvid}`
|
||||
}
|
||||
return `https://www.bilibili.com/watchlater/#/${item.bvid}`
|
||||
return `https://www.bilibili.com/medialist/play/watchlater/${item.bvid}`
|
||||
}
|
||||
const cards = rawList.map(item => {
|
||||
const href = (() => {
|
||||
@ -133,9 +133,8 @@ export class WatchlaterList extends NavbarComponent {
|
||||
}
|
||||
const pages = item.pages.map(it => it.cid)
|
||||
const page = item.cid === 0 ? 1 : pages.indexOf(item.cid) + 1
|
||||
return this.redirect ?
|
||||
`${getLink(item)}?p=${page}` :
|
||||
`${getLink(item)}/p${page}`
|
||||
// 新的稍后再看列表不接受 p 参数, 估计是会根据历史记录来跳分 P ?
|
||||
return this.redirect ? `${getLink(item)}?p=${page}` : getLink(item)
|
||||
})()
|
||||
const percent = Math.round(1000 * item.progress / item.duration) / 1000
|
||||
return {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user