Bilibili-Evolved/min/outer-watchlater.min.js
2019-04-17 20:28:57 +08:00

1 line
1.7 KiB
JavaScript

(()=>{return(t,e)=>{(async()=>{if(!document.URL.includes("//www.bilibili.com/video/av")){return}await SpinQuery.condition(()=>document.querySelector(".video-toolbar .ops .collect"),t=>{return t!==null&&t.innerText!=="--"});const t=document.cookie.replace(/(?:(?:^|.*;\s*)bili_jct\s*\=\s*([^;]*).*$)|^.*$/,"$1");const e=document.querySelector(".video-toolbar .ops .collect");if(!e){return}e.insertAdjacentHTML("afterend",`\n <span title="稍后再看" class="watchlater">\n <i class="mdi mdi-timetable"></i>\n 稍后再看\n <div class="tip"></div>\n </span>\n `);const i=document.querySelector(".ops .watchlater");const s=document.querySelector(".ops .watchlater .tip");if(!i||!s){return}let o;const n=async()=>{const t=await SpinQuery.select(()=>unsafeWindow.aid);const e=await Ajax.getJsonWithCredentials("https://api.bilibili.com/x/v2/history/toview/web");if(e.code!==0){e.data={list:[]}}const s=e.data.list.map(t=>t.aid);if(s.includes(parseInt(t))){i.classList.add("on")}else{i.classList.remove("on")}return t};Observer.videoChange(async()=>{o=await n()});let a=0;const c=async({url:e,tipText:i})=>{const n=await Ajax.postTextWithCredentials(e,`aid=${o}&csrf=${t}`);const c=JSON.parse(n);if(c.code!==0){logError(`稍后再看操作失败: ${n}`)}else{s.innerHTML=i;s.classList.add("show");if(a!==0){clearTimeout(a)}a=setTimeout(()=>s.classList.remove("show"),2e3)}};i.addEventListener("click",()=>{i.classList.toggle("on");if(i.classList.contains("on")){c({url:"https://api.bilibili.com/x/v2/history/toview/add",tipText:"已添加至稍后再看"})}else{c({url:"https://api.bilibili.com/x/v2/history/toview/del",tipText:"已从稍后再看移除"})}})})()}})();