diff --git a/bilibili-evolved.offline.user.js b/bilibili-evolved.offline.user.js
index f05e5cd82..40fce5d5d 100644
--- a/bilibili-evolved.offline.user.js
+++ b/bilibili-evolved.offline.user.js
@@ -1,6 +1,6 @@
// ==UserScript==
// @name Bilibili Evolved (Offline)
-// @version 357.98
+// @version 358.35
// @description Bilibili Evolved 的离线版, 所有功能都已内置于脚本中.
// @author Grant Howard, Coulomb-G
// @copyright 2019, Grant Howard (https://github.com/the1812) & Coulomb-G (https://github.com/Coulomb-G)
@@ -1046,7 +1046,7 @@ offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/m
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/old-tweets.min.js"] = (()=>{return(t,i)=>{const n=[`a.read-more[href*='t.bilibili.com']`,`.link-navbar a[href*='t.bilibili.com']`,`.bili-header-m .nav-menu .nav-con .nav-item [href*='t.bilibili.com']`];const o=`https://www.bilibili.com/account/dynamic`;const e=`https://t.bilibili.com/`;const c=()=>{for(const t of n){SpinQuery.any(()=>document.querySelectorAll(t),t=>t.forEach(t=>t.setAttribute("href",o)))}};SpinQuery.select(".dynamic-m .wnd_bottom .r-l").then(t=>{if(t!==null){Observer.childList(".dynamic-m .wnd_bottom .r-l",c)}});c();const s=location.host==="t.bilibili.com";return{widget:{condition:()=>{return document.URL.startsWith(e)||document.URL.startsWith(o)},content:`\n `,success:()=>{const t=document.querySelector("#old-tweets");t.addEventListener("click",()=>{location.assign(s?o:e)})}}}}})();
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/old.min.css"] = `.b-header-mask-wrp .b-header-mask,.bili-header-m>.nav-menu{background:var(--theme-color)!important;box-shadow:var(--theme-color-70) 0 2px 10px 1px!important}.b-header-mask-wrp,.z_top,body .bili-header-m .nav-menu div.nav-mask{background-color:transparent!important;box-shadow:none!important}.b-header-mask-wrp{overflow:unset!important}.bili-header-m .nav-menu .nav-con .nav-item .t,.z_top.b-header-blur .z_top_nav li:not(.home) a.i-link{color:var(--foreground-color-d)!important}.uns_box ul.menu li:not(.b-post):hover,.z_top .z_top_nav ul li:hover,li.nav-item:not(.profile-info):hover{background-color:hsla(0,0%,var(--brightness),.2)!important}.vip-m{background:#fff!important}a.t>i.bili-icon{filter:brightness(0) var(--invert-filter)!important;background-image:url(https://www.bilibili.com/favicon.ico)!important;background-size:cover!important;background-position:inherit!important;width:16px!important;height:16px!important;opacity:.81!important}.header-icon-bilibili-tv{filter:brightness(0) var(--invert-filter)!important;opacity:.81;transform:scale(.9)}.z_top .z_top_nav ul li.home{filter:brightness(0) invert(1)!important;background:url(https://www.bilibili.com/favicon.ico) left center/16px no-repeat!important;opacity:.81!important;background-position-x:16%!important}#entryOld,.b-icon-app,.nav-search-submit,.title-icon,.uns_box li.u-i.b-post .up-new,.z_top .z_top_nav li .beta,.z_top .z_top_nav li .new,body>#Header{display:none!important}.i-face>.face,.uns_box li.u-i .i_face{box-shadow:0 0 2px 1.5px #0002!important}div.up-load{margin:5px 0 0 5px!important;height:32px!important}.u-link,.uns_box li.u-i.b-post a.i-link{background:0 0!important;color:var(--foreground-color-d)!important;border-radius:4px!important;line-height:30px!important;height:30px!important;border:1px solid!important;transition:background-color .2s!important}.u-link:hover,.uns_box li.u-i.b-post a.i-link:hover{opacity:1!important;background-color:hsla(0,0%,var(--brightness),.2)!important}.uns_box li.u-i.b-post{margin-left:8px!important}.nav-search{width:140px!important}.nav-search-keyword{width:130px!important;margin-right:32px!important}#nav_searchform{border-radius:4px!important;background:#fffb!important;border:none!important;transition:background-color .2s!important;box-shadow:0 2px 10px 1px #0002}#nav_searchform:hover{background-color:#fff!important}.nav-search-submit{top:2px!important}.showSearch .nav-search-submit{top:4px!important}#bilibiliPlayer{box-shadow:0 4px 16px 0 var(--theme-color-40)!important}.blur-bg{opacity:var(--blur-background-opacity)!important;filter:blur(20px)!important}.suggest-item .cancel{width:28px!important}ul.bilibili-suggest{margin-left:-30px!important;width:200px!important}li.suggest-item>a{max-width:155px!important}.nav-item div.num{box-shadow:0 .5px 4px 0 #0004!important}#primary_menu,#primary_menu>ul.nav-menu,.uns_box li.u-i.b-post{display:flex!important;align-items:center!important}#primary_menu,div.nav-gif{padding:0!important}.up-nav{top:37px!important}.filter-item.search,body{margin:0!important}.input-box textarea{padding:8px!important}.bili-header-m .nav-search .nav-search-keyword{color:#222!important}.tag-container .tag-item .tag-border .tag-border-inner{width:100%!important}.search-module .search-block input::placeholder,input.nav-search-keyword::placeholder{color:#888!important}#home_noob.guide-box{display:flex!important}@media only screen and (min-width:1291px){.bilibili-suggest.nav,.nav-search{width:250px!important}.nav-search-keyword{width:240px!important}ul.bilibili-suggest{margin-left:0!important;width:250px!important}li.suggest-item>a{max-width:205px!important}}`;
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/outer-watchlater.min.css"] = `.ops .watchlater{margin-right:28px!important;position:relative}.ops .watchlater .tip{position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);z-index:1000;background:#000d;padding:4px 8px;border-radius:4px;color:#eee;transition:.2s ease-out;opacity:0}.watchlater .tip.show{opacity:1}.ops .watchlater>i{display:inline-block;font-style:normal;vertical-align:baseline;text-align:center;text-transform:none;line-height:1;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}.more-ops-list>ul>li:nth-child(2){display:none!important}`;
-offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/outer-watchlater.min.js"] = (()=>{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 \n \n 稍后再看\n \n \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:"已从稍后再看移除"})}})})()}})();
+offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/outer-watchlater.min.js"] = (()=>{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 \n \n 稍后再看\n \n \n `);const i=document.querySelector(".ops .watchlater");const s=document.querySelector(".ops .watchlater .tip");if(!i||!s){return}let a;const o=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()=>{a=await o()});let n=0;const c=async({url:e,tipText:i})=>{const o=await Ajax.postTextWithCredentials(e,`aid=${a}&csrf=${t}`);const c=JSON.parse(o);if(c.code!==0){logError(`稍后再看操作失败: ${c.message}`);return false}else{s.innerHTML=i;s.classList.add("show");if(n!==0){clearTimeout(n)}n=setTimeout(()=>s.classList.remove("show"),2e3);return true}};i.addEventListener("click",async()=>{i.classList.toggle("on");let t;if(i.classList.contains("on")){t=await c({url:"https://api.bilibili.com/x/v2/history/toview/add",tipText:"已添加至稍后再看"})}else{t=await c({url:"https://api.bilibili.com/x/v2/history/toview/del",tipText:"已从稍后再看移除"})}if(t==false){i.classList.toggle("on")}})})()}})();
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/override-navbar.min.css"] = `div.nav-menu{width:unset!important}body .bili-header-m .nav-menu div.bili-wrapper{width:1018px;margin:0 auto!important}.search{position:relative!important;float:right!important;margin:26px 24px 5px 0!important;width:130px!important;height:30px!important;background-color:transparent!important;padding:0!important}form.searchform{background-color:#fffb!important;box-shadow:0 2px 10px 1px #0002!important;height:30px!important}form.searchform:focus-within,form.searchform:hover{background-color:#fff!important}a.link-ranking,button.search-submit{display:none!important}input.search-keyword{width:110px!important;height:30px!important;padding:0 10px!important}.preserve-rank{display:flex!important}.preserve-rank>a{opacity:.382;filter:brightness(0);display:flex;align-items:center;justify-content:center;transform:scale(.64);cursor:pointer;width:30px;transition:.2s ease-out!important;flex-shrink:0}.preserve-rank>a:hover{opacity:.75}.preserve-rank>input{padding-left:0!important}@media only screen and (min-width:1291px){body .bili-header-m .nav-menu div.bili-wrapper{width:1234px!important}.search{width:250px!important;margin:26px 24px 5px 0!important}input.search-keyword{width:230px!important}}`;
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/override-navbar.min.js"] = (()=>{return(e,n)=>{if(document.querySelector(`.z_header`)!==null){n.removeStyle("tweetsStyle");return}SpinQuery.any(()=>$(".head-content.bili-wrapper>div.search:not(.filter-item)"),e=>{const n=$(document.querySelector(".nav-con.fr"));e.detach().insertAfter(n)});if(e.preserveRank){SpinQuery.select(()=>document.querySelector(".nav-wrapper .searchform,.nav-con #nav_searchform"),e=>{e.classList.add("preserve-rank");if(!e.querySelector("a.icons-enabled")){e.insertAdjacentHTML("afterbegin",`\n \n \n \n `)}})}else{SpinQuery.select(()=>document.querySelector(".nav-wrapper .searchform,.nav-con #nav_searchform"),e=>{e.classList.remove("preserve-rank");const n=e.querySelector("a.icons-enabled");n&&n.remove()})}SpinQuery.any(()=>$("#banner_link"),()=>n.removeStyle("tweetsStyle"));if(!e.showBanner){n.applyStyle("noBannerStyle")}else{n.removeStyle("noBannerStyle")}}})();
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/player-focus.min.js"] = (()=>{return(e,o)=>{const n=document.URL.includes("bangumi")?"#bofqi":".video-info .video-title .tit";SpinQuery.count(".nav-con,#bofqi",3).then(()=>{const o=document.querySelector(n);if(o===null){return}o.scrollIntoView();if(e.playerFocusOffset!==0){window.scrollBy(0,e.playerFocusOffset)}})}})();
diff --git a/bilibili-evolved.preview-offline.user.js b/bilibili-evolved.preview-offline.user.js
index c9d3f10cd..9a5cb042c 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 357.98
+// @version 358.35
// @description Bilibili Evolved 的预览离线版, 可以抢先体验新功能, 并且所有功能都已内置于脚本中.
// @author Grant Howard, Coulomb-G
// @copyright 2019, Grant Howard (https://github.com/the1812) & Coulomb-G (https://github.com/Coulomb-G)
@@ -1046,7 +1046,7 @@ offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/m
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/old-tweets.min.js"] = (()=>{return(t,i)=>{const n=[`a.read-more[href*='t.bilibili.com']`,`.link-navbar a[href*='t.bilibili.com']`,`.bili-header-m .nav-menu .nav-con .nav-item [href*='t.bilibili.com']`];const o=`https://www.bilibili.com/account/dynamic`;const e=`https://t.bilibili.com/`;const c=()=>{for(const t of n){SpinQuery.any(()=>document.querySelectorAll(t),t=>t.forEach(t=>t.setAttribute("href",o)))}};SpinQuery.select(".dynamic-m .wnd_bottom .r-l").then(t=>{if(t!==null){Observer.childList(".dynamic-m .wnd_bottom .r-l",c)}});c();const s=location.host==="t.bilibili.com";return{widget:{condition:()=>{return document.URL.startsWith(e)||document.URL.startsWith(o)},content:`\n `,success:()=>{const t=document.querySelector("#old-tweets");t.addEventListener("click",()=>{location.assign(s?o:e)})}}}}})();
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/old.min.css"] = `.b-header-mask-wrp .b-header-mask,.bili-header-m>.nav-menu{background:var(--theme-color)!important;box-shadow:var(--theme-color-70) 0 2px 10px 1px!important}.b-header-mask-wrp,.z_top,body .bili-header-m .nav-menu div.nav-mask{background-color:transparent!important;box-shadow:none!important}.b-header-mask-wrp{overflow:unset!important}.bili-header-m .nav-menu .nav-con .nav-item .t,.z_top.b-header-blur .z_top_nav li:not(.home) a.i-link{color:var(--foreground-color-d)!important}.uns_box ul.menu li:not(.b-post):hover,.z_top .z_top_nav ul li:hover,li.nav-item:not(.profile-info):hover{background-color:hsla(0,0%,var(--brightness),.2)!important}.vip-m{background:#fff!important}a.t>i.bili-icon{filter:brightness(0) var(--invert-filter)!important;background-image:url(https://www.bilibili.com/favicon.ico)!important;background-size:cover!important;background-position:inherit!important;width:16px!important;height:16px!important;opacity:.81!important}.header-icon-bilibili-tv{filter:brightness(0) var(--invert-filter)!important;opacity:.81;transform:scale(.9)}.z_top .z_top_nav ul li.home{filter:brightness(0) invert(1)!important;background:url(https://www.bilibili.com/favicon.ico) left center/16px no-repeat!important;opacity:.81!important;background-position-x:16%!important}#entryOld,.b-icon-app,.nav-search-submit,.title-icon,.uns_box li.u-i.b-post .up-new,.z_top .z_top_nav li .beta,.z_top .z_top_nav li .new,body>#Header{display:none!important}.i-face>.face,.uns_box li.u-i .i_face{box-shadow:0 0 2px 1.5px #0002!important}div.up-load{margin:5px 0 0 5px!important;height:32px!important}.u-link,.uns_box li.u-i.b-post a.i-link{background:0 0!important;color:var(--foreground-color-d)!important;border-radius:4px!important;line-height:30px!important;height:30px!important;border:1px solid!important;transition:background-color .2s!important}.u-link:hover,.uns_box li.u-i.b-post a.i-link:hover{opacity:1!important;background-color:hsla(0,0%,var(--brightness),.2)!important}.uns_box li.u-i.b-post{margin-left:8px!important}.nav-search{width:140px!important}.nav-search-keyword{width:130px!important;margin-right:32px!important}#nav_searchform{border-radius:4px!important;background:#fffb!important;border:none!important;transition:background-color .2s!important;box-shadow:0 2px 10px 1px #0002}#nav_searchform:hover{background-color:#fff!important}.nav-search-submit{top:2px!important}.showSearch .nav-search-submit{top:4px!important}#bilibiliPlayer{box-shadow:0 4px 16px 0 var(--theme-color-40)!important}.blur-bg{opacity:var(--blur-background-opacity)!important;filter:blur(20px)!important}.suggest-item .cancel{width:28px!important}ul.bilibili-suggest{margin-left:-30px!important;width:200px!important}li.suggest-item>a{max-width:155px!important}.nav-item div.num{box-shadow:0 .5px 4px 0 #0004!important}#primary_menu,#primary_menu>ul.nav-menu,.uns_box li.u-i.b-post{display:flex!important;align-items:center!important}#primary_menu,div.nav-gif{padding:0!important}.up-nav{top:37px!important}.filter-item.search,body{margin:0!important}.input-box textarea{padding:8px!important}.bili-header-m .nav-search .nav-search-keyword{color:#222!important}.tag-container .tag-item .tag-border .tag-border-inner{width:100%!important}.search-module .search-block input::placeholder,input.nav-search-keyword::placeholder{color:#888!important}#home_noob.guide-box{display:flex!important}@media only screen and (min-width:1291px){.bilibili-suggest.nav,.nav-search{width:250px!important}.nav-search-keyword{width:240px!important}ul.bilibili-suggest{margin-left:0!important;width:250px!important}li.suggest-item>a{max-width:205px!important}}`;
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/outer-watchlater.min.css"] = `.ops .watchlater{margin-right:28px!important;position:relative}.ops .watchlater .tip{position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);z-index:1000;background:#000d;padding:4px 8px;border-radius:4px;color:#eee;transition:.2s ease-out;opacity:0}.watchlater .tip.show{opacity:1}.ops .watchlater>i{display:inline-block;font-style:normal;vertical-align:baseline;text-align:center;text-transform:none;line-height:1;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}.more-ops-list>ul>li:nth-child(2){display:none!important}`;
-offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/outer-watchlater.min.js"] = (()=>{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 \n \n 稍后再看\n \n \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:"已从稍后再看移除"})}})})()}})();
+offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/outer-watchlater.min.js"] = (()=>{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 \n \n 稍后再看\n \n \n `);const i=document.querySelector(".ops .watchlater");const s=document.querySelector(".ops .watchlater .tip");if(!i||!s){return}let a;const o=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()=>{a=await o()});let n=0;const c=async({url:e,tipText:i})=>{const o=await Ajax.postTextWithCredentials(e,`aid=${a}&csrf=${t}`);const c=JSON.parse(o);if(c.code!==0){logError(`稍后再看操作失败: ${c.message}`);return false}else{s.innerHTML=i;s.classList.add("show");if(n!==0){clearTimeout(n)}n=setTimeout(()=>s.classList.remove("show"),2e3);return true}};i.addEventListener("click",async()=>{i.classList.toggle("on");let t;if(i.classList.contains("on")){t=await c({url:"https://api.bilibili.com/x/v2/history/toview/add",tipText:"已添加至稍后再看"})}else{t=await c({url:"https://api.bilibili.com/x/v2/history/toview/del",tipText:"已从稍后再看移除"})}if(t==false){i.classList.toggle("on")}})})()}})();
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/override-navbar.min.css"] = `div.nav-menu{width:unset!important}body .bili-header-m .nav-menu div.bili-wrapper{width:1018px;margin:0 auto!important}.search{position:relative!important;float:right!important;margin:26px 24px 5px 0!important;width:130px!important;height:30px!important;background-color:transparent!important;padding:0!important}form.searchform{background-color:#fffb!important;box-shadow:0 2px 10px 1px #0002!important;height:30px!important}form.searchform:focus-within,form.searchform:hover{background-color:#fff!important}a.link-ranking,button.search-submit{display:none!important}input.search-keyword{width:110px!important;height:30px!important;padding:0 10px!important}.preserve-rank{display:flex!important}.preserve-rank>a{opacity:.382;filter:brightness(0);display:flex;align-items:center;justify-content:center;transform:scale(.64);cursor:pointer;width:30px;transition:.2s ease-out!important;flex-shrink:0}.preserve-rank>a:hover{opacity:.75}.preserve-rank>input{padding-left:0!important}@media only screen and (min-width:1291px){body .bili-header-m .nav-menu div.bili-wrapper{width:1234px!important}.search{width:250px!important;margin:26px 24px 5px 0!important}input.search-keyword{width:230px!important}}`;
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/override-navbar.min.js"] = (()=>{return(e,n)=>{if(document.querySelector(`.z_header`)!==null){n.removeStyle("tweetsStyle");return}SpinQuery.any(()=>$(".head-content.bili-wrapper>div.search:not(.filter-item)"),e=>{const n=$(document.querySelector(".nav-con.fr"));e.detach().insertAfter(n)});if(e.preserveRank){SpinQuery.select(()=>document.querySelector(".nav-wrapper .searchform,.nav-con #nav_searchform"),e=>{e.classList.add("preserve-rank");if(!e.querySelector("a.icons-enabled")){e.insertAdjacentHTML("afterbegin",`\n \n \n \n `)}})}else{SpinQuery.select(()=>document.querySelector(".nav-wrapper .searchform,.nav-con #nav_searchform"),e=>{e.classList.remove("preserve-rank");const n=e.querySelector("a.icons-enabled");n&&n.remove()})}SpinQuery.any(()=>$("#banner_link"),()=>n.removeStyle("tweetsStyle"));if(!e.showBanner){n.applyStyle("noBannerStyle")}else{n.removeStyle("noBannerStyle")}}})();
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/player-focus.min.js"] = (()=>{return(e,o)=>{const n=document.URL.includes("bangumi")?"#bofqi":".video-info .video-title .tit";SpinQuery.count(".nav-con,#bofqi",3).then(()=>{const o=document.querySelector(n);if(o===null){return}o.scrollIntoView();if(e.playerFocusOffset!==0){window.scrollBy(0,e.playerFocusOffset)}})}})();
diff --git a/min/outer-watchlater.min.js b/min/outer-watchlater.min.js
index e1d974cba..6e548ff51 100644
--- a/min/outer-watchlater.min.js
+++ b/min/outer-watchlater.min.js
@@ -1 +1 @@
-(()=>{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 \n \n 稍后再看\n \n \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:"已从稍后再看移除"})}})})()}})();
\ No newline at end of file
+(()=>{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 \n \n 稍后再看\n \n \n `);const i=document.querySelector(".ops .watchlater");const s=document.querySelector(".ops .watchlater .tip");if(!i||!s){return}let a;const o=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()=>{a=await o()});let n=0;const c=async({url:e,tipText:i})=>{const o=await Ajax.postTextWithCredentials(e,`aid=${a}&csrf=${t}`);const c=JSON.parse(o);if(c.code!==0){logError(`稍后再看操作失败: ${c.message}`);return false}else{s.innerHTML=i;s.classList.add("show");if(n!==0){clearTimeout(n)}n=setTimeout(()=>s.classList.remove("show"),2e3);return true}};i.addEventListener("click",async()=>{i.classList.toggle("on");let t;if(i.classList.contains("on")){t=await c({url:"https://api.bilibili.com/x/v2/history/toview/add",tipText:"已添加至稍后再看"})}else{t=await c({url:"https://api.bilibili.com/x/v2/history/toview/del",tipText:"已从稍后再看移除"})}if(t==false){i.classList.toggle("on")}})})()}})();
\ No newline at end of file
diff --git a/video/outer-watchlater/outer-watchlater.js b/video/outer-watchlater/outer-watchlater.js
index 2be49c94e..051fe3d5e 100644
--- a/video/outer-watchlater/outer-watchlater.js
+++ b/video/outer-watchlater/outer-watchlater.js
@@ -1,40 +1,40 @@
(async () => {
- if (!document.URL.includes("//www.bilibili.com/video/av")) {
+ if (!document.URL.includes('//www.bilibili.com/video/av')) {
return;
}
- await SpinQuery.condition(() => document.querySelector(".video-toolbar .ops .collect"), it => {
- return it !== null && it.innerText !== "--";
+ await SpinQuery.condition(() => document.querySelector('.video-toolbar .ops .collect'), it => {
+ return it !== null && it.innerText !== '--';
});
- const csrf = document.cookie.replace(/(?:(?:^|.*;\s*)bili_jct\s*\=\s*([^;]*).*$)|^.*$/, "$1");
- const favoriteButton = document.querySelector(".video-toolbar .ops .collect");
+ const csrf = document.cookie.replace(/(?:(?:^|.*\s*)bili_jct\s*\=\s*([^]*).*$)|^.*$/, '$1');
+ const favoriteButton = document.querySelector('.video-toolbar .ops .collect');
if (!favoriteButton) {
return;
}
- favoriteButton.insertAdjacentHTML("afterend", /*html*/ `
-
-
- 稍后再看
-
-
- `);
- const watchlaterButton = document.querySelector(".ops .watchlater");
- const tip = document.querySelector(".ops .watchlater .tip");
+ favoriteButton.insertAdjacentHTML('afterend', /*html*/ `
+
+
+ 稍后再看
+
+
+ `);
+ const watchlaterButton = document.querySelector('.ops .watchlater');
+ const tip = document.querySelector('.ops .watchlater .tip');
if (!watchlaterButton || !tip) {
return;
}
let aid;
const loadWatchlaterInfo = async () => {
const aid = await SpinQuery.select(() => unsafeWindow.aid);
- const json = await Ajax.getJsonWithCredentials("https://api.bilibili.com/x/v2/history/toview/web");
+ const json = await Ajax.getJsonWithCredentials('https://api.bilibili.com/x/v2/history/toview/web');
if (json.code !== 0) {
json.data = { list: [] };
}
const watchlaterList = json.data.list.map((it) => it.aid);
if (watchlaterList.includes(parseInt(aid))) {
- watchlaterButton.classList.add("on");
+ watchlaterButton.classList.add('on');
}
else {
- watchlaterButton.classList.remove("on");
+ watchlaterButton.classList.remove('on');
}
return aid;
};
@@ -46,30 +46,36 @@
const responseText = await Ajax.postTextWithCredentials(url, `aid=${aid}&csrf=${csrf}`);
const response = JSON.parse(responseText);
if (response.code !== 0) {
- logError(`稍后再看操作失败: ${responseText}`);
+ logError(`稍后再看操作失败: ${response.message}`);
+ return false;
}
else {
tip.innerHTML = tipText;
- tip.classList.add("show");
+ tip.classList.add('show');
if (tipShowing !== 0) {
clearTimeout(tipShowing);
}
- tipShowing = setTimeout(() => tip.classList.remove("show"), 2000);
+ tipShowing = setTimeout(() => tip.classList.remove('show'), 2000);
+ return true;
}
};
- watchlaterButton.addEventListener("click", () => {
- watchlaterButton.classList.toggle("on");
- if (watchlaterButton.classList.contains("on")) {
- toggleWatchlater({
- url: "https://api.bilibili.com/x/v2/history/toview/add",
- tipText: "已添加至稍后再看",
+ watchlaterButton.addEventListener('click', async () => {
+ watchlaterButton.classList.toggle('on');
+ let success;
+ if (watchlaterButton.classList.contains('on')) {
+ success = await toggleWatchlater({
+ url: 'https://api.bilibili.com/x/v2/history/toview/add',
+ tipText: '已添加至稍后再看',
});
}
else {
- toggleWatchlater({
- url: "https://api.bilibili.com/x/v2/history/toview/del",
- tipText: "已从稍后再看移除",
+ success = await toggleWatchlater({
+ url: 'https://api.bilibili.com/x/v2/history/toview/del',
+ tipText: '已从稍后再看移除',
});
}
+ if (success == false) {
+ watchlaterButton.classList.toggle('on');
+ }
});
})();
diff --git a/video/outer-watchlater/outer-watchlater.ts b/video/outer-watchlater/outer-watchlater.ts
index 9ccc94b53..4e048af8b 100644
--- a/video/outer-watchlater/outer-watchlater.ts
+++ b/video/outer-watchlater/outer-watchlater.ts
@@ -1,93 +1,85 @@
-(async () =>
-{
- if (!document.URL.includes("//www.bilibili.com/video/av"))
- {
- return;
+(async () => {
+ if (!document.URL.includes('//www.bilibili.com/video/av')) {
+ return
+ }
+ await SpinQuery.condition(() => document.querySelector('.video-toolbar .ops .collect'), it => {
+ return it !== null && (it as HTMLElement).innerText !== '--'
+ })
+ const csrf = document.cookie.replace(/(?:(?:^|.*\s*)bili_jct\s*\=\s*([^]*).*$)|^.*$/, '$1')
+ const favoriteButton = document.querySelector('.video-toolbar .ops .collect')
+ if (!favoriteButton) {
+ return
+ }
+ favoriteButton.insertAdjacentHTML('afterend', /*html*/`
+
+
+ 稍后再看
+
+
+ `)
+ const watchlaterButton = document.querySelector('.ops .watchlater')
+ const tip = document.querySelector('.ops .watchlater .tip')
+ if (!watchlaterButton || !tip) {
+ return
+ }
+ let aid: string
+ const loadWatchlaterInfo = async () => {
+ const aid = await SpinQuery.select(() => (unsafeWindow as any).aid)
+ const json = await Ajax.getJsonWithCredentials('https://api.bilibili.com/x/v2/history/toview/web')
+ if (json.code !== 0) {
+ json.data = { list: [] }
}
- await SpinQuery.condition(() => document.querySelector(".video-toolbar .ops .collect"), it =>
- {
- return it !== null && (it as HTMLElement).innerText !== "--";
- });
- const csrf = document.cookie.replace(/(?:(?:^|.*;\s*)bili_jct\s*\=\s*([^;]*).*$)|^.*$/, "$1");
- const favoriteButton = document.querySelector(".video-toolbar .ops .collect");
- if (!favoriteButton)
- {
- return;
+ const watchlaterList = json.data.list.map((it: any) => it.aid) as Array
+ if (watchlaterList.includes(parseInt(aid))) {
+ watchlaterButton.classList.add('on')
}
- favoriteButton.insertAdjacentHTML("afterend", /*html*/`
-
-
- 稍后再看
-
-
- `);
- const watchlaterButton = document.querySelector(".ops .watchlater");
- const tip = document.querySelector(".ops .watchlater .tip");
- if (!watchlaterButton || !tip)
- {
- return;
+ else {
+ watchlaterButton.classList.remove('on')
}
- let aid: string;
- const loadWatchlaterInfo = async () =>
- {
- const aid = await SpinQuery.select(() => (unsafeWindow as any).aid);
- const json = await Ajax.getJsonWithCredentials("https://api.bilibili.com/x/v2/history/toview/web");
- if (json.code !== 0)
- {
- json.data = { list: [] };
- }
- const watchlaterList = json.data.list.map((it: any) => it.aid) as Array;
- if (watchlaterList.includes(parseInt(aid)))
- {
- watchlaterButton.classList.add("on");
- }
- else
- {
- watchlaterButton.classList.remove("on");
- }
- return aid;
- };
- Observer.videoChange(async () =>
- {
- aid = await loadWatchlaterInfo();
- });
+ return aid
+ }
+ Observer.videoChange(async () => {
+ aid = await loadWatchlaterInfo()
+ })
- let tipShowing = 0;
- const toggleWatchlater = async ({ url, tipText }: { url: string, tipText: string }) =>
- {
- const responseText = await Ajax.postTextWithCredentials(url, `aid=${aid}&csrf=${csrf}`);
- const response = JSON.parse(responseText);
- if (response.code !== 0)
- {
- logError(`稍后再看操作失败: ${responseText}`);
- }
- else
- {
- tip.innerHTML = tipText;
- tip.classList.add("show");
- if (tipShowing !== 0)
- {
- clearTimeout(tipShowing);
- }
- tipShowing = setTimeout(() => tip.classList.remove("show"), 2000);
- }
- };
- watchlaterButton.addEventListener("click", () =>
- {
- watchlaterButton.classList.toggle("on");
- if (watchlaterButton.classList.contains("on"))
- {
- toggleWatchlater({
- url: "https://api.bilibili.com/x/v2/history/toview/add",
- tipText: "已添加至稍后再看",
- });
- }
- else
- {
- toggleWatchlater({
- url: "https://api.bilibili.com/x/v2/history/toview/del",
- tipText: "已从稍后再看移除",
- });
- }
- });
-})();
\ No newline at end of file
+ let tipShowing = 0
+ const toggleWatchlater = async ({ url, tipText }: { url: string, tipText: string }) => {
+ const responseText = await Ajax.postTextWithCredentials(url, `aid=${aid}&csrf=${csrf}`)
+ const response = JSON.parse(responseText) as {
+ code: number
+ message: string
+ }
+ if (response.code !== 0) {
+ logError(`稍后再看操作失败: ${response.message}`)
+ return false
+ }
+ else {
+ tip.innerHTML = tipText
+ tip.classList.add('show')
+ if (tipShowing !== 0) {
+ clearTimeout(tipShowing)
+ }
+ tipShowing = setTimeout(() => tip.classList.remove('show'), 2000)
+ return true
+ }
+ }
+ watchlaterButton.addEventListener('click', async () => {
+ watchlaterButton.classList.toggle('on')
+ let success: boolean
+ if (watchlaterButton.classList.contains('on')) {
+ success = await toggleWatchlater({
+ url: 'https://api.bilibili.com/x/v2/history/toview/add',
+ tipText: '已添加至稍后再看',
+ })
+ }
+ else {
+ success = await toggleWatchlater({
+ url: 'https://api.bilibili.com/x/v2/history/toview/del',
+ tipText: '已从稍后再看移除',
+ })
+ }
+ if (success == false) {
+ watchlaterButton.classList.toggle('on')
+ }
+ })
+})()