diff --git a/bilibili-evolved.offline.user.js b/bilibili-evolved.offline.user.js
index 0878e3960..f3e9e0cb1 100644
--- a/bilibili-evolved.offline.user.js
+++ b/bilibili-evolved.offline.user.js
@@ -1,6 +1,6 @@
// ==UserScript==
// @name Bilibili Evolved (Offline)
-// @version 307.37
+// @version 307.95
// @description Bilibili Evolved 的离线版, 所有功能都已内置于脚本中.
// @author Grant Howard, Coulomb-G
// @copyright 2019, Grant Howard (https://github.com/the1812) & Coulomb-G (https://github.com/Coulomb-G)
@@ -1012,9 +1012,9 @@ class ColorProcessor
}
}
const offlineData = {};
-offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/about.min.css"] = `.bilibili-evolved-about{height:100%;width:400px;background:#fff;color:#000;position:fixed;top:0;left:0;z-index:100000;transform:translateX(-100%);transition:.3s cubic-bezier(0,.86,.58,1);display:flex;flex-direction:column;box-shadow:4px 0 16px 0 #0000}body.dark .bilibili-evolved-about{background:#222;color:#eee}.bilibili-evolved-about.opened{transform:translateX(0);box-shadow:4px 0 16px 0 #0005}.about-header{padding:32px;display:flex;align-items:center;justify-content:flex-start}.about-header i{margin-right:8px;display:flex}.about-title{font-size:16pt}.about-content{padding:0 36px;display:flex;flex-direction:column}.about-content .name{font-size:24pt;display:flex;align-items:center}.about-content .name img{margin-right:18px}.about-content .version{font-size:12pt;opacity:.6;margin-top:6px;margin-bottom:36px;align-self:center}.about-content section{font-size:10pt;margin-top:16px}.about-content section .supporter,.about-content section a{color:var(--theme-color)!important;margin:0 2px}.about-content section .supporter{user-select:none}.about-content section .supporter:first-child,.about-content section a:first-child{margin-left:6px}.about-content section .supporter:not(:last-child)::after,.about-content section a:not(:last-child)::after{content:","}`;
+offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/about.min.css"] = `.bilibili-evolved-about{height:100%;width:400px;background:#fff;color:#000;position:fixed;top:0;left:0;z-index:100000;transform:translateX(-100%);transition:.3s cubic-bezier(0,.86,.58,1);display:flex;flex-direction:column;box-shadow:4px 0 16px 0 #0000}body.dark .bilibili-evolved-about{background:#222;color:#eee}.bilibili-evolved-about.opened{transform:translateX(0);box-shadow:4px 0 16px 0 #0005}.about-header{padding:32px;display:flex;align-items:center;justify-content:flex-start}.about-header i{margin-right:8px;display:flex}.about-title{font-size:16pt}.about-content{padding:0 36px;display:flex;flex-direction:column}.about-content .name{font-size:24pt;display:flex;align-items:center}.about-content .name img{margin-right:18px}.about-content .version{font-size:12pt;opacity:.6;margin-top:6px;margin-bottom:36px;align-self:center}.about-content section{font-size:10pt;margin-top:16px}.about-content section .supporter,.about-content section a{color:var(--theme-color)!important;margin:0 2px;display:inline-flex}.about-content section .supporter{user-select:none}.about-content section .supporter:first-child,.about-content section a:first-child{margin-left:6px}.about-content section .supporter:not(:last-child)::after,.about-content section a:not(:last-child)::after{content:","}`;
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/about.min.html"] = `
Bilibili Evolved
v{{version}} · {{clientType}}
`;
-offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/about.min.js"] = (()=>{return(t,e)=>{(async()=>{const i=await e.importAsync("aboutHtml");document.body.insertAdjacentHTML("beforeend",i);const o=(t,e)=>t.charCodeAt(0)-e.charCodeAt(0);const r=GM_info.script.name.match(/Bilibili Evolved \((.*)\)/)[1];const a="https://api.github.com/repos/the1812/Bilibili-Evolved/issues?state=all&direction=asc&per_page=100&page=1";new Vue({el:".bilibili-evolved-about",data:{version:t.currentVersion,clientType:r,branch:/Preview|Local/.test(r)?"preview":"master",authors:[{name:"Grant Howard",link:"https://github.com/the1812"},{name:"Coulomb-G",link:"https://github.com/Coulomb-G"}],contributors:[{name:"PleiadeSubaru",link:"https://github.com/Etherrrr"}].sort(o),participants:[].sort(o),supporters:["*飞","N*v","*博睿","*杨","*泽鹏"].sort(o)}})})()}})();
+offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/about.min.js"] = (()=>{return(t,e)=>{(async()=>{const i=await e.importAsync("aboutHtml");document.body.insertAdjacentHTML("beforeend",i);const o=(t,e)=>t.charCodeAt(0)-e.charCodeAt(0);const n=(t,e)=>o(t.name,e.name);const r=GM_info.script.name.match(/Bilibili Evolved \((.*)\)/)[1];new Vue({el:".bilibili-evolved-about",data:{version:t.currentVersion,clientType:r,branch:/Preview|Local/.test(r)?"preview":"master",authors:[{name:"Grant Howard",link:"https://github.com/the1812"},{name:"Coulomb-G",link:"https://github.com/Coulomb-G"}],contributors:[{name:"PleiadeSubaru",link:"https://github.com/Etherrrr"}].sort(n),participants:[],supporters:["*飞","N*v","*博睿","*杨","*泽鹏"].sort(o)},mounted(){this.fetchParticipants()},methods:{async fetchParticipants(){const t=new Set;let e=[];let i=1;do{e=await Ajax.getJson(`https://api.github.com/repos/the1812/Bilibili-Evolved/issues?state=all&direction=asc&per_page=100&page=${i}`);i++;for(const i of e){t.add(i.user.login)}}while(e.length>0);this.participants=[...t].map(t=>{return{name:t,link:`https://github.com/${t}`}}).filter(({link:t})=>{return!this.authors.some(e=>e.link===t)&&!this.contributors.some(e=>e.link===t)}).sort(n)}}})})()}})();
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/auto-continue.min.js"] = (()=>{return(e,i)=>{if(typeof isEmbeddedPlayer!=="undefined"&&isEmbeddedPlayer()){return}function t(i){const t=i.text();if(/第(\d+)话/.test(t)){if(e.allowJumpContinue){i.parent().find(".bilibili-player-video-toast-item-jump").click()}return}const n=/((\d)*:)?(\d)*:(\d)*/g;const r=t.match(n);if(!r){return}const o=r[0].split(":");const l=(()=>{if(o.length===3){const[e,i,t]=o.map(e=>parseInt(e));return e*60*60+i*60+t}else if(o.length===2){const[e,i]=o.map(e=>parseInt(e));return e*60+i}else{logError(`解析历史时间发生错误: historyTime=${JSON.stringify(o)}`);return NaN}})();const s=i.parent();const a=document.querySelector("video");if(l从头开始`);e.appendTo(s).on("click",()=>{a.currentTime=0;s.find(".bilibili-player-video-toast-item-close").get(0).click()});i.html(`已跳转到上次历史记录${r[0]}`)}else{s.find(".bilibili-player-video-toast-item-close").get(0).click()}}function n(){SpinQuery.condition(()=>$(".bilibili-player-video-toast-item-text"),e=>e.text().indexOf("上次看到")!==-1,e=>t(e.filter((e,i)=>i.innerText.indexOf("上次看到")!==-1)))}Observer.videoChange(n)}})();
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/auto-play.min.js"] = (()=>{return(e,d)=>{if(typeof isEmbeddedPlayer!=="undefined"&&isEmbeddedPlayer()){return}SpinQuery.condition(()=>document.querySelector(".bilibili-player-video video"),e=>e&&e.paused===true,e=>e.play())}})();
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/batch-download.min.js"] = (()=>{return(t,e)=>{class s{static test(){return document.URL.includes("/www.bilibili.com/bangumi")}async collectData(t){const e=document.querySelector("meta[property='og:url']");if(e===null){Toast.error("获取番剧数据失败: 无法找到 Season ID","批量下载");return""}const s=e.getAttribute("content").match(/play\/ss(\d+)/)[1];if(s===undefined){Toast.error("获取番剧数据失败: 无法解析 Season ID","批量下载");return""}const i=await Ajax.getJson(`https://api.bilibili.com/pgc/web/season/section?season_id=${s}`);if(i.code!==0){Toast.error(`获取番剧数据失败: 无法获取番剧集数列表, message=${i.message}`,"批量下载");return""}const r=i.result.main_section.episodes.map(t=>{return{aid:t.aid,cid:t.cid,number:t.title,title:t.long_title}});const n=[];for(const e of r){const s=`https://api.bilibili.com/pgc/player/web/playurl?avid=${e.aid}&cid=${e.cid}&qn=${t}&otype=json`;const i=await Ajax.getJsonWithCredentials(s);const r=i.data||i.result||i;if(r.quality!==t){Toast.error("获取下载链接失败, 请确认当前账号有下载权限后重试.","批量下载");return""}const a=r.durl.map(t=>{return{length:t.length,size:t.size,url:t.url}});n.push({fragments:a,title:`${e.number} - ${e.title}`,totalSize:a.map(t=>t.size).reduce((t,e)=>t+e)})}return JSON.stringify(n)}}const i=[s];class r{async collectData(t,e){const s=new(i.find(t=>t.test()));const r=await s.collectData(t.quality);e.dismiss();return r}}return{export:{BatchExtractor:r}}}})();
diff --git a/bilibili-evolved.preview-offline.user.js b/bilibili-evolved.preview-offline.user.js
index 88878c70b..ced1a50e2 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 307.37
+// @version 307.95
// @description Bilibili Evolved 的预览离线版, 可以抢先体验新功能, 并且所有功能都已内置于脚本中.
// @author Grant Howard, Coulomb-G
// @copyright 2019, Grant Howard (https://github.com/the1812) & Coulomb-G (https://github.com/Coulomb-G)
@@ -1012,9 +1012,9 @@ class ColorProcessor
}
}
const offlineData = {};
-offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/about.min.css"] = `.bilibili-evolved-about{height:100%;width:400px;background:#fff;color:#000;position:fixed;top:0;left:0;z-index:100000;transform:translateX(-100%);transition:.3s cubic-bezier(0,.86,.58,1);display:flex;flex-direction:column;box-shadow:4px 0 16px 0 #0000}body.dark .bilibili-evolved-about{background:#222;color:#eee}.bilibili-evolved-about.opened{transform:translateX(0);box-shadow:4px 0 16px 0 #0005}.about-header{padding:32px;display:flex;align-items:center;justify-content:flex-start}.about-header i{margin-right:8px;display:flex}.about-title{font-size:16pt}.about-content{padding:0 36px;display:flex;flex-direction:column}.about-content .name{font-size:24pt;display:flex;align-items:center}.about-content .name img{margin-right:18px}.about-content .version{font-size:12pt;opacity:.6;margin-top:6px;margin-bottom:36px;align-self:center}.about-content section{font-size:10pt;margin-top:16px}.about-content section .supporter,.about-content section a{color:var(--theme-color)!important;margin:0 2px}.about-content section .supporter{user-select:none}.about-content section .supporter:first-child,.about-content section a:first-child{margin-left:6px}.about-content section .supporter:not(:last-child)::after,.about-content section a:not(:last-child)::after{content:","}`;
+offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/about.min.css"] = `.bilibili-evolved-about{height:100%;width:400px;background:#fff;color:#000;position:fixed;top:0;left:0;z-index:100000;transform:translateX(-100%);transition:.3s cubic-bezier(0,.86,.58,1);display:flex;flex-direction:column;box-shadow:4px 0 16px 0 #0000}body.dark .bilibili-evolved-about{background:#222;color:#eee}.bilibili-evolved-about.opened{transform:translateX(0);box-shadow:4px 0 16px 0 #0005}.about-header{padding:32px;display:flex;align-items:center;justify-content:flex-start}.about-header i{margin-right:8px;display:flex}.about-title{font-size:16pt}.about-content{padding:0 36px;display:flex;flex-direction:column}.about-content .name{font-size:24pt;display:flex;align-items:center}.about-content .name img{margin-right:18px}.about-content .version{font-size:12pt;opacity:.6;margin-top:6px;margin-bottom:36px;align-self:center}.about-content section{font-size:10pt;margin-top:16px}.about-content section .supporter,.about-content section a{color:var(--theme-color)!important;margin:0 2px;display:inline-flex}.about-content section .supporter{user-select:none}.about-content section .supporter:first-child,.about-content section a:first-child{margin-left:6px}.about-content section .supporter:not(:last-child)::after,.about-content section a:not(:last-child)::after{content:","}`;
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/about.min.html"] = `
Bilibili Evolved
v{{version}} · {{clientType}}
`;
-offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/about.min.js"] = (()=>{return(t,e)=>{(async()=>{const i=await e.importAsync("aboutHtml");document.body.insertAdjacentHTML("beforeend",i);const o=(t,e)=>t.charCodeAt(0)-e.charCodeAt(0);const r=GM_info.script.name.match(/Bilibili Evolved \((.*)\)/)[1];const a="https://api.github.com/repos/the1812/Bilibili-Evolved/issues?state=all&direction=asc&per_page=100&page=1";new Vue({el:".bilibili-evolved-about",data:{version:t.currentVersion,clientType:r,branch:/Preview|Local/.test(r)?"preview":"master",authors:[{name:"Grant Howard",link:"https://github.com/the1812"},{name:"Coulomb-G",link:"https://github.com/Coulomb-G"}],contributors:[{name:"PleiadeSubaru",link:"https://github.com/Etherrrr"}].sort(o),participants:[].sort(o),supporters:["*飞","N*v","*博睿","*杨","*泽鹏"].sort(o)}})})()}})();
+offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/about.min.js"] = (()=>{return(t,e)=>{(async()=>{const i=await e.importAsync("aboutHtml");document.body.insertAdjacentHTML("beforeend",i);const o=(t,e)=>t.charCodeAt(0)-e.charCodeAt(0);const n=(t,e)=>o(t.name,e.name);const r=GM_info.script.name.match(/Bilibili Evolved \((.*)\)/)[1];new Vue({el:".bilibili-evolved-about",data:{version:t.currentVersion,clientType:r,branch:/Preview|Local/.test(r)?"preview":"master",authors:[{name:"Grant Howard",link:"https://github.com/the1812"},{name:"Coulomb-G",link:"https://github.com/Coulomb-G"}],contributors:[{name:"PleiadeSubaru",link:"https://github.com/Etherrrr"}].sort(n),participants:[],supporters:["*飞","N*v","*博睿","*杨","*泽鹏"].sort(o)},mounted(){this.fetchParticipants()},methods:{async fetchParticipants(){const t=new Set;let e=[];let i=1;do{e=await Ajax.getJson(`https://api.github.com/repos/the1812/Bilibili-Evolved/issues?state=all&direction=asc&per_page=100&page=${i}`);i++;for(const i of e){t.add(i.user.login)}}while(e.length>0);this.participants=[...t].map(t=>{return{name:t,link:`https://github.com/${t}`}}).filter(({link:t})=>{return!this.authors.some(e=>e.link===t)&&!this.contributors.some(e=>e.link===t)}).sort(n)}}})})()}})();
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/auto-continue.min.js"] = (()=>{return(e,i)=>{if(typeof isEmbeddedPlayer!=="undefined"&&isEmbeddedPlayer()){return}function t(i){const t=i.text();if(/第(\d+)话/.test(t)){if(e.allowJumpContinue){i.parent().find(".bilibili-player-video-toast-item-jump").click()}return}const n=/((\d)*:)?(\d)*:(\d)*/g;const r=t.match(n);if(!r){return}const o=r[0].split(":");const l=(()=>{if(o.length===3){const[e,i,t]=o.map(e=>parseInt(e));return e*60*60+i*60+t}else if(o.length===2){const[e,i]=o.map(e=>parseInt(e));return e*60+i}else{logError(`解析历史时间发生错误: historyTime=${JSON.stringify(o)}`);return NaN}})();const s=i.parent();const a=document.querySelector("video");if(l从头开始`);e.appendTo(s).on("click",()=>{a.currentTime=0;s.find(".bilibili-player-video-toast-item-close").get(0).click()});i.html(`已跳转到上次历史记录${r[0]}`)}else{s.find(".bilibili-player-video-toast-item-close").get(0).click()}}function n(){SpinQuery.condition(()=>$(".bilibili-player-video-toast-item-text"),e=>e.text().indexOf("上次看到")!==-1,e=>t(e.filter((e,i)=>i.innerText.indexOf("上次看到")!==-1)))}Observer.videoChange(n)}})();
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/auto-play.min.js"] = (()=>{return(e,d)=>{if(typeof isEmbeddedPlayer!=="undefined"&&isEmbeddedPlayer()){return}SpinQuery.condition(()=>document.querySelector(".bilibili-player-video video"),e=>e&&e.paused===true,e=>e.play())}})();
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/batch-download.min.js"] = (()=>{return(t,e)=>{class s{static test(){return document.URL.includes("/www.bilibili.com/bangumi")}async collectData(t){const e=document.querySelector("meta[property='og:url']");if(e===null){Toast.error("获取番剧数据失败: 无法找到 Season ID","批量下载");return""}const s=e.getAttribute("content").match(/play\/ss(\d+)/)[1];if(s===undefined){Toast.error("获取番剧数据失败: 无法解析 Season ID","批量下载");return""}const i=await Ajax.getJson(`https://api.bilibili.com/pgc/web/season/section?season_id=${s}`);if(i.code!==0){Toast.error(`获取番剧数据失败: 无法获取番剧集数列表, message=${i.message}`,"批量下载");return""}const r=i.result.main_section.episodes.map(t=>{return{aid:t.aid,cid:t.cid,number:t.title,title:t.long_title}});const n=[];for(const e of r){const s=`https://api.bilibili.com/pgc/player/web/playurl?avid=${e.aid}&cid=${e.cid}&qn=${t}&otype=json`;const i=await Ajax.getJsonWithCredentials(s);const r=i.data||i.result||i;if(r.quality!==t){Toast.error("获取下载链接失败, 请确认当前账号有下载权限后重试.","批量下载");return""}const a=r.durl.map(t=>{return{length:t.length,size:t.size,url:t.url}});n.push({fragments:a,title:`${e.number} - ${e.title}`,totalSize:a.map(t=>t.size).reduce((t,e)=>t+e)})}return JSON.stringify(n)}}const i=[s];class r{async collectData(t,e){const s=new(i.find(t=>t.test()));const r=await s.collectData(t.quality);e.dismiss();return r}}return{export:{BatchExtractor:r}}}})();
diff --git a/min/about.min.css b/min/about.min.css
index 637dd6491..63d60fcc7 100644
--- a/min/about.min.css
+++ b/min/about.min.css
@@ -1 +1 @@
-.bilibili-evolved-about{height:100%;width:400px;background:#fff;color:#000;position:fixed;top:0;left:0;z-index:100000;transform:translateX(-100%);transition:.3s cubic-bezier(0,.86,.58,1);display:flex;flex-direction:column;box-shadow:4px 0 16px 0 #0000}body.dark .bilibili-evolved-about{background:#222;color:#eee}.bilibili-evolved-about.opened{transform:translateX(0);box-shadow:4px 0 16px 0 #0005}.about-header{padding:32px;display:flex;align-items:center;justify-content:flex-start}.about-header i{margin-right:8px;display:flex}.about-title{font-size:16pt}.about-content{padding:0 36px;display:flex;flex-direction:column}.about-content .name{font-size:24pt;display:flex;align-items:center}.about-content .name img{margin-right:18px}.about-content .version{font-size:12pt;opacity:.6;margin-top:6px;margin-bottom:36px;align-self:center}.about-content section{font-size:10pt;margin-top:16px}.about-content section .supporter,.about-content section a{color:var(--theme-color)!important;margin:0 2px}.about-content section .supporter{user-select:none}.about-content section .supporter:first-child,.about-content section a:first-child{margin-left:6px}.about-content section .supporter:not(:last-child)::after,.about-content section a:not(:last-child)::after{content:","}
\ No newline at end of file
+.bilibili-evolved-about{height:100%;width:400px;background:#fff;color:#000;position:fixed;top:0;left:0;z-index:100000;transform:translateX(-100%);transition:.3s cubic-bezier(0,.86,.58,1);display:flex;flex-direction:column;box-shadow:4px 0 16px 0 #0000}body.dark .bilibili-evolved-about{background:#222;color:#eee}.bilibili-evolved-about.opened{transform:translateX(0);box-shadow:4px 0 16px 0 #0005}.about-header{padding:32px;display:flex;align-items:center;justify-content:flex-start}.about-header i{margin-right:8px;display:flex}.about-title{font-size:16pt}.about-content{padding:0 36px;display:flex;flex-direction:column}.about-content .name{font-size:24pt;display:flex;align-items:center}.about-content .name img{margin-right:18px}.about-content .version{font-size:12pt;opacity:.6;margin-top:6px;margin-bottom:36px;align-self:center}.about-content section{font-size:10pt;margin-top:16px}.about-content section .supporter,.about-content section a{color:var(--theme-color)!important;margin:0 2px;display:inline-flex}.about-content section .supporter{user-select:none}.about-content section .supporter:first-child,.about-content section a:first-child{margin-left:6px}.about-content section .supporter:not(:last-child)::after,.about-content section a:not(:last-child)::after{content:","}
\ No newline at end of file
diff --git a/min/about.min.js b/min/about.min.js
index 979c1b620..11b1eab9f 100644
--- a/min/about.min.js
+++ b/min/about.min.js
@@ -1 +1 @@
-(()=>{return(t,e)=>{(async()=>{const i=await e.importAsync("aboutHtml");document.body.insertAdjacentHTML("beforeend",i);const o=(t,e)=>t.charCodeAt(0)-e.charCodeAt(0);const r=GM_info.script.name.match(/Bilibili Evolved \((.*)\)/)[1];const a="https://api.github.com/repos/the1812/Bilibili-Evolved/issues?state=all&direction=asc&per_page=100&page=1";new Vue({el:".bilibili-evolved-about",data:{version:t.currentVersion,clientType:r,branch:/Preview|Local/.test(r)?"preview":"master",authors:[{name:"Grant Howard",link:"https://github.com/the1812"},{name:"Coulomb-G",link:"https://github.com/Coulomb-G"}],contributors:[{name:"PleiadeSubaru",link:"https://github.com/Etherrrr"}].sort(o),participants:[].sort(o),supporters:["*飞","N*v","*博睿","*杨","*泽鹏"].sort(o)}})})()}})();
\ No newline at end of file
+(()=>{return(t,e)=>{(async()=>{const i=await e.importAsync("aboutHtml");document.body.insertAdjacentHTML("beforeend",i);const o=(t,e)=>t.charCodeAt(0)-e.charCodeAt(0);const n=(t,e)=>o(t.name,e.name);const r=GM_info.script.name.match(/Bilibili Evolved \((.*)\)/)[1];new Vue({el:".bilibili-evolved-about",data:{version:t.currentVersion,clientType:r,branch:/Preview|Local/.test(r)?"preview":"master",authors:[{name:"Grant Howard",link:"https://github.com/the1812"},{name:"Coulomb-G",link:"https://github.com/Coulomb-G"}],contributors:[{name:"PleiadeSubaru",link:"https://github.com/Etherrrr"}].sort(n),participants:[],supporters:["*飞","N*v","*博睿","*杨","*泽鹏"].sort(o)},mounted(){this.fetchParticipants()},methods:{async fetchParticipants(){const t=new Set;let e=[];let i=1;do{e=await Ajax.getJson(`https://api.github.com/repos/the1812/Bilibili-Evolved/issues?state=all&direction=asc&per_page=100&page=${i}`);i++;for(const i of e){t.add(i.user.login)}}while(e.length>0);this.participants=[...t].map(t=>{return{name:t,link:`https://github.com/${t}`}}).filter(({link:t})=>{return!this.authors.some(e=>e.link===t)&&!this.contributors.some(e=>e.link===t)}).sort(n)}}})})()}})();
\ No newline at end of file
diff --git a/utils/about/about.css b/utils/about/about.css
index 3a2998ad4..7cb9b6be4 100644
--- a/utils/about/about.css
+++ b/utils/about/about.css
@@ -74,6 +74,7 @@ body.dark .bilibili-evolved-about
{
color: var(--theme-color) !important;
margin: 0 2px;
+ display: inline-flex;
}
.about-content section .supporter
{
diff --git a/utils/about/about.js b/utils/about/about.js
index c0189f6f1..a4d57d889 100644
--- a/utils/about/about.js
+++ b/utils/about/about.js
@@ -3,8 +3,8 @@
const html = await import("aboutHtml");
document.body.insertAdjacentHTML("beforeend", html);
const nameSorter = (a, b) => a.charCodeAt(0) - b.charCodeAt(0);
+ const userSorter = (a, b) => nameSorter(a.name, b.name);
const clientType = GM_info.script.name.match(/Bilibili Evolved \((.*)\)/)[1];
- const issueApi = "https://api.github.com/repos/the1812/Bilibili-Evolved/issues?state=all&direction=asc&per_page=100&page=1";
new Vue({
el: ".bilibili-evolved-about",
data: {
@@ -26,10 +26,8 @@
name: "PleiadeSubaru",
link: "https://github.com/Etherrrr",
},
- ].sort(nameSorter),
- participants: [
-
- ].sort(nameSorter),
+ ].sort(userSorter),
+ participants: [],
supporters: [
"*飞",
"N*v",
@@ -37,6 +35,39 @@
"*杨",
"*泽鹏",
].sort(nameSorter),
- }
+ },
+ mounted()
+ {
+ this.fetchParticipants();
+ },
+ methods: {
+ async fetchParticipants()
+ {
+ const allParticipants = new Set();
+ let issues = [];
+ let page = 1;
+ do
+ {
+ issues = await Ajax.getJson(`https://api.github.com/repos/the1812/Bilibili-Evolved/issues?state=all&direction=asc&per_page=100&page=${page}`);
+ page++;
+ for (const issue of issues)
+ {
+ allParticipants.add(issue.user.login);
+ }
+ }
+ while (issues.length > 0);
+ this.participants = [...allParticipants].map(name =>
+ {
+ return {
+ name,
+ link: `https://github.com/${name}`,
+ };
+ }).filter(({ link }) =>
+ {
+ return !this.authors.some(it => it.link === link) &&
+ !this.contributors.some(it => it.link === link);
+ }).sort(userSorter);
+ },
+ },
});
})();
\ No newline at end of file