mirror of
https://github.com/the1812/Bilibili-Evolved.git
synced 2025-11-04 21:22:45 +08:00
Add watchlaterExpireWarningDays in settings
This commit is contained in:
parent
f96a3c153b
commit
a1b583ed54
1
@types/global/index.d.ts
vendored
1
@types/global/index.d.ts
vendored
@ -369,6 +369,7 @@ declare global {
|
||||
downloadVideoFormat: 'flv' | 'dash',
|
||||
enableDashDownload: boolean,
|
||||
watchlaterExpireWarnings: boolean,
|
||||
watchlaterExpireWarningDays: number,
|
||||
latestVersionLink: string,
|
||||
currentVersion: string,
|
||||
}
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
// ==UserScript==
|
||||
// @name Bilibili Evolved (Offline)
|
||||
// @version 438.98
|
||||
// @version 438.99
|
||||
// @description Bilibili Evolved 的离线版, 所有功能都已内置于脚本中.
|
||||
// @author Grant Howard, Coulomb-G
|
||||
// @copyright 2019, Grant Howard (https://github.com/the1812) & Coulomb-G (https://github.com/Coulomb-G)
|
||||
@ -350,6 +350,7 @@ const settings = {
|
||||
downloadVideoFormat: 'flv',
|
||||
enableDashDownload: false,
|
||||
watchlaterExpireWarnings: true,
|
||||
watchlaterExpireWarningDays: 14,
|
||||
cache: {},
|
||||
}
|
||||
const fixedSettings = {
|
||||
@ -1174,7 +1175,7 @@ offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/m
|
||||
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/video-story.min.js"] = (()=>{return(t,i)=>{class e{constructor(t){this.title=t.option;this.nodeID=t.node_id;this.cid=t.cid;this.default=t.is_default===1}}class s{constructor(t,i,e){this.title=t.title;this.nodeID=t.node_id;this.aid=i;this.cid=t.cid;this.graphVersion=e;this.choices=[];this.choiceTime=-1}async getChoices(){if(this.choices.length>0){return}const t=`https://api.bilibili.com/x/stein/nodeinfo?aid=${this.aid}&node_id=${this.nodeID}&graph_version=504`;const i=await Ajax.getJsonWithCredentials(t);if(i.code!==0){console.error(`获取选项失败: ${i.message}`);return}this.choices=i.data.edges.choices.map(t=>new e(t))}}class o{constructor(t,i){this.nodeList=t;if(i){this.startingNode=i}else{[this.startingNode]=t}}async getAllChoices(){return await Promise.all(this.nodeList.map(t=>t.getChoices()))}}const n=async(t,i)=>{const n=`https://api.bilibili.com/x/stein/nodeinfo?aid=${t}&graph_version=${i}`;const c=await Ajax.getJsonWithCredentials(n);if(c.code!==0){return c.message}const a=c.data.story_list.map(e=>new s(e,t,i));const d=a.find(t=>t.nodeID===c.data.node_id);if(!d){return"获取起始结点失败"}d.choiceTime=c.data.edges.show_time;const r=c.data.edges.choices.map(t=>new e(t));d.choices=r;return new o(a,d)};return{export:{StoryChoice:e,StoryNode:s,Story:o,getStoryNodes:n}}}})();
|
||||
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/view-cover.min.js"] = (()=>{return(e,t)=>{const{VideoInfo:i}=t.import("video-info");const{getFriendlyTitle:n}=t.import("title");class o{constructor(e){this.url=e;if(document.querySelector(".image-viewer")===null){this.createContainer()}this.viewer=document.querySelector(".image-viewer-container");this.downloadImage();addSettingsListener("filenameFormat",()=>{this.viewer.querySelector(".download").setAttribute("download",this.filename)})}createContainer(){document.body.insertAdjacentHTML("beforeend",t.import("imageViewerHtml"));document.querySelector(".image-viewer-container .close").addEventListener("click",()=>this.hide());t.applyStyle("imageViewerStyle")}downloadImage(){document.querySelector("#view-cover").style.display=this.url?"flex":"none";if(this.url===""){return}const e=new XMLHttpRequest;e.open("GET",this.url.replace("http:","https:"),true);e.responseType="blob";e.onload=(()=>{const t=URL.createObjectURL(e.response);if(this.imageData){URL.revokeObjectURL(this.imageData)}this.imageData=t;const i=this.viewer.querySelector(".download");i.setAttribute("href",t);i.setAttribute("download",this.filename);this.viewer.querySelector(".copy-link").addEventListener("click",()=>GM_setClipboard(this.url));this.viewer.querySelector(".new-tab").setAttribute("href",this.url);this.viewer.querySelector(".image").src=t});e.send()}show(){this.viewer.classList.add("opened")}hide(){this.viewer.classList.remove("opened")}get filename(){return n(document.URL.includes("/www.bilibili.com/bangumi/"))+this.url.substring(this.url.lastIndexOf("."))}}return(()=>{if(!document.URL.includes("live.bilibili.com")){return{widget:{content:`\n<button\nclass="gui-settings-flat-button"\nid="view-cover">\n<i class="icon-view"></i>\n<span>查看封面</span>\n</button>`,condition:async()=>{const e=await SpinQuery.select(()=>(unsafeWindow||window).aid);return Boolean(e)},success:async()=>{async function e(){const e=(unsafeWindow||window).aid;const t=new i(e);try{await t.fetchInfo()}catch(e){return""}return t.coverUrl}let t=new o(await e());document.querySelector("#view-cover").addEventListener("click",()=>{t.show()});const n=async()=>{t=new o(await e())};Observer.videoChange(n)}}}}else{return{widget:{content:`\n<button\nclass="gui-settings-flat-button"\nid="view-cover">\n<i class="icon-view"></i>\n<span>查看封面</span>\n</button>`,condition:async()=>{const e=await SpinQuery.select(()=>document.querySelector(".header-info-ctnr .room-cover"));return Boolean(e)},success:async()=>{const e=document.querySelector(".header-info-ctnr .room-cover");const t=e.getAttribute("href").match(/space\.bilibili\.com\/([\d]+)/);if(t&&t[1]){const e=t[1];const i=`https://api.live.bilibili.com/room/v1/Room/getRoomInfoOld?mid=${e}`;const n=await Ajax.getJson(i);const r=n.data.cover;const s=new o(r);document.querySelector("#view-cover").addEventListener("click",()=>{s.show()})}}}}}})()}})();
|
||||
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/watchlater-api.min.js"] = (()=>{return(t,i)=>{const e=async(t,i)=>{const e=i?"https://api.bilibili.com/x/v2/history/toview/add":"https://api.bilibili.com/x/v2/history/toview/del";const a=getCsrf();const s=await Ajax.postTextWithCredentials(e,`aid=${t}&csrf=${a}`);const r=JSON.parse(s);if(r.code!==0){throw new Error(`稍后再看操作失败: ${r.message}`)}};async function a(t){const i=`https://api.bilibili.com/x/v2/history/toview/web`;const e=await Ajax.getJsonWithCredentials(i);if(e.code!==0){throw new Error(`获取稍后再看列表失败: ${e.message}`)}if(!e.data.list){return[]}if(t){return e.data.list}return e.data.list.map(t=>t.aid)}return{export:{toggleWatchlater:e,getWatchlaterList:a}}}})();
|
||||
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/watchlater-expire-warnings.min.js"] = (()=>{return(e,n)=>{(async()=>{if(!["//www.bilibili.com/watchlater/#/list"].some(e=>document.URL.includes(e))){return}const{getWatchlaterList:e}=await n.importAsync("watchlater-api");const t=await SpinQuery.select(".watch-later-list .list-box");if(t===null){return}n.applyStyleFromText(`\n.expire-warning {\npadding: 3px 25px;\ncolor: #F78C6C;\ndisplay: inline-flex;\nalign-items: center;\n}\n.expire-warning .mdi {\nline-height: 1;\nmargin-right: 8px;\nfont-size: 16px;\n}\n`,"watchlater-expire-warning-style");const i=14;const r=24*3600*1e3;const a=e=>{return(e-Number(new Date))/r};Observer.childListSubtree(t,async()=>{const n=[...t.querySelectorAll(".av-item .state")];const l=await e(true);n.forEach((e,n)=>{const t=l[n].add_at*1e3+60*r;const c=a(t);console.log(l[n].aid,c);if(c<i){if(e.querySelector(".expire-warning")===null){const n=-Math.floor(-c);e.insertAdjacentHTML("afterbegin",`\n<span class="expire-warning" title="到期时间: ${new Date(t).toLocaleString()}"><i class="mdi mdi-alert-circle-outline"></i>还剩${n}天过期</span>`)}}else{e.querySelectorAll(".expire-warning").forEach(e=>e.remove())}})})})()}})();
|
||||
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/watchlater-expire-warnings.min.js"] = (()=>{return(e,n)=>{(async()=>{if(!["//www.bilibili.com/watchlater/#/list"].some(e=>document.URL.includes(e))){return}const{getWatchlaterList:t}=await n.importAsync("watchlater-api");const i=await SpinQuery.select(".watch-later-list .list-box");if(i===null){return}n.applyStyleFromText(`\n.expire-warning {\npadding: 3px 25px;\ncolor: #F78C6C;\ndisplay: inline-flex;\nalign-items: center;\n}\n.expire-warning .mdi {\nline-height: 1;\nmargin-right: 8px;\nfont-size: 16px;\n}\n`,"watchlater-expire-warning-style");const r=e.watchlaterExpireWarningDays;const a=24*3600*1e3;const l=e=>{return(e-Number(new Date))/a};Observer.childListSubtree(i,async()=>{const e=[...i.querySelectorAll(".av-item .state")];const n=await t(true);e.forEach((e,t)=>{const i=n[t].add_at*1e3+60*a;const c=l(i);console.log(n[t].aid,c);if(c<r){if(e.querySelector(".expire-warning")===null){const n=-Math.floor(-c);e.insertAdjacentHTML("afterbegin",`\n<span class="expire-warning" title="到期时间: ${new Date(i).toLocaleString()}"><i class="mdi mdi-alert-circle-outline"></i>还剩${n}天过期</span>`)}}else{e.querySelectorAll(".expire-warning").forEach(e=>e.remove())}})})})()}})();
|
||||
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/watchlater.min.js"] = (()=>{return(e,t)=>{const i=e=>{const t=e.match(/(av[\d]+)\/p([\d]+)/);if(t){return`https://www.bilibili.com/video/${t[1]}/?p=${t[2]}`}else{return"javascript:;"}};const r=e=>{const t=e.map(e=>{const t=e.getAttribute("href");if(!t){return"javascript:;"}if(t.match(/.*watchlater.*|javascript:;/g)){return i(t)}if(t.indexOf("video/av")!==-1){return t}});e.forEach((e,i)=>{e.setAttribute("href",t[i]);e.setAttribute("target","_blank")})};const a=(...e)=>{for(const t of e){SpinQuery.select(()=>document.querySelectorAll(t),e=>r([...e]))}};SpinQuery.select(".watch-later-list").then(()=>{Observer.childListSubtree("#viewlater-app",()=>{SpinQuery.condition(()=>document.URL.match(/(av[\d]+)\/p([\d]+)/),e=>e&&document.URL.indexOf("watchlater")!==-1,()=>{const e=i(document.URL);if(e!==null){window.location.replace(e)}});SpinQuery.select("#viewlater-app .s-btn[href='#/']",e=>e.remove());a(".av-pic",".av-about>a")})});SpinQuery.select("li.nav-item[report-id*=watchlater]").then(()=>{Observer.childListSubtree("li.nav-item[report-id*=watchlater]",()=>{a(".av-item>a",".av-about>a","div.watch-later-m>ul>div>li>a");SpinQuery.select(".read-more.mr",e=>e.remove());SpinQuery.select(".read-more-grp>.read-more",e=>{e.style.width="auto";e.style.float="none"})})});SpinQuery.select(".van-popper-favorite").then(async e=>{if(!e){return}const t=Observer.childListSubtree(e,()=>{const i=e.querySelector(".play-all");if(i){const e="//www.bilibili.com/watchlater/#/list";Observer.attributes(i,()=>{if(i.getAttribute("href")==="//www.bilibili.com/watchlater/"){i.setAttribute("href",e);i.firstChild.classList.remove("bili-icon_dingdao_bofang");i.firstChild.classList.add("bili-icon_xinxi_yuedushu");i.lastChild.nodeValue="查看全部"}else if(i.getAttribute("href")!==e){i.firstChild.classList.add("bili-icon_dingdao_bofang");i.firstChild.classList.remove("bili-icon_xinxi_yuedushu");i.lastChild.nodeValue="播放全部"}});t.forEach(e=>e.stop())}})})}})();
|
||||
|
||||
class ResourceType {
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
// ==UserScript==
|
||||
// @name Bilibili Evolved (Preview Offline)
|
||||
// @version 438.98
|
||||
// @version 438.99
|
||||
// @description Bilibili Evolved 的预览离线版, 可以抢先体验新功能, 并且所有功能都已内置于脚本中.
|
||||
// @author Grant Howard, Coulomb-G
|
||||
// @copyright 2019, Grant Howard (https://github.com/the1812) & Coulomb-G (https://github.com/Coulomb-G)
|
||||
@ -350,6 +350,7 @@ const settings = {
|
||||
downloadVideoFormat: 'flv',
|
||||
enableDashDownload: false,
|
||||
watchlaterExpireWarnings: true,
|
||||
watchlaterExpireWarningDays: 14,
|
||||
cache: {},
|
||||
}
|
||||
const fixedSettings = {
|
||||
@ -1174,7 +1175,7 @@ offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/m
|
||||
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/video-story.min.js"] = (()=>{return(t,i)=>{class e{constructor(t){this.title=t.option;this.nodeID=t.node_id;this.cid=t.cid;this.default=t.is_default===1}}class s{constructor(t,i,e){this.title=t.title;this.nodeID=t.node_id;this.aid=i;this.cid=t.cid;this.graphVersion=e;this.choices=[];this.choiceTime=-1}async getChoices(){if(this.choices.length>0){return}const t=`https://api.bilibili.com/x/stein/nodeinfo?aid=${this.aid}&node_id=${this.nodeID}&graph_version=504`;const i=await Ajax.getJsonWithCredentials(t);if(i.code!==0){console.error(`获取选项失败: ${i.message}`);return}this.choices=i.data.edges.choices.map(t=>new e(t))}}class o{constructor(t,i){this.nodeList=t;if(i){this.startingNode=i}else{[this.startingNode]=t}}async getAllChoices(){return await Promise.all(this.nodeList.map(t=>t.getChoices()))}}const n=async(t,i)=>{const n=`https://api.bilibili.com/x/stein/nodeinfo?aid=${t}&graph_version=${i}`;const c=await Ajax.getJsonWithCredentials(n);if(c.code!==0){return c.message}const a=c.data.story_list.map(e=>new s(e,t,i));const d=a.find(t=>t.nodeID===c.data.node_id);if(!d){return"获取起始结点失败"}d.choiceTime=c.data.edges.show_time;const r=c.data.edges.choices.map(t=>new e(t));d.choices=r;return new o(a,d)};return{export:{StoryChoice:e,StoryNode:s,Story:o,getStoryNodes:n}}}})();
|
||||
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/view-cover.min.js"] = (()=>{return(e,t)=>{const{VideoInfo:i}=t.import("video-info");const{getFriendlyTitle:n}=t.import("title");class o{constructor(e){this.url=e;if(document.querySelector(".image-viewer")===null){this.createContainer()}this.viewer=document.querySelector(".image-viewer-container");this.downloadImage();addSettingsListener("filenameFormat",()=>{this.viewer.querySelector(".download").setAttribute("download",this.filename)})}createContainer(){document.body.insertAdjacentHTML("beforeend",t.import("imageViewerHtml"));document.querySelector(".image-viewer-container .close").addEventListener("click",()=>this.hide());t.applyStyle("imageViewerStyle")}downloadImage(){document.querySelector("#view-cover").style.display=this.url?"flex":"none";if(this.url===""){return}const e=new XMLHttpRequest;e.open("GET",this.url.replace("http:","https:"),true);e.responseType="blob";e.onload=(()=>{const t=URL.createObjectURL(e.response);if(this.imageData){URL.revokeObjectURL(this.imageData)}this.imageData=t;const i=this.viewer.querySelector(".download");i.setAttribute("href",t);i.setAttribute("download",this.filename);this.viewer.querySelector(".copy-link").addEventListener("click",()=>GM_setClipboard(this.url));this.viewer.querySelector(".new-tab").setAttribute("href",this.url);this.viewer.querySelector(".image").src=t});e.send()}show(){this.viewer.classList.add("opened")}hide(){this.viewer.classList.remove("opened")}get filename(){return n(document.URL.includes("/www.bilibili.com/bangumi/"))+this.url.substring(this.url.lastIndexOf("."))}}return(()=>{if(!document.URL.includes("live.bilibili.com")){return{widget:{content:`\n<button\nclass="gui-settings-flat-button"\nid="view-cover">\n<i class="icon-view"></i>\n<span>查看封面</span>\n</button>`,condition:async()=>{const e=await SpinQuery.select(()=>(unsafeWindow||window).aid);return Boolean(e)},success:async()=>{async function e(){const e=(unsafeWindow||window).aid;const t=new i(e);try{await t.fetchInfo()}catch(e){return""}return t.coverUrl}let t=new o(await e());document.querySelector("#view-cover").addEventListener("click",()=>{t.show()});const n=async()=>{t=new o(await e())};Observer.videoChange(n)}}}}else{return{widget:{content:`\n<button\nclass="gui-settings-flat-button"\nid="view-cover">\n<i class="icon-view"></i>\n<span>查看封面</span>\n</button>`,condition:async()=>{const e=await SpinQuery.select(()=>document.querySelector(".header-info-ctnr .room-cover"));return Boolean(e)},success:async()=>{const e=document.querySelector(".header-info-ctnr .room-cover");const t=e.getAttribute("href").match(/space\.bilibili\.com\/([\d]+)/);if(t&&t[1]){const e=t[1];const i=`https://api.live.bilibili.com/room/v1/Room/getRoomInfoOld?mid=${e}`;const n=await Ajax.getJson(i);const r=n.data.cover;const s=new o(r);document.querySelector("#view-cover").addEventListener("click",()=>{s.show()})}}}}}})()}})();
|
||||
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/watchlater-api.min.js"] = (()=>{return(t,i)=>{const e=async(t,i)=>{const e=i?"https://api.bilibili.com/x/v2/history/toview/add":"https://api.bilibili.com/x/v2/history/toview/del";const a=getCsrf();const s=await Ajax.postTextWithCredentials(e,`aid=${t}&csrf=${a}`);const r=JSON.parse(s);if(r.code!==0){throw new Error(`稍后再看操作失败: ${r.message}`)}};async function a(t){const i=`https://api.bilibili.com/x/v2/history/toview/web`;const e=await Ajax.getJsonWithCredentials(i);if(e.code!==0){throw new Error(`获取稍后再看列表失败: ${e.message}`)}if(!e.data.list){return[]}if(t){return e.data.list}return e.data.list.map(t=>t.aid)}return{export:{toggleWatchlater:e,getWatchlaterList:a}}}})();
|
||||
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/watchlater-expire-warnings.min.js"] = (()=>{return(e,n)=>{(async()=>{if(!["//www.bilibili.com/watchlater/#/list"].some(e=>document.URL.includes(e))){return}const{getWatchlaterList:e}=await n.importAsync("watchlater-api");const t=await SpinQuery.select(".watch-later-list .list-box");if(t===null){return}n.applyStyleFromText(`\n.expire-warning {\npadding: 3px 25px;\ncolor: #F78C6C;\ndisplay: inline-flex;\nalign-items: center;\n}\n.expire-warning .mdi {\nline-height: 1;\nmargin-right: 8px;\nfont-size: 16px;\n}\n`,"watchlater-expire-warning-style");const i=14;const r=24*3600*1e3;const a=e=>{return(e-Number(new Date))/r};Observer.childListSubtree(t,async()=>{const n=[...t.querySelectorAll(".av-item .state")];const l=await e(true);n.forEach((e,n)=>{const t=l[n].add_at*1e3+60*r;const c=a(t);console.log(l[n].aid,c);if(c<i){if(e.querySelector(".expire-warning")===null){const n=-Math.floor(-c);e.insertAdjacentHTML("afterbegin",`\n<span class="expire-warning" title="到期时间: ${new Date(t).toLocaleString()}"><i class="mdi mdi-alert-circle-outline"></i>还剩${n}天过期</span>`)}}else{e.querySelectorAll(".expire-warning").forEach(e=>e.remove())}})})})()}})();
|
||||
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/watchlater-expire-warnings.min.js"] = (()=>{return(e,n)=>{(async()=>{if(!["//www.bilibili.com/watchlater/#/list"].some(e=>document.URL.includes(e))){return}const{getWatchlaterList:t}=await n.importAsync("watchlater-api");const i=await SpinQuery.select(".watch-later-list .list-box");if(i===null){return}n.applyStyleFromText(`\n.expire-warning {\npadding: 3px 25px;\ncolor: #F78C6C;\ndisplay: inline-flex;\nalign-items: center;\n}\n.expire-warning .mdi {\nline-height: 1;\nmargin-right: 8px;\nfont-size: 16px;\n}\n`,"watchlater-expire-warning-style");const r=e.watchlaterExpireWarningDays;const a=24*3600*1e3;const l=e=>{return(e-Number(new Date))/a};Observer.childListSubtree(i,async()=>{const e=[...i.querySelectorAll(".av-item .state")];const n=await t(true);e.forEach((e,t)=>{const i=n[t].add_at*1e3+60*a;const c=l(i);console.log(n[t].aid,c);if(c<r){if(e.querySelector(".expire-warning")===null){const n=-Math.floor(-c);e.insertAdjacentHTML("afterbegin",`\n<span class="expire-warning" title="到期时间: ${new Date(i).toLocaleString()}"><i class="mdi mdi-alert-circle-outline"></i>还剩${n}天过期</span>`)}}else{e.querySelectorAll(".expire-warning").forEach(e=>e.remove())}})})})()}})();
|
||||
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/watchlater.min.js"] = (()=>{return(e,t)=>{const i=e=>{const t=e.match(/(av[\d]+)\/p([\d]+)/);if(t){return`https://www.bilibili.com/video/${t[1]}/?p=${t[2]}`}else{return"javascript:;"}};const r=e=>{const t=e.map(e=>{const t=e.getAttribute("href");if(!t){return"javascript:;"}if(t.match(/.*watchlater.*|javascript:;/g)){return i(t)}if(t.indexOf("video/av")!==-1){return t}});e.forEach((e,i)=>{e.setAttribute("href",t[i]);e.setAttribute("target","_blank")})};const a=(...e)=>{for(const t of e){SpinQuery.select(()=>document.querySelectorAll(t),e=>r([...e]))}};SpinQuery.select(".watch-later-list").then(()=>{Observer.childListSubtree("#viewlater-app",()=>{SpinQuery.condition(()=>document.URL.match(/(av[\d]+)\/p([\d]+)/),e=>e&&document.URL.indexOf("watchlater")!==-1,()=>{const e=i(document.URL);if(e!==null){window.location.replace(e)}});SpinQuery.select("#viewlater-app .s-btn[href='#/']",e=>e.remove());a(".av-pic",".av-about>a")})});SpinQuery.select("li.nav-item[report-id*=watchlater]").then(()=>{Observer.childListSubtree("li.nav-item[report-id*=watchlater]",()=>{a(".av-item>a",".av-about>a","div.watch-later-m>ul>div>li>a");SpinQuery.select(".read-more.mr",e=>e.remove());SpinQuery.select(".read-more-grp>.read-more",e=>{e.style.width="auto";e.style.float="none"})})});SpinQuery.select(".van-popper-favorite").then(async e=>{if(!e){return}const t=Observer.childListSubtree(e,()=>{const i=e.querySelector(".play-all");if(i){const e="//www.bilibili.com/watchlater/#/list";Observer.attributes(i,()=>{if(i.getAttribute("href")==="//www.bilibili.com/watchlater/"){i.setAttribute("href",e);i.firstChild.classList.remove("bili-icon_dingdao_bofang");i.firstChild.classList.add("bili-icon_xinxi_yuedushu");i.lastChild.nodeValue="查看全部"}else if(i.getAttribute("href")!==e){i.firstChild.classList.add("bili-icon_dingdao_bofang");i.firstChild.classList.remove("bili-icon_xinxi_yuedushu");i.lastChild.nodeValue="播放全部"}});t.forEach(e=>e.stop())}})})}})();
|
||||
|
||||
class ResourceType {
|
||||
|
||||
@ -349,6 +349,7 @@ const settings = {
|
||||
downloadVideoFormat: 'flv',
|
||||
enableDashDownload: false,
|
||||
watchlaterExpireWarnings: true,
|
||||
watchlaterExpireWarningDays: 14,
|
||||
cache: {},
|
||||
}
|
||||
const fixedSettings = {
|
||||
@ -1173,7 +1174,7 @@ onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/m
|
||||
onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/video-story.min.js"] = (()=>{return(t,i)=>{class e{constructor(t){this.title=t.option;this.nodeID=t.node_id;this.cid=t.cid;this.default=t.is_default===1}}class s{constructor(t,i,e){this.title=t.title;this.nodeID=t.node_id;this.aid=i;this.cid=t.cid;this.graphVersion=e;this.choices=[];this.choiceTime=-1}async getChoices(){if(this.choices.length>0){return}const t=`https://api.bilibili.com/x/stein/nodeinfo?aid=${this.aid}&node_id=${this.nodeID}&graph_version=504`;const i=await Ajax.getJsonWithCredentials(t);if(i.code!==0){console.error(`获取选项失败: ${i.message}`);return}this.choices=i.data.edges.choices.map(t=>new e(t))}}class o{constructor(t,i){this.nodeList=t;if(i){this.startingNode=i}else{[this.startingNode]=t}}async getAllChoices(){return await Promise.all(this.nodeList.map(t=>t.getChoices()))}}const n=async(t,i)=>{const n=`https://api.bilibili.com/x/stein/nodeinfo?aid=${t}&graph_version=${i}`;const c=await Ajax.getJsonWithCredentials(n);if(c.code!==0){return c.message}const a=c.data.story_list.map(e=>new s(e,t,i));const d=a.find(t=>t.nodeID===c.data.node_id);if(!d){return"获取起始结点失败"}d.choiceTime=c.data.edges.show_time;const r=c.data.edges.choices.map(t=>new e(t));d.choices=r;return new o(a,d)};return{export:{StoryChoice:e,StoryNode:s,Story:o,getStoryNodes:n}}}})();
|
||||
onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/view-cover.min.js"] = (()=>{return(e,t)=>{const{VideoInfo:i}=t.import("video-info");const{getFriendlyTitle:n}=t.import("title");class o{constructor(e){this.url=e;if(document.querySelector(".image-viewer")===null){this.createContainer()}this.viewer=document.querySelector(".image-viewer-container");this.downloadImage();addSettingsListener("filenameFormat",()=>{this.viewer.querySelector(".download").setAttribute("download",this.filename)})}createContainer(){document.body.insertAdjacentHTML("beforeend",t.import("imageViewerHtml"));document.querySelector(".image-viewer-container .close").addEventListener("click",()=>this.hide());t.applyStyle("imageViewerStyle")}downloadImage(){document.querySelector("#view-cover").style.display=this.url?"flex":"none";if(this.url===""){return}const e=new XMLHttpRequest;e.open("GET",this.url.replace("http:","https:"),true);e.responseType="blob";e.onload=(()=>{const t=URL.createObjectURL(e.response);if(this.imageData){URL.revokeObjectURL(this.imageData)}this.imageData=t;const i=this.viewer.querySelector(".download");i.setAttribute("href",t);i.setAttribute("download",this.filename);this.viewer.querySelector(".copy-link").addEventListener("click",()=>GM_setClipboard(this.url));this.viewer.querySelector(".new-tab").setAttribute("href",this.url);this.viewer.querySelector(".image").src=t});e.send()}show(){this.viewer.classList.add("opened")}hide(){this.viewer.classList.remove("opened")}get filename(){return n(document.URL.includes("/www.bilibili.com/bangumi/"))+this.url.substring(this.url.lastIndexOf("."))}}return(()=>{if(!document.URL.includes("live.bilibili.com")){return{widget:{content:`\n<button\nclass="gui-settings-flat-button"\nid="view-cover">\n<i class="icon-view"></i>\n<span>查看封面</span>\n</button>`,condition:async()=>{const e=await SpinQuery.select(()=>(unsafeWindow||window).aid);return Boolean(e)},success:async()=>{async function e(){const e=(unsafeWindow||window).aid;const t=new i(e);try{await t.fetchInfo()}catch(e){return""}return t.coverUrl}let t=new o(await e());document.querySelector("#view-cover").addEventListener("click",()=>{t.show()});const n=async()=>{t=new o(await e())};Observer.videoChange(n)}}}}else{return{widget:{content:`\n<button\nclass="gui-settings-flat-button"\nid="view-cover">\n<i class="icon-view"></i>\n<span>查看封面</span>\n</button>`,condition:async()=>{const e=await SpinQuery.select(()=>document.querySelector(".header-info-ctnr .room-cover"));return Boolean(e)},success:async()=>{const e=document.querySelector(".header-info-ctnr .room-cover");const t=e.getAttribute("href").match(/space\.bilibili\.com\/([\d]+)/);if(t&&t[1]){const e=t[1];const i=`https://api.live.bilibili.com/room/v1/Room/getRoomInfoOld?mid=${e}`;const n=await Ajax.getJson(i);const r=n.data.cover;const s=new o(r);document.querySelector("#view-cover").addEventListener("click",()=>{s.show()})}}}}}})()}})();
|
||||
onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/watchlater-api.min.js"] = (()=>{return(t,i)=>{const e=async(t,i)=>{const e=i?"https://api.bilibili.com/x/v2/history/toview/add":"https://api.bilibili.com/x/v2/history/toview/del";const a=getCsrf();const s=await Ajax.postTextWithCredentials(e,`aid=${t}&csrf=${a}`);const r=JSON.parse(s);if(r.code!==0){throw new Error(`稍后再看操作失败: ${r.message}`)}};async function a(t){const i=`https://api.bilibili.com/x/v2/history/toview/web`;const e=await Ajax.getJsonWithCredentials(i);if(e.code!==0){throw new Error(`获取稍后再看列表失败: ${e.message}`)}if(!e.data.list){return[]}if(t){return e.data.list}return e.data.list.map(t=>t.aid)}return{export:{toggleWatchlater:e,getWatchlaterList:a}}}})();
|
||||
onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/watchlater-expire-warnings.min.js"] = (()=>{return(e,n)=>{(async()=>{if(!["//www.bilibili.com/watchlater/#/list"].some(e=>document.URL.includes(e))){return}const{getWatchlaterList:e}=await n.importAsync("watchlater-api");const t=await SpinQuery.select(".watch-later-list .list-box");if(t===null){return}n.applyStyleFromText(`\n.expire-warning {\npadding: 3px 25px;\ncolor: #F78C6C;\ndisplay: inline-flex;\nalign-items: center;\n}\n.expire-warning .mdi {\nline-height: 1;\nmargin-right: 8px;\nfont-size: 16px;\n}\n`,"watchlater-expire-warning-style");const i=14;const r=24*3600*1e3;const a=e=>{return(e-Number(new Date))/r};Observer.childListSubtree(t,async()=>{const n=[...t.querySelectorAll(".av-item .state")];const l=await e(true);n.forEach((e,n)=>{const t=l[n].add_at*1e3+60*r;const c=a(t);console.log(l[n].aid,c);if(c<i){if(e.querySelector(".expire-warning")===null){const n=-Math.floor(-c);e.insertAdjacentHTML("afterbegin",`\n<span class="expire-warning" title="到期时间: ${new Date(t).toLocaleString()}"><i class="mdi mdi-alert-circle-outline"></i>还剩${n}天过期</span>`)}}else{e.querySelectorAll(".expire-warning").forEach(e=>e.remove())}})})})()}})();
|
||||
onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/watchlater-expire-warnings.min.js"] = (()=>{return(e,n)=>{(async()=>{if(!["//www.bilibili.com/watchlater/#/list"].some(e=>document.URL.includes(e))){return}const{getWatchlaterList:t}=await n.importAsync("watchlater-api");const i=await SpinQuery.select(".watch-later-list .list-box");if(i===null){return}n.applyStyleFromText(`\n.expire-warning {\npadding: 3px 25px;\ncolor: #F78C6C;\ndisplay: inline-flex;\nalign-items: center;\n}\n.expire-warning .mdi {\nline-height: 1;\nmargin-right: 8px;\nfont-size: 16px;\n}\n`,"watchlater-expire-warning-style");const r=e.watchlaterExpireWarningDays;const a=24*3600*1e3;const l=e=>{return(e-Number(new Date))/a};Observer.childListSubtree(i,async()=>{const e=[...i.querySelectorAll(".av-item .state")];const n=await t(true);e.forEach((e,t)=>{const i=n[t].add_at*1e3+60*a;const c=l(i);console.log(n[t].aid,c);if(c<r){if(e.querySelector(".expire-warning")===null){const n=-Math.floor(-c);e.insertAdjacentHTML("afterbegin",`\n<span class="expire-warning" title="到期时间: ${new Date(i).toLocaleString()}"><i class="mdi mdi-alert-circle-outline"></i>还剩${n}天过期</span>`)}}else{e.querySelectorAll(".expire-warning").forEach(e=>e.remove())}})})})()}})();
|
||||
onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/watchlater.min.js"] = (()=>{return(e,t)=>{const i=e=>{const t=e.match(/(av[\d]+)\/p([\d]+)/);if(t){return`https://www.bilibili.com/video/${t[1]}/?p=${t[2]}`}else{return"javascript:;"}};const r=e=>{const t=e.map(e=>{const t=e.getAttribute("href");if(!t){return"javascript:;"}if(t.match(/.*watchlater.*|javascript:;/g)){return i(t)}if(t.indexOf("video/av")!==-1){return t}});e.forEach((e,i)=>{e.setAttribute("href",t[i]);e.setAttribute("target","_blank")})};const a=(...e)=>{for(const t of e){SpinQuery.select(()=>document.querySelectorAll(t),e=>r([...e]))}};SpinQuery.select(".watch-later-list").then(()=>{Observer.childListSubtree("#viewlater-app",()=>{SpinQuery.condition(()=>document.URL.match(/(av[\d]+)\/p([\d]+)/),e=>e&&document.URL.indexOf("watchlater")!==-1,()=>{const e=i(document.URL);if(e!==null){window.location.replace(e)}});SpinQuery.select("#viewlater-app .s-btn[href='#/']",e=>e.remove());a(".av-pic",".av-about>a")})});SpinQuery.select("li.nav-item[report-id*=watchlater]").then(()=>{Observer.childListSubtree("li.nav-item[report-id*=watchlater]",()=>{a(".av-item>a",".av-about>a","div.watch-later-m>ul>div>li>a");SpinQuery.select(".read-more.mr",e=>e.remove());SpinQuery.select(".read-more-grp>.read-more",e=>{e.style.width="auto";e.style.float="none"})})});SpinQuery.select(".van-popper-favorite").then(async e=>{if(!e){return}const t=Observer.childListSubtree(e,()=>{const i=e.querySelector(".play-all");if(i){const e="//www.bilibili.com/watchlater/#/list";Observer.attributes(i,()=>{if(i.getAttribute("href")==="//www.bilibili.com/watchlater/"){i.setAttribute("href",e);i.firstChild.classList.remove("bili-icon_dingdao_bofang");i.firstChild.classList.add("bili-icon_xinxi_yuedushu");i.lastChild.nodeValue="查看全部"}else if(i.getAttribute("href")!==e){i.firstChild.classList.add("bili-icon_dingdao_bofang");i.firstChild.classList.remove("bili-icon_xinxi_yuedushu");i.lastChild.nodeValue="播放全部"}});t.forEach(e=>e.stop())}})})}})();
|
||||
|
||||
class ResourceType {
|
||||
|
||||
@ -349,6 +349,7 @@ const settings = {
|
||||
downloadVideoFormat: 'flv',
|
||||
enableDashDownload: false,
|
||||
watchlaterExpireWarnings: true,
|
||||
watchlaterExpireWarningDays: 14,
|
||||
cache: {},
|
||||
}
|
||||
const fixedSettings = {
|
||||
@ -1173,7 +1174,7 @@ onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/mi
|
||||
onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/video-story.min.js"] = (()=>{return(t,i)=>{class e{constructor(t){this.title=t.option;this.nodeID=t.node_id;this.cid=t.cid;this.default=t.is_default===1}}class s{constructor(t,i,e){this.title=t.title;this.nodeID=t.node_id;this.aid=i;this.cid=t.cid;this.graphVersion=e;this.choices=[];this.choiceTime=-1}async getChoices(){if(this.choices.length>0){return}const t=`https://api.bilibili.com/x/stein/nodeinfo?aid=${this.aid}&node_id=${this.nodeID}&graph_version=504`;const i=await Ajax.getJsonWithCredentials(t);if(i.code!==0){console.error(`获取选项失败: ${i.message}`);return}this.choices=i.data.edges.choices.map(t=>new e(t))}}class o{constructor(t,i){this.nodeList=t;if(i){this.startingNode=i}else{[this.startingNode]=t}}async getAllChoices(){return await Promise.all(this.nodeList.map(t=>t.getChoices()))}}const n=async(t,i)=>{const n=`https://api.bilibili.com/x/stein/nodeinfo?aid=${t}&graph_version=${i}`;const c=await Ajax.getJsonWithCredentials(n);if(c.code!==0){return c.message}const a=c.data.story_list.map(e=>new s(e,t,i));const d=a.find(t=>t.nodeID===c.data.node_id);if(!d){return"获取起始结点失败"}d.choiceTime=c.data.edges.show_time;const r=c.data.edges.choices.map(t=>new e(t));d.choices=r;return new o(a,d)};return{export:{StoryChoice:e,StoryNode:s,Story:o,getStoryNodes:n}}}})();
|
||||
onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/view-cover.min.js"] = (()=>{return(e,t)=>{const{VideoInfo:i}=t.import("video-info");const{getFriendlyTitle:n}=t.import("title");class o{constructor(e){this.url=e;if(document.querySelector(".image-viewer")===null){this.createContainer()}this.viewer=document.querySelector(".image-viewer-container");this.downloadImage();addSettingsListener("filenameFormat",()=>{this.viewer.querySelector(".download").setAttribute("download",this.filename)})}createContainer(){document.body.insertAdjacentHTML("beforeend",t.import("imageViewerHtml"));document.querySelector(".image-viewer-container .close").addEventListener("click",()=>this.hide());t.applyStyle("imageViewerStyle")}downloadImage(){document.querySelector("#view-cover").style.display=this.url?"flex":"none";if(this.url===""){return}const e=new XMLHttpRequest;e.open("GET",this.url.replace("http:","https:"),true);e.responseType="blob";e.onload=(()=>{const t=URL.createObjectURL(e.response);if(this.imageData){URL.revokeObjectURL(this.imageData)}this.imageData=t;const i=this.viewer.querySelector(".download");i.setAttribute("href",t);i.setAttribute("download",this.filename);this.viewer.querySelector(".copy-link").addEventListener("click",()=>GM_setClipboard(this.url));this.viewer.querySelector(".new-tab").setAttribute("href",this.url);this.viewer.querySelector(".image").src=t});e.send()}show(){this.viewer.classList.add("opened")}hide(){this.viewer.classList.remove("opened")}get filename(){return n(document.URL.includes("/www.bilibili.com/bangumi/"))+this.url.substring(this.url.lastIndexOf("."))}}return(()=>{if(!document.URL.includes("live.bilibili.com")){return{widget:{content:`\n<button\nclass="gui-settings-flat-button"\nid="view-cover">\n<i class="icon-view"></i>\n<span>查看封面</span>\n</button>`,condition:async()=>{const e=await SpinQuery.select(()=>(unsafeWindow||window).aid);return Boolean(e)},success:async()=>{async function e(){const e=(unsafeWindow||window).aid;const t=new i(e);try{await t.fetchInfo()}catch(e){return""}return t.coverUrl}let t=new o(await e());document.querySelector("#view-cover").addEventListener("click",()=>{t.show()});const n=async()=>{t=new o(await e())};Observer.videoChange(n)}}}}else{return{widget:{content:`\n<button\nclass="gui-settings-flat-button"\nid="view-cover">\n<i class="icon-view"></i>\n<span>查看封面</span>\n</button>`,condition:async()=>{const e=await SpinQuery.select(()=>document.querySelector(".header-info-ctnr .room-cover"));return Boolean(e)},success:async()=>{const e=document.querySelector(".header-info-ctnr .room-cover");const t=e.getAttribute("href").match(/space\.bilibili\.com\/([\d]+)/);if(t&&t[1]){const e=t[1];const i=`https://api.live.bilibili.com/room/v1/Room/getRoomInfoOld?mid=${e}`;const n=await Ajax.getJson(i);const r=n.data.cover;const s=new o(r);document.querySelector("#view-cover").addEventListener("click",()=>{s.show()})}}}}}})()}})();
|
||||
onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/watchlater-api.min.js"] = (()=>{return(t,i)=>{const e=async(t,i)=>{const e=i?"https://api.bilibili.com/x/v2/history/toview/add":"https://api.bilibili.com/x/v2/history/toview/del";const a=getCsrf();const s=await Ajax.postTextWithCredentials(e,`aid=${t}&csrf=${a}`);const r=JSON.parse(s);if(r.code!==0){throw new Error(`稍后再看操作失败: ${r.message}`)}};async function a(t){const i=`https://api.bilibili.com/x/v2/history/toview/web`;const e=await Ajax.getJsonWithCredentials(i);if(e.code!==0){throw new Error(`获取稍后再看列表失败: ${e.message}`)}if(!e.data.list){return[]}if(t){return e.data.list}return e.data.list.map(t=>t.aid)}return{export:{toggleWatchlater:e,getWatchlaterList:a}}}})();
|
||||
onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/watchlater-expire-warnings.min.js"] = (()=>{return(e,n)=>{(async()=>{if(!["//www.bilibili.com/watchlater/#/list"].some(e=>document.URL.includes(e))){return}const{getWatchlaterList:e}=await n.importAsync("watchlater-api");const t=await SpinQuery.select(".watch-later-list .list-box");if(t===null){return}n.applyStyleFromText(`\n.expire-warning {\npadding: 3px 25px;\ncolor: #F78C6C;\ndisplay: inline-flex;\nalign-items: center;\n}\n.expire-warning .mdi {\nline-height: 1;\nmargin-right: 8px;\nfont-size: 16px;\n}\n`,"watchlater-expire-warning-style");const i=14;const r=24*3600*1e3;const a=e=>{return(e-Number(new Date))/r};Observer.childListSubtree(t,async()=>{const n=[...t.querySelectorAll(".av-item .state")];const l=await e(true);n.forEach((e,n)=>{const t=l[n].add_at*1e3+60*r;const c=a(t);console.log(l[n].aid,c);if(c<i){if(e.querySelector(".expire-warning")===null){const n=-Math.floor(-c);e.insertAdjacentHTML("afterbegin",`\n<span class="expire-warning" title="到期时间: ${new Date(t).toLocaleString()}"><i class="mdi mdi-alert-circle-outline"></i>还剩${n}天过期</span>`)}}else{e.querySelectorAll(".expire-warning").forEach(e=>e.remove())}})})})()}})();
|
||||
onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/watchlater-expire-warnings.min.js"] = (()=>{return(e,n)=>{(async()=>{if(!["//www.bilibili.com/watchlater/#/list"].some(e=>document.URL.includes(e))){return}const{getWatchlaterList:t}=await n.importAsync("watchlater-api");const i=await SpinQuery.select(".watch-later-list .list-box");if(i===null){return}n.applyStyleFromText(`\n.expire-warning {\npadding: 3px 25px;\ncolor: #F78C6C;\ndisplay: inline-flex;\nalign-items: center;\n}\n.expire-warning .mdi {\nline-height: 1;\nmargin-right: 8px;\nfont-size: 16px;\n}\n`,"watchlater-expire-warning-style");const r=e.watchlaterExpireWarningDays;const a=24*3600*1e3;const l=e=>{return(e-Number(new Date))/a};Observer.childListSubtree(i,async()=>{const e=[...i.querySelectorAll(".av-item .state")];const n=await t(true);e.forEach((e,t)=>{const i=n[t].add_at*1e3+60*a;const c=l(i);console.log(n[t].aid,c);if(c<r){if(e.querySelector(".expire-warning")===null){const n=-Math.floor(-c);e.insertAdjacentHTML("afterbegin",`\n<span class="expire-warning" title="到期时间: ${new Date(i).toLocaleString()}"><i class="mdi mdi-alert-circle-outline"></i>还剩${n}天过期</span>`)}}else{e.querySelectorAll(".expire-warning").forEach(e=>e.remove())}})})})()}})();
|
||||
onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/watchlater.min.js"] = (()=>{return(e,t)=>{const i=e=>{const t=e.match(/(av[\d]+)\/p([\d]+)/);if(t){return`https://www.bilibili.com/video/${t[1]}/?p=${t[2]}`}else{return"javascript:;"}};const r=e=>{const t=e.map(e=>{const t=e.getAttribute("href");if(!t){return"javascript:;"}if(t.match(/.*watchlater.*|javascript:;/g)){return i(t)}if(t.indexOf("video/av")!==-1){return t}});e.forEach((e,i)=>{e.setAttribute("href",t[i]);e.setAttribute("target","_blank")})};const a=(...e)=>{for(const t of e){SpinQuery.select(()=>document.querySelectorAll(t),e=>r([...e]))}};SpinQuery.select(".watch-later-list").then(()=>{Observer.childListSubtree("#viewlater-app",()=>{SpinQuery.condition(()=>document.URL.match(/(av[\d]+)\/p([\d]+)/),e=>e&&document.URL.indexOf("watchlater")!==-1,()=>{const e=i(document.URL);if(e!==null){window.location.replace(e)}});SpinQuery.select("#viewlater-app .s-btn[href='#/']",e=>e.remove());a(".av-pic",".av-about>a")})});SpinQuery.select("li.nav-item[report-id*=watchlater]").then(()=>{Observer.childListSubtree("li.nav-item[report-id*=watchlater]",()=>{a(".av-item>a",".av-about>a","div.watch-later-m>ul>div>li>a");SpinQuery.select(".read-more.mr",e=>e.remove());SpinQuery.select(".read-more-grp>.read-more",e=>{e.style.width="auto";e.style.float="none"})})});SpinQuery.select(".van-popper-favorite").then(async e=>{if(!e){return}const t=Observer.childListSubtree(e,()=>{const i=e.querySelector(".play-all");if(i){const e="//www.bilibili.com/watchlater/#/list";Observer.attributes(i,()=>{if(i.getAttribute("href")==="//www.bilibili.com/watchlater/"){i.setAttribute("href",e);i.firstChild.classList.remove("bili-icon_dingdao_bofang");i.firstChild.classList.add("bili-icon_xinxi_yuedushu");i.lastChild.nodeValue="查看全部"}else if(i.getAttribute("href")!==e){i.firstChild.classList.add("bili-icon_dingdao_bofang");i.firstChild.classList.remove("bili-icon_xinxi_yuedushu");i.lastChild.nodeValue="播放全部"}});t.forEach(e=>e.stop())}})})}})();
|
||||
|
||||
class ResourceType {
|
||||
|
||||
@ -155,6 +155,6 @@
|
||||
"video-story.min.js": "F9D4D2D80997DF5F11BF0CFA4D389B77BDBF1566EA6002E47174B68B440F3C0D",
|
||||
"view-cover.min.js": "15FD7850E0D084507E99A959FA651F50E1B24D44B065584F6D9296D2DE2CB8ED",
|
||||
"watchlater-api.min.js": "78500DA05FB09B9A1158697454627738BAF5111F39E76CCBF4136188BBE7792E",
|
||||
"watchlater-expire-warnings.min.js": "007DFBD9BA8FD2D3BAE83704F79F60243860BBD583F1B7A641D075B91A4BFB10",
|
||||
"watchlater-expire-warnings.min.js": "81F440FEC135D6FD2ADD55E5661C82C50F4B37B891D1BB0524CF9F20089E9F5D",
|
||||
"watchlater.min.js": "B74FB2BE4B9B416C09FF8C2BABD36CB5971A4382C4143495065E94DEA1D5CBF9"
|
||||
}
|
||||
BIN
min/bundle.zip
BIN
min/bundle.zip
Binary file not shown.
2
min/watchlater-expire-warnings.min.js
vendored
2
min/watchlater-expire-warnings.min.js
vendored
@ -1 +1 @@
|
||||
(()=>{return(e,n)=>{(async()=>{if(!["//www.bilibili.com/watchlater/#/list"].some(e=>document.URL.includes(e))){return}const{getWatchlaterList:e}=await n.importAsync("watchlater-api");const t=await SpinQuery.select(".watch-later-list .list-box");if(t===null){return}n.applyStyleFromText(`\n.expire-warning {\npadding: 3px 25px;\ncolor: #F78C6C;\ndisplay: inline-flex;\nalign-items: center;\n}\n.expire-warning .mdi {\nline-height: 1;\nmargin-right: 8px;\nfont-size: 16px;\n}\n`,"watchlater-expire-warning-style");const i=14;const r=24*3600*1e3;const a=e=>{return(e-Number(new Date))/r};Observer.childListSubtree(t,async()=>{const n=[...t.querySelectorAll(".av-item .state")];const l=await e(true);n.forEach((e,n)=>{const t=l[n].add_at*1e3+60*r;const c=a(t);console.log(l[n].aid,c);if(c<i){if(e.querySelector(".expire-warning")===null){const n=-Math.floor(-c);e.insertAdjacentHTML("afterbegin",`\n<span class="expire-warning" title="到期时间: ${new Date(t).toLocaleString()}"><i class="mdi mdi-alert-circle-outline"></i>还剩${n}天过期</span>`)}}else{e.querySelectorAll(".expire-warning").forEach(e=>e.remove())}})})})()}})();
|
||||
(()=>{return(e,n)=>{(async()=>{if(!["//www.bilibili.com/watchlater/#/list"].some(e=>document.URL.includes(e))){return}const{getWatchlaterList:t}=await n.importAsync("watchlater-api");const i=await SpinQuery.select(".watch-later-list .list-box");if(i===null){return}n.applyStyleFromText(`\n.expire-warning {\npadding: 3px 25px;\ncolor: #F78C6C;\ndisplay: inline-flex;\nalign-items: center;\n}\n.expire-warning .mdi {\nline-height: 1;\nmargin-right: 8px;\nfont-size: 16px;\n}\n`,"watchlater-expire-warning-style");const r=e.watchlaterExpireWarningDays;const a=24*3600*1e3;const l=e=>{return(e-Number(new Date))/a};Observer.childListSubtree(i,async()=>{const e=[...i.querySelectorAll(".av-item .state")];const n=await t(true);e.forEach((e,t)=>{const i=n[t].add_at*1e3+60*a;const c=l(i);console.log(n[t].aid,c);if(c<r){if(e.querySelector(".expire-warning")===null){const n=-Math.floor(-c);e.insertAdjacentHTML("afterbegin",`\n<span class="expire-warning" title="到期时间: ${new Date(i).toLocaleString()}"><i class="mdi mdi-alert-circle-outline"></i>还剩${n}天过期</span>`)}}else{e.querySelectorAll(".expire-warning").forEach(e=>e.remove())}})})})()}})();
|
||||
@ -165,6 +165,7 @@ export const settings = {
|
||||
downloadVideoFormat: 'flv',
|
||||
enableDashDownload: false,
|
||||
watchlaterExpireWarnings: true,
|
||||
watchlaterExpireWarningDays: 14,
|
||||
cache: {},
|
||||
}
|
||||
const fixedSettings = {
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
}
|
||||
`, 'watchlater-expire-warning-style')
|
||||
// 少于此天数时提示
|
||||
const WarningDays = 14
|
||||
const WarningDays = settings.watchlaterExpireWarningDays
|
||||
const DayInMilliseconds = 24 * 3600 * 1000
|
||||
const getRemainingDays = (expireTime: number) => {
|
||||
return (expireTime - Number(new Date())) / DayInMilliseconds
|
||||
|
||||
Loading…
Reference in New Issue
Block a user