Bilibili-Evolved/min/watchlater.min.js
2021-04-24 18:20:23 +08:00

1 line
2.4 KiB
JavaScript

(()=>(t,e)=>{const i=t=>{const e=t.match(/(BV[\w]+)\/p([\d]+)/i)||t.match(/(av[\d]+)\/p([\d]+)/i);if(e){return`https://www.bilibili.com/video/${e[1]}/?p=${e[2]}`}else{return"javascript:;"}};const r=t=>{const e=t.map((t=>{const e=t.getAttribute("href");if(!e){return"javascript:;"}if(e.match(/.*watchlater.*|javascript:;/g)){return i(e)}if(e.match(/video\/av|video\/BV/i)){return e}return e}));t.forEach(((t,i)=>{t.setAttribute("href",e[i]);t.setAttribute("target","_blank")}))};const a=(...t)=>{for(const e of t){SpinQuery.select((()=>document.querySelectorAll(e)),(t=>r([...t])))}};if(t.watchLaterRedirectPage){if(document.URL==="https://www.bilibili.com/watchlater/#/list"){(async()=>{const{getWatchlaterList:t}=await e.importAsync("watchlater-api");const i=await t(true);const r=await SpinQuery.select(".watch-later-list .list-box > span");if(!r){return}const a=(t,e)=>{try{var r,a;const c=i[e];const s=c.bvid;const l=c.cid;const o=c.pages;const n=(r=(a=o.find((t=>t.cid===l)))===null||a===void 0?void 0:a.page)!==null&&r!==void 0?r:1;const d=n>1?`https://www.bilibili.com/video/${s}?p=${n}`:`https://www.bilibili.com/video/${s}`;const h=t.querySelector(".av-pic");h.target="_blank";h.href=d;const u=t.querySelector(".av-about .t");u.target="_blank";u.href=d}catch(i){console.error(`[watchlater redirect] error at index ${e}`,t,i)}};const c=()=>{const t=r.querySelectorAll(".av-item");t.forEach(a)};Observer.childList(r,(t=>{t.forEach((t=>{t.removedNodes.forEach((t=>{if(t instanceof HTMLElement&&!t.classList.contains("itemlist-move")){const e=parseInt(dq(t,".key").textContent)-1;console.log("remove index",e);i.splice(e,1)}}))}));c()}))})()}}if(t.watchLaterRedirectNavbar){SpinQuery.select(".van-popper-favorite").then((async t=>{if(!t){return}const e=Observer.childListSubtree(t,(()=>{const i=t.querySelector(".play-all");if(i){const t="//www.bilibili.com/watchlater/#/list";Observer.attributes(i,(()=>{if(i.firstElementChild===null||i.lastChild===null){return}if(i.getAttribute("href")==="//www.bilibili.com/watchlater/"){i.setAttribute("href",t);i.firstElementChild.classList.remove("bili-icon_dingdao_bofang");i.firstElementChild.classList.add("bili-icon_xinxi_yuedushu");i.lastChild.nodeValue="查看全部"}else if(i.getAttribute("href")!==t){i.firstElementChild.classList.add("bili-icon_dingdao_bofang");i.firstElementChild.classList.remove("bili-icon_xinxi_yuedushu");i.lastChild.nodeValue="播放全部"}}));e.forEach((t=>t.stop()))}}))}))}})();