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}}

Authors:{{author.name}}
Contributors:{{contributor.name}}
Participants:{{participant.name}}
Supporters:{{supporter}}
`; -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}}

Authors:{{author.name}}
Contributors:{{contributor.name}}
Participants:{{participant.name}}
Supporters:{{supporter}}
`; -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