From c34c56f945c7bfa8267a67c7c5c223c486e3c718 Mon Sep 17 00:00:00 2001 From: the1812 Date: Wed, 4 Sep 2019 11:35:51 +0800 Subject: [PATCH] Support anonymous resource --- bilibili-evolved.offline.user.js | 47 ++++++++++------------ bilibili-evolved.preview-offline.user.js | 47 ++++++++++------------ bilibili-evolved.preview.user.js | 45 ++++++++++----------- bilibili-evolved.user.js | 45 ++++++++++----------- builder/dotnet/TypeScriptBuilder.cs | 2 +- builder/dotnet/publish/build.dll | Bin 42496 -> 42496 bytes min/bundle.json | 2 +- min/bundle.zip | Bin 481260 -> 481263 bytes min/simplify-home.vue.min.js | 2 +- src/client/resource-manager.js | 25 +++++++++--- src/client/resource-manifest.js | 18 +-------- src/style/simplify-home/simplify-home.vue | 8 ++-- 12 files changed, 112 insertions(+), 129 deletions(-) diff --git a/bilibili-evolved.offline.user.js b/bilibili-evolved.offline.user.js index c32ab0c10..42633aedb 100644 --- a/bilibili-evolved.offline.user.js +++ b/bilibili-evolved.offline.user.js @@ -1,6 +1,6 @@ // ==UserScript== // @name Bilibili Evolved (Offline) -// @version 414.20 +// @version 414.82 // @description Bilibili Evolved 的离线版, 所有功能都已内置于脚本中. // @author Grant Howard, Coulomb-G // @copyright 2019, Grant Howard (https://github.com/the1812) & Coulomb-G (https://github.com/Coulomb-G) @@ -1072,7 +1072,7 @@ offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/m offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/show-dead-video-title.min.js"] = (()=>{return(e,t)=>{(async()=>{if(!document.URL.startsWith("https://space.bilibili.com")){return}class t{}class i extends t{convertToDeadVideoInfo(e,t){return{aid:e,title:t.title,cover:t.pic}}async queryInfo(e){const t=[];if(e.length<=i.MaxCountPerRequest){const s=await Ajax.getJson(`${i.BiliplusHost}/api/aidinfo?aid=${e.join(",")}`);if(s.code===0){t.push(...e.map(e=>{if(e in s.data){return this.convertToDeadVideoInfo(e,s.data[e])}else{return{aid:e,title:"已失效视频",cover:""}}}))}else{console.error(`[显示失效视频信息] Biliplus API 未成功. message=${s.message}`)}}else{t.push(...await this.queryInfo(e.slice(0,i.MaxCountPerRequest)));t.push(...await this.queryInfo(e.slice(i.MaxCountPerRequest)))}return t}}i.BiliplusHost=`https://hd.biliplus.com`;i.MaxCountPerRequest=30;class s extends t{async toggleWatchlater(e,t){for(const i of t){await Ajax.postTextWithCredentials(`https://api.bilibili.com/x/v2/history/toview/${e?"add":"del"}`,`aid=${i}&csrf=${s.csrf}`)}}async queryInfo(e){const t=[];await this.toggleWatchlater(true,e);const i=await Ajax.getJsonWithCredentials("https://api.bilibili.com/x/v2/history/toview/web");if(i.code===0){const s=i.data.list.map(e=>{return{aid:e.aid.toString(),title:e.title,cover:e.pic}});t.push(...e.map(e=>s.find(t=>t.aid===e)).filter(e=>e!==undefined));await this.toggleWatchlater(false,e)}else{console.error(`[显示失效视频信息] 稍后再看 API 未成功. message=${i.message}`)}return t}}s.csrf=document.cookie.replace(/(?:(?:^|.*;\s*)bili_jct\s*\=\s*([^;]*).*$)|^.*$/,"$1");const a=await SpinQuery.select("#app>.s-space");if(!a){return}Observer.childListSubtree(a,async()=>{const t=dqa(".disabled[data-aid]");if(t.length===0){return}const a=t.map(e=>e.getAttribute("data-aid"));const o=e.deadVideoTitleProvider==="BiliPlus"?new i:new s;const r=await o.queryInfo(a);console.log(`[显示失效视频信息]`,`deadVideos:`,t,`infos:`,r);t.forEach((t,i)=>{t.classList.remove("disabled");const s=t.getAttribute("data-aid");const a=(()=>{if(e.useBiliplusRedirect){return`https://hd.biliplus.com/video/av${s}`}else{return`//www.bilibili.com/video/av${s}`}})();const o=r.find(e=>e.aid===s);console.log(`[显示失效视频信息]`,"#"+i,o);if(o===undefined){console.error(`[显示失效视频信息]信息获取失败, aid=${s}`);return}const n=t.querySelector("a.cover");n.target="_blank";n.href=a;if(o.cover!==""){n.querySelector("img").src=o.cover.replace("http:","https:")}const l=t.querySelector("a.title");l.target="_blank";l.title=o.title;l.href=a;l.innerText=o.title})})})()}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/simple-home.vue.min.js"] = (()=>{return(e,t)=>{const m=`
I'm SimpleHome component!
`;return{export:Object.assign({template:m},{})}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/simplify-home.min.js"] = (()=>{return(e,i)=>{(async()=>{if(document.URL.replace(window.location.search,"")!=="https://www.bilibili.com/"){return}const t=await i.importAsync("simplify-home.vue");document.body.insertAdjacentHTML("afterbegin",`\n \n `);const m=new Vue({el:"simplify-home",components:{"simplify-home":t},data:{homeStyle:e.simplifyHomeStyle}});addSettingsListener("simplifyHomeStyle",e=>m.homeStyle=e,false)})()}})(); -offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/simplify-home.vue.min.js"] = (()=>{return(e,o)=>{const t=`
`;const m=o.import("minimal-home.vue");const n=o.import("simple-home.vue");return{export:Object.assign({template:t},{components:{"minimal-home":m,"simple-home":n},computed:{activeComponent(){return this.homeStyle==="清爽"?n:m}},props:{homeStyle:String}})}}})(); +offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/simplify-home.vue.min.js"] = (()=>{return(e,m)=>{const o=`
`;return{export:Object.assign({template:o},{components:{"minimal-home":()=>m.importAsync("minimal-home.vue"),"simple-home":()=>m.importAsync("simple-home.vue")},computed:{activeComponent(){return this.homeStyle==="清爽"?"simple-home":"minimal-home"}},props:{homeStyle:String}})}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/simplify-liveroom.min.css"] = `.simplify-fansMedal .fans-medal-item-ctnr,.simplify-giftMessage .chat-item.gift-item,.simplify-guard i.guard-icon,.simplify-guardPurchase .chat-item.guard-buy,.simplify-popup .chat-popups-section,.simplify-popup .link-popup-ctnr,.simplify-systemMessage .announcement-wrapper,.simplify-systemMessage .system-msg,.simplify-title .title-label,.simplify-userLevel .user-level-icon,.simplify-vip .vip-icon,.simplify-welcomeMessage .welcome-guard,.simplify-welcomeMessage .welcome-msg{display:none!important}.simplify-skin #gift-control-vm,.simplify-skin #head-info-vm,.simplify-skin #rank-list-ctnr-box{background-image:none!important}.simplify-guard .guard-danmaku::before{border-image:none!important;background-color:transparent!important}.simplify-guard .guard-danmaku{margin:0!important;padding:4px 5px!important}.simplify-guard .guard-danmaku::after{background-image:none!important}.simplify-liveroom-settings>ul>li{padding:8px 12px;display:flex;align-items:center}.simplify-liveroom-settings>ul>li:hover{background:rgba(0,0,0,.16)}.round-corner .simplify-liveroom-settings>ul>li{border-radius:var(--corner-radius)}`; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/simplify-liveroom.min.js"] = (()=>{return(e,i)=>{const s={vip:"老爷图标",fansMedal:"粉丝勋章",title:"活动头衔",userLevel:"用户等级",guard:"舰长图标",systemMessage:"全区广播",welcomeMessage:"欢迎信息",giftMessage:"礼物弹幕",guardPurchase:"上舰提示",popup:"抽奖提示",skin:"房间皮肤"};return{widget:{condition:()=>document.URL.startsWith(`https://live.bilibili.com/`),content:`\n
\n \n 简化直播间\n \n
\n `,success:()=>{const i=document.querySelector("#simplify-liveroom");const t=document.querySelector(".gui-settings-mask");i.addEventListener("click",e=>{const i=document.querySelector(".simplify-liveroom-settings");if(i.contains(e.target)||e.target===i){return}i.classList.toggle("opened")});i.addEventListener("mouseenter",()=>t.classList.add("transparent"));i.addEventListener("mouseleave",()=>t.classList.remove("transparent"));let n=e.simplifyLiveroomSettings.skin;const a=["#head-info-vm","#gift-control-vm","#rank-list-vm","#rank-list-ctnr-box",".gift-panel.base-panel",".gift-panel.extend-panel",".seeds-wrap>div:first-child",".gift-section>div:last-child",".z-gift-package>div>div",".right-action"];const c="live-skin-coloration-area";a.forEach(e=>{SpinQuery.select(e,i=>{Observer.attributes(e,e=>{e.forEach(e=>{if(e.attributeName==="class"){if(n&&i.classList.contains(c)){i.classList.remove(c)}else if(!n&&!i.classList.contains(c)){i.classList.add(c)}}})})})});const o=(e,i)=>{document.body.classList[e?"add":"remove"](`simplify-${i}`);if(i==="skin"){n=e;a.forEach(i=>{SpinQuery.select(i,i=>i.classList[e?"remove":"add"]("live-skin-coloration-area"))})}};new Vue({el:".simplify-liveroom-settings",data:{items:Object.entries(s).map(([i,s])=>{const t=e.simplifyLiveroomSettings[i];o(t,i);return{key:i,name:s,checked:t}})},methods:{itemClick(i){i.checked=!i.checked;o(i.checked,i.key);e.simplifyLiveroomSettings=Object.assign(e.simplifyLiveroomSettings,{[i.key]:i.checked})}}})}}}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/skip-charge-list.min.css"] = `.bilibili-player .bilibili-player-area .bilibili-player-electric-panel{display:none!important}`; @@ -1939,25 +1939,9 @@ Resource.manifest = { simplifyHome: { path: 'simplify-home.min.js', displayNames: { - simplifyHome: '简化首页', - simplifyHomeComponent: '简化首页组件', - minimalHomeComponent: '简化首页-极简样式', - simpleHomeComponent: '简化首页-清爽样式', + simplifyHome: '简化首页' }, }, - simplifyHomeComponent: { - path: 'simplify-home.vue.min.js', - dependencies: [ - 'minimalHomeComponent', - 'simpleHomeComponent', - ], - }, - minimalHomeComponent: { - path: 'minimal-home.vue.min.js', - }, - simpleHomeComponent: { - path: 'simple-home.vue.min.js', - } } const resourceManifest = Resource.manifest @@ -2081,18 +2065,29 @@ class ResourceManager { this.applyStyleFromText(`html{${styles.join(';')}}`, 'bilibili-evolved-variables') } resolveComponentName (componentName) { - const keyword = '/' + componentName.substring(componentName.lastIndexOf('/') + 1) + '.min.js' + const filename = '/' + componentName.substring(componentName.lastIndexOf('/') + 1) + '.min.js' for (const [name, value] of Object.entries(Resource.all)) { - if (value.url.endsWith(keyword)) { + if (value.url.endsWith(filename)) { return name } } - return componentName + if (componentName.endsWith('Html') || componentName.endsWith('Style')) { + return componentName + } + return filename.replace('/', '') } resolveComponent (componentName) { - const resource = Resource.all[this.resolveComponentName(componentName)] + const name = this.resolveComponentName(componentName) + let resource = Resource.all[name] if (!resource) { - this.skippedImport.push(componentName) + resource = new Resource(name) + let key = name.substring(0, name.indexOf('.')).replace(/-\w/g, t => t.substr(1).toUpperCase()) + if (name.includes('.vue.')) { + key += 'Component' + } + resource.key = key + console.log(name, key, resource) + Resource.all[key] = resource } return resource } @@ -2106,6 +2101,7 @@ class ResourceManager { if (resource.type.name === 'html' || resource.type.name === 'style') { resource.download().then(() => resolve(this.import(componentName))) } else { + console.log('async load: ', resource.key) this.fetchByKey(resource.key).then(() => resolve(this.import(componentName))) } } else { @@ -2237,7 +2233,8 @@ class ResourceManager { this.attributes[key] = attribute } catch (error) { console.error(`Failed to apply feature "${key}": ${error}`) - let toastMessage = `加载组件${Resource.all[key].displayName}失败` + const displayName = Resource.all[key].displayName + let toastMessage = `加载组件${displayName || key}失败` if (settings.toastInternalError) { toastMessage += '\n' + error } diff --git a/bilibili-evolved.preview-offline.user.js b/bilibili-evolved.preview-offline.user.js index 3f2f460b3..84c895714 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 414.20 +// @version 414.82 // @description Bilibili Evolved 的预览离线版, 可以抢先体验新功能, 并且所有功能都已内置于脚本中. // @author Grant Howard, Coulomb-G // @copyright 2019, Grant Howard (https://github.com/the1812) & Coulomb-G (https://github.com/Coulomb-G) @@ -1072,7 +1072,7 @@ offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/m offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/show-dead-video-title.min.js"] = (()=>{return(e,t)=>{(async()=>{if(!document.URL.startsWith("https://space.bilibili.com")){return}class t{}class i extends t{convertToDeadVideoInfo(e,t){return{aid:e,title:t.title,cover:t.pic}}async queryInfo(e){const t=[];if(e.length<=i.MaxCountPerRequest){const s=await Ajax.getJson(`${i.BiliplusHost}/api/aidinfo?aid=${e.join(",")}`);if(s.code===0){t.push(...e.map(e=>{if(e in s.data){return this.convertToDeadVideoInfo(e,s.data[e])}else{return{aid:e,title:"已失效视频",cover:""}}}))}else{console.error(`[显示失效视频信息] Biliplus API 未成功. message=${s.message}`)}}else{t.push(...await this.queryInfo(e.slice(0,i.MaxCountPerRequest)));t.push(...await this.queryInfo(e.slice(i.MaxCountPerRequest)))}return t}}i.BiliplusHost=`https://hd.biliplus.com`;i.MaxCountPerRequest=30;class s extends t{async toggleWatchlater(e,t){for(const i of t){await Ajax.postTextWithCredentials(`https://api.bilibili.com/x/v2/history/toview/${e?"add":"del"}`,`aid=${i}&csrf=${s.csrf}`)}}async queryInfo(e){const t=[];await this.toggleWatchlater(true,e);const i=await Ajax.getJsonWithCredentials("https://api.bilibili.com/x/v2/history/toview/web");if(i.code===0){const s=i.data.list.map(e=>{return{aid:e.aid.toString(),title:e.title,cover:e.pic}});t.push(...e.map(e=>s.find(t=>t.aid===e)).filter(e=>e!==undefined));await this.toggleWatchlater(false,e)}else{console.error(`[显示失效视频信息] 稍后再看 API 未成功. message=${i.message}`)}return t}}s.csrf=document.cookie.replace(/(?:(?:^|.*;\s*)bili_jct\s*\=\s*([^;]*).*$)|^.*$/,"$1");const a=await SpinQuery.select("#app>.s-space");if(!a){return}Observer.childListSubtree(a,async()=>{const t=dqa(".disabled[data-aid]");if(t.length===0){return}const a=t.map(e=>e.getAttribute("data-aid"));const o=e.deadVideoTitleProvider==="BiliPlus"?new i:new s;const r=await o.queryInfo(a);console.log(`[显示失效视频信息]`,`deadVideos:`,t,`infos:`,r);t.forEach((t,i)=>{t.classList.remove("disabled");const s=t.getAttribute("data-aid");const a=(()=>{if(e.useBiliplusRedirect){return`https://hd.biliplus.com/video/av${s}`}else{return`//www.bilibili.com/video/av${s}`}})();const o=r.find(e=>e.aid===s);console.log(`[显示失效视频信息]`,"#"+i,o);if(o===undefined){console.error(`[显示失效视频信息]信息获取失败, aid=${s}`);return}const n=t.querySelector("a.cover");n.target="_blank";n.href=a;if(o.cover!==""){n.querySelector("img").src=o.cover.replace("http:","https:")}const l=t.querySelector("a.title");l.target="_blank";l.title=o.title;l.href=a;l.innerText=o.title})})})()}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/simple-home.vue.min.js"] = (()=>{return(e,t)=>{const m=`
I'm SimpleHome component!
`;return{export:Object.assign({template:m},{})}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/simplify-home.min.js"] = (()=>{return(e,i)=>{(async()=>{if(document.URL.replace(window.location.search,"")!=="https://www.bilibili.com/"){return}const t=await i.importAsync("simplify-home.vue");document.body.insertAdjacentHTML("afterbegin",`\n \n `);const m=new Vue({el:"simplify-home",components:{"simplify-home":t},data:{homeStyle:e.simplifyHomeStyle}});addSettingsListener("simplifyHomeStyle",e=>m.homeStyle=e,false)})()}})(); -offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/simplify-home.vue.min.js"] = (()=>{return(e,o)=>{const t=`
`;const m=o.import("minimal-home.vue");const n=o.import("simple-home.vue");return{export:Object.assign({template:t},{components:{"minimal-home":m,"simple-home":n},computed:{activeComponent(){return this.homeStyle==="清爽"?n:m}},props:{homeStyle:String}})}}})(); +offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/simplify-home.vue.min.js"] = (()=>{return(e,m)=>{const o=`
`;return{export:Object.assign({template:o},{components:{"minimal-home":()=>m.importAsync("minimal-home.vue"),"simple-home":()=>m.importAsync("simple-home.vue")},computed:{activeComponent(){return this.homeStyle==="清爽"?"simple-home":"minimal-home"}},props:{homeStyle:String}})}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/simplify-liveroom.min.css"] = `.simplify-fansMedal .fans-medal-item-ctnr,.simplify-giftMessage .chat-item.gift-item,.simplify-guard i.guard-icon,.simplify-guardPurchase .chat-item.guard-buy,.simplify-popup .chat-popups-section,.simplify-popup .link-popup-ctnr,.simplify-systemMessage .announcement-wrapper,.simplify-systemMessage .system-msg,.simplify-title .title-label,.simplify-userLevel .user-level-icon,.simplify-vip .vip-icon,.simplify-welcomeMessage .welcome-guard,.simplify-welcomeMessage .welcome-msg{display:none!important}.simplify-skin #gift-control-vm,.simplify-skin #head-info-vm,.simplify-skin #rank-list-ctnr-box{background-image:none!important}.simplify-guard .guard-danmaku::before{border-image:none!important;background-color:transparent!important}.simplify-guard .guard-danmaku{margin:0!important;padding:4px 5px!important}.simplify-guard .guard-danmaku::after{background-image:none!important}.simplify-liveroom-settings>ul>li{padding:8px 12px;display:flex;align-items:center}.simplify-liveroom-settings>ul>li:hover{background:rgba(0,0,0,.16)}.round-corner .simplify-liveroom-settings>ul>li{border-radius:var(--corner-radius)}`; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/simplify-liveroom.min.js"] = (()=>{return(e,i)=>{const s={vip:"老爷图标",fansMedal:"粉丝勋章",title:"活动头衔",userLevel:"用户等级",guard:"舰长图标",systemMessage:"全区广播",welcomeMessage:"欢迎信息",giftMessage:"礼物弹幕",guardPurchase:"上舰提示",popup:"抽奖提示",skin:"房间皮肤"};return{widget:{condition:()=>document.URL.startsWith(`https://live.bilibili.com/`),content:`\n
\n \n 简化直播间\n \n
\n `,success:()=>{const i=document.querySelector("#simplify-liveroom");const t=document.querySelector(".gui-settings-mask");i.addEventListener("click",e=>{const i=document.querySelector(".simplify-liveroom-settings");if(i.contains(e.target)||e.target===i){return}i.classList.toggle("opened")});i.addEventListener("mouseenter",()=>t.classList.add("transparent"));i.addEventListener("mouseleave",()=>t.classList.remove("transparent"));let n=e.simplifyLiveroomSettings.skin;const a=["#head-info-vm","#gift-control-vm","#rank-list-vm","#rank-list-ctnr-box",".gift-panel.base-panel",".gift-panel.extend-panel",".seeds-wrap>div:first-child",".gift-section>div:last-child",".z-gift-package>div>div",".right-action"];const c="live-skin-coloration-area";a.forEach(e=>{SpinQuery.select(e,i=>{Observer.attributes(e,e=>{e.forEach(e=>{if(e.attributeName==="class"){if(n&&i.classList.contains(c)){i.classList.remove(c)}else if(!n&&!i.classList.contains(c)){i.classList.add(c)}}})})})});const o=(e,i)=>{document.body.classList[e?"add":"remove"](`simplify-${i}`);if(i==="skin"){n=e;a.forEach(i=>{SpinQuery.select(i,i=>i.classList[e?"remove":"add"]("live-skin-coloration-area"))})}};new Vue({el:".simplify-liveroom-settings",data:{items:Object.entries(s).map(([i,s])=>{const t=e.simplifyLiveroomSettings[i];o(t,i);return{key:i,name:s,checked:t}})},methods:{itemClick(i){i.checked=!i.checked;o(i.checked,i.key);e.simplifyLiveroomSettings=Object.assign(e.simplifyLiveroomSettings,{[i.key]:i.checked})}}})}}}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/skip-charge-list.min.css"] = `.bilibili-player .bilibili-player-area .bilibili-player-electric-panel{display:none!important}`; @@ -1939,25 +1939,9 @@ Resource.manifest = { simplifyHome: { path: 'simplify-home.min.js', displayNames: { - simplifyHome: '简化首页', - simplifyHomeComponent: '简化首页组件', - minimalHomeComponent: '简化首页-极简样式', - simpleHomeComponent: '简化首页-清爽样式', + simplifyHome: '简化首页' }, }, - simplifyHomeComponent: { - path: 'simplify-home.vue.min.js', - dependencies: [ - 'minimalHomeComponent', - 'simpleHomeComponent', - ], - }, - minimalHomeComponent: { - path: 'minimal-home.vue.min.js', - }, - simpleHomeComponent: { - path: 'simple-home.vue.min.js', - } } const resourceManifest = Resource.manifest @@ -2081,18 +2065,29 @@ class ResourceManager { this.applyStyleFromText(`html{${styles.join(';')}}`, 'bilibili-evolved-variables') } resolveComponentName (componentName) { - const keyword = '/' + componentName.substring(componentName.lastIndexOf('/') + 1) + '.min.js' + const filename = '/' + componentName.substring(componentName.lastIndexOf('/') + 1) + '.min.js' for (const [name, value] of Object.entries(Resource.all)) { - if (value.url.endsWith(keyword)) { + if (value.url.endsWith(filename)) { return name } } - return componentName + if (componentName.endsWith('Html') || componentName.endsWith('Style')) { + return componentName + } + return filename.replace('/', '') } resolveComponent (componentName) { - const resource = Resource.all[this.resolveComponentName(componentName)] + const name = this.resolveComponentName(componentName) + let resource = Resource.all[name] if (!resource) { - this.skippedImport.push(componentName) + resource = new Resource(name) + let key = name.substring(0, name.indexOf('.')).replace(/-\w/g, t => t.substr(1).toUpperCase()) + if (name.includes('.vue.')) { + key += 'Component' + } + resource.key = key + console.log(name, key, resource) + Resource.all[key] = resource } return resource } @@ -2106,6 +2101,7 @@ class ResourceManager { if (resource.type.name === 'html' || resource.type.name === 'style') { resource.download().then(() => resolve(this.import(componentName))) } else { + console.log('async load: ', resource.key) this.fetchByKey(resource.key).then(() => resolve(this.import(componentName))) } } else { @@ -2237,7 +2233,8 @@ class ResourceManager { this.attributes[key] = attribute } catch (error) { console.error(`Failed to apply feature "${key}": ${error}`) - let toastMessage = `加载组件${Resource.all[key].displayName}失败` + const displayName = Resource.all[key].displayName + let toastMessage = `加载组件${displayName || key}失败` if (settings.toastInternalError) { toastMessage += '\n' + error } diff --git a/bilibili-evolved.preview.user.js b/bilibili-evolved.preview.user.js index bc0d1445d..b3730b319 100644 --- a/bilibili-evolved.preview.user.js +++ b/bilibili-evolved.preview.user.js @@ -1071,7 +1071,7 @@ onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/m onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/show-dead-video-title.min.js"] = (()=>{return(e,t)=>{(async()=>{if(!document.URL.startsWith("https://space.bilibili.com")){return}class t{}class i extends t{convertToDeadVideoInfo(e,t){return{aid:e,title:t.title,cover:t.pic}}async queryInfo(e){const t=[];if(e.length<=i.MaxCountPerRequest){const s=await Ajax.getJson(`${i.BiliplusHost}/api/aidinfo?aid=${e.join(",")}`);if(s.code===0){t.push(...e.map(e=>{if(e in s.data){return this.convertToDeadVideoInfo(e,s.data[e])}else{return{aid:e,title:"已失效视频",cover:""}}}))}else{console.error(`[显示失效视频信息] Biliplus API 未成功. message=${s.message}`)}}else{t.push(...await this.queryInfo(e.slice(0,i.MaxCountPerRequest)));t.push(...await this.queryInfo(e.slice(i.MaxCountPerRequest)))}return t}}i.BiliplusHost=`https://hd.biliplus.com`;i.MaxCountPerRequest=30;class s extends t{async toggleWatchlater(e,t){for(const i of t){await Ajax.postTextWithCredentials(`https://api.bilibili.com/x/v2/history/toview/${e?"add":"del"}`,`aid=${i}&csrf=${s.csrf}`)}}async queryInfo(e){const t=[];await this.toggleWatchlater(true,e);const i=await Ajax.getJsonWithCredentials("https://api.bilibili.com/x/v2/history/toview/web");if(i.code===0){const s=i.data.list.map(e=>{return{aid:e.aid.toString(),title:e.title,cover:e.pic}});t.push(...e.map(e=>s.find(t=>t.aid===e)).filter(e=>e!==undefined));await this.toggleWatchlater(false,e)}else{console.error(`[显示失效视频信息] 稍后再看 API 未成功. message=${i.message}`)}return t}}s.csrf=document.cookie.replace(/(?:(?:^|.*;\s*)bili_jct\s*\=\s*([^;]*).*$)|^.*$/,"$1");const a=await SpinQuery.select("#app>.s-space");if(!a){return}Observer.childListSubtree(a,async()=>{const t=dqa(".disabled[data-aid]");if(t.length===0){return}const a=t.map(e=>e.getAttribute("data-aid"));const o=e.deadVideoTitleProvider==="BiliPlus"?new i:new s;const r=await o.queryInfo(a);console.log(`[显示失效视频信息]`,`deadVideos:`,t,`infos:`,r);t.forEach((t,i)=>{t.classList.remove("disabled");const s=t.getAttribute("data-aid");const a=(()=>{if(e.useBiliplusRedirect){return`https://hd.biliplus.com/video/av${s}`}else{return`//www.bilibili.com/video/av${s}`}})();const o=r.find(e=>e.aid===s);console.log(`[显示失效视频信息]`,"#"+i,o);if(o===undefined){console.error(`[显示失效视频信息]信息获取失败, aid=${s}`);return}const n=t.querySelector("a.cover");n.target="_blank";n.href=a;if(o.cover!==""){n.querySelector("img").src=o.cover.replace("http:","https:")}const l=t.querySelector("a.title");l.target="_blank";l.title=o.title;l.href=a;l.innerText=o.title})})})()}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/simple-home.vue.min.js"] = (()=>{return(e,t)=>{const m=`
I'm SimpleHome component!
`;return{export:Object.assign({template:m},{})}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/simplify-home.min.js"] = (()=>{return(e,i)=>{(async()=>{if(document.URL.replace(window.location.search,"")!=="https://www.bilibili.com/"){return}const t=await i.importAsync("simplify-home.vue");document.body.insertAdjacentHTML("afterbegin",`\n \n `);const m=new Vue({el:"simplify-home",components:{"simplify-home":t},data:{homeStyle:e.simplifyHomeStyle}});addSettingsListener("simplifyHomeStyle",e=>m.homeStyle=e,false)})()}})(); -onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/simplify-home.vue.min.js"] = (()=>{return(e,o)=>{const t=`
`;const m=o.import("minimal-home.vue");const n=o.import("simple-home.vue");return{export:Object.assign({template:t},{components:{"minimal-home":m,"simple-home":n},computed:{activeComponent(){return this.homeStyle==="清爽"?n:m}},props:{homeStyle:String}})}}})(); +onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/simplify-home.vue.min.js"] = (()=>{return(e,m)=>{const o=`
`;return{export:Object.assign({template:o},{components:{"minimal-home":()=>m.importAsync("minimal-home.vue"),"simple-home":()=>m.importAsync("simple-home.vue")},computed:{activeComponent(){return this.homeStyle==="清爽"?"simple-home":"minimal-home"}},props:{homeStyle:String}})}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/simplify-liveroom.min.css"] = `.simplify-fansMedal .fans-medal-item-ctnr,.simplify-giftMessage .chat-item.gift-item,.simplify-guard i.guard-icon,.simplify-guardPurchase .chat-item.guard-buy,.simplify-popup .chat-popups-section,.simplify-popup .link-popup-ctnr,.simplify-systemMessage .announcement-wrapper,.simplify-systemMessage .system-msg,.simplify-title .title-label,.simplify-userLevel .user-level-icon,.simplify-vip .vip-icon,.simplify-welcomeMessage .welcome-guard,.simplify-welcomeMessage .welcome-msg{display:none!important}.simplify-skin #gift-control-vm,.simplify-skin #head-info-vm,.simplify-skin #rank-list-ctnr-box{background-image:none!important}.simplify-guard .guard-danmaku::before{border-image:none!important;background-color:transparent!important}.simplify-guard .guard-danmaku{margin:0!important;padding:4px 5px!important}.simplify-guard .guard-danmaku::after{background-image:none!important}.simplify-liveroom-settings>ul>li{padding:8px 12px;display:flex;align-items:center}.simplify-liveroom-settings>ul>li:hover{background:rgba(0,0,0,.16)}.round-corner .simplify-liveroom-settings>ul>li{border-radius:var(--corner-radius)}`; onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/simplify-liveroom.min.js"] = (()=>{return(e,i)=>{const s={vip:"老爷图标",fansMedal:"粉丝勋章",title:"活动头衔",userLevel:"用户等级",guard:"舰长图标",systemMessage:"全区广播",welcomeMessage:"欢迎信息",giftMessage:"礼物弹幕",guardPurchase:"上舰提示",popup:"抽奖提示",skin:"房间皮肤"};return{widget:{condition:()=>document.URL.startsWith(`https://live.bilibili.com/`),content:`\n
\n \n 简化直播间\n \n
\n `,success:()=>{const i=document.querySelector("#simplify-liveroom");const t=document.querySelector(".gui-settings-mask");i.addEventListener("click",e=>{const i=document.querySelector(".simplify-liveroom-settings");if(i.contains(e.target)||e.target===i){return}i.classList.toggle("opened")});i.addEventListener("mouseenter",()=>t.classList.add("transparent"));i.addEventListener("mouseleave",()=>t.classList.remove("transparent"));let n=e.simplifyLiveroomSettings.skin;const a=["#head-info-vm","#gift-control-vm","#rank-list-vm","#rank-list-ctnr-box",".gift-panel.base-panel",".gift-panel.extend-panel",".seeds-wrap>div:first-child",".gift-section>div:last-child",".z-gift-package>div>div",".right-action"];const c="live-skin-coloration-area";a.forEach(e=>{SpinQuery.select(e,i=>{Observer.attributes(e,e=>{e.forEach(e=>{if(e.attributeName==="class"){if(n&&i.classList.contains(c)){i.classList.remove(c)}else if(!n&&!i.classList.contains(c)){i.classList.add(c)}}})})})});const o=(e,i)=>{document.body.classList[e?"add":"remove"](`simplify-${i}`);if(i==="skin"){n=e;a.forEach(i=>{SpinQuery.select(i,i=>i.classList[e?"remove":"add"]("live-skin-coloration-area"))})}};new Vue({el:".simplify-liveroom-settings",data:{items:Object.entries(s).map(([i,s])=>{const t=e.simplifyLiveroomSettings[i];o(t,i);return{key:i,name:s,checked:t}})},methods:{itemClick(i){i.checked=!i.checked;o(i.checked,i.key);e.simplifyLiveroomSettings=Object.assign(e.simplifyLiveroomSettings,{[i.key]:i.checked})}}})}}}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/skip-charge-list.min.css"] = `.bilibili-player .bilibili-player-area .bilibili-player-electric-panel{display:none!important}`; @@ -1959,25 +1959,9 @@ Resource.manifest = { simplifyHome: { path: 'simplify-home.min.js', displayNames: { - simplifyHome: '简化首页', - simplifyHomeComponent: '简化首页组件', - minimalHomeComponent: '简化首页-极简样式', - simpleHomeComponent: '简化首页-清爽样式', + simplifyHome: '简化首页' }, }, - simplifyHomeComponent: { - path: 'simplify-home.vue.min.js', - dependencies: [ - 'minimalHomeComponent', - 'simpleHomeComponent', - ], - }, - minimalHomeComponent: { - path: 'minimal-home.vue.min.js', - }, - simpleHomeComponent: { - path: 'simple-home.vue.min.js', - } } const resourceManifest = Resource.manifest @@ -2101,18 +2085,29 @@ class ResourceManager { this.applyStyleFromText(`html{${styles.join(';')}}`, 'bilibili-evolved-variables') } resolveComponentName (componentName) { - const keyword = '/' + componentName.substring(componentName.lastIndexOf('/') + 1) + '.min.js' + const filename = '/' + componentName.substring(componentName.lastIndexOf('/') + 1) + '.min.js' for (const [name, value] of Object.entries(Resource.all)) { - if (value.url.endsWith(keyword)) { + if (value.url.endsWith(filename)) { return name } } - return componentName + if (componentName.endsWith('Html') || componentName.endsWith('Style')) { + return componentName + } + return filename.replace('/', '') } resolveComponent (componentName) { - const resource = Resource.all[this.resolveComponentName(componentName)] + const name = this.resolveComponentName(componentName) + let resource = Resource.all[name] if (!resource) { - this.skippedImport.push(componentName) + resource = new Resource(name) + let key = name.substring(0, name.indexOf('.')).replace(/-\w/g, t => t.substr(1).toUpperCase()) + if (name.includes('.vue.')) { + key += 'Component' + } + resource.key = key + console.log(name, key, resource) + Resource.all[key] = resource } return resource } @@ -2126,6 +2121,7 @@ class ResourceManager { if (resource.type.name === 'html' || resource.type.name === 'style') { resource.download().then(() => resolve(this.import(componentName))) } else { + console.log('async load: ', resource.key) this.fetchByKey(resource.key).then(() => resolve(this.import(componentName))) } } else { @@ -2257,7 +2253,8 @@ class ResourceManager { this.attributes[key] = attribute } catch (error) { console.error(`Failed to apply feature "${key}": ${error}`) - let toastMessage = `加载组件${Resource.all[key].displayName}失败` + const displayName = Resource.all[key].displayName + let toastMessage = `加载组件${displayName || key}失败` if (settings.toastInternalError) { toastMessage += '\n' + error } diff --git a/bilibili-evolved.user.js b/bilibili-evolved.user.js index be58d5161..617c40b23 100644 --- a/bilibili-evolved.user.js +++ b/bilibili-evolved.user.js @@ -1071,7 +1071,7 @@ onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/m onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/show-dead-video-title.min.js"] = (()=>{return(e,t)=>{(async()=>{if(!document.URL.startsWith("https://space.bilibili.com")){return}class t{}class i extends t{convertToDeadVideoInfo(e,t){return{aid:e,title:t.title,cover:t.pic}}async queryInfo(e){const t=[];if(e.length<=i.MaxCountPerRequest){const s=await Ajax.getJson(`${i.BiliplusHost}/api/aidinfo?aid=${e.join(",")}`);if(s.code===0){t.push(...e.map(e=>{if(e in s.data){return this.convertToDeadVideoInfo(e,s.data[e])}else{return{aid:e,title:"已失效视频",cover:""}}}))}else{console.error(`[显示失效视频信息] Biliplus API 未成功. message=${s.message}`)}}else{t.push(...await this.queryInfo(e.slice(0,i.MaxCountPerRequest)));t.push(...await this.queryInfo(e.slice(i.MaxCountPerRequest)))}return t}}i.BiliplusHost=`https://hd.biliplus.com`;i.MaxCountPerRequest=30;class s extends t{async toggleWatchlater(e,t){for(const i of t){await Ajax.postTextWithCredentials(`https://api.bilibili.com/x/v2/history/toview/${e?"add":"del"}`,`aid=${i}&csrf=${s.csrf}`)}}async queryInfo(e){const t=[];await this.toggleWatchlater(true,e);const i=await Ajax.getJsonWithCredentials("https://api.bilibili.com/x/v2/history/toview/web");if(i.code===0){const s=i.data.list.map(e=>{return{aid:e.aid.toString(),title:e.title,cover:e.pic}});t.push(...e.map(e=>s.find(t=>t.aid===e)).filter(e=>e!==undefined));await this.toggleWatchlater(false,e)}else{console.error(`[显示失效视频信息] 稍后再看 API 未成功. message=${i.message}`)}return t}}s.csrf=document.cookie.replace(/(?:(?:^|.*;\s*)bili_jct\s*\=\s*([^;]*).*$)|^.*$/,"$1");const a=await SpinQuery.select("#app>.s-space");if(!a){return}Observer.childListSubtree(a,async()=>{const t=dqa(".disabled[data-aid]");if(t.length===0){return}const a=t.map(e=>e.getAttribute("data-aid"));const o=e.deadVideoTitleProvider==="BiliPlus"?new i:new s;const r=await o.queryInfo(a);console.log(`[显示失效视频信息]`,`deadVideos:`,t,`infos:`,r);t.forEach((t,i)=>{t.classList.remove("disabled");const s=t.getAttribute("data-aid");const a=(()=>{if(e.useBiliplusRedirect){return`https://hd.biliplus.com/video/av${s}`}else{return`//www.bilibili.com/video/av${s}`}})();const o=r.find(e=>e.aid===s);console.log(`[显示失效视频信息]`,"#"+i,o);if(o===undefined){console.error(`[显示失效视频信息]信息获取失败, aid=${s}`);return}const n=t.querySelector("a.cover");n.target="_blank";n.href=a;if(o.cover!==""){n.querySelector("img").src=o.cover.replace("http:","https:")}const l=t.querySelector("a.title");l.target="_blank";l.title=o.title;l.href=a;l.innerText=o.title})})})()}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/simple-home.vue.min.js"] = (()=>{return(e,t)=>{const m=`
I'm SimpleHome component!
`;return{export:Object.assign({template:m},{})}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/simplify-home.min.js"] = (()=>{return(e,i)=>{(async()=>{if(document.URL.replace(window.location.search,"")!=="https://www.bilibili.com/"){return}const t=await i.importAsync("simplify-home.vue");document.body.insertAdjacentHTML("afterbegin",`\n \n `);const m=new Vue({el:"simplify-home",components:{"simplify-home":t},data:{homeStyle:e.simplifyHomeStyle}});addSettingsListener("simplifyHomeStyle",e=>m.homeStyle=e,false)})()}})(); -onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/simplify-home.vue.min.js"] = (()=>{return(e,o)=>{const t=`
`;const m=o.import("minimal-home.vue");const n=o.import("simple-home.vue");return{export:Object.assign({template:t},{components:{"minimal-home":m,"simple-home":n},computed:{activeComponent(){return this.homeStyle==="清爽"?n:m}},props:{homeStyle:String}})}}})(); +onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/simplify-home.vue.min.js"] = (()=>{return(e,m)=>{const o=`
`;return{export:Object.assign({template:o},{components:{"minimal-home":()=>m.importAsync("minimal-home.vue"),"simple-home":()=>m.importAsync("simple-home.vue")},computed:{activeComponent(){return this.homeStyle==="清爽"?"simple-home":"minimal-home"}},props:{homeStyle:String}})}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/simplify-liveroom.min.css"] = `.simplify-fansMedal .fans-medal-item-ctnr,.simplify-giftMessage .chat-item.gift-item,.simplify-guard i.guard-icon,.simplify-guardPurchase .chat-item.guard-buy,.simplify-popup .chat-popups-section,.simplify-popup .link-popup-ctnr,.simplify-systemMessage .announcement-wrapper,.simplify-systemMessage .system-msg,.simplify-title .title-label,.simplify-userLevel .user-level-icon,.simplify-vip .vip-icon,.simplify-welcomeMessage .welcome-guard,.simplify-welcomeMessage .welcome-msg{display:none!important}.simplify-skin #gift-control-vm,.simplify-skin #head-info-vm,.simplify-skin #rank-list-ctnr-box{background-image:none!important}.simplify-guard .guard-danmaku::before{border-image:none!important;background-color:transparent!important}.simplify-guard .guard-danmaku{margin:0!important;padding:4px 5px!important}.simplify-guard .guard-danmaku::after{background-image:none!important}.simplify-liveroom-settings>ul>li{padding:8px 12px;display:flex;align-items:center}.simplify-liveroom-settings>ul>li:hover{background:rgba(0,0,0,.16)}.round-corner .simplify-liveroom-settings>ul>li{border-radius:var(--corner-radius)}`; onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/simplify-liveroom.min.js"] = (()=>{return(e,i)=>{const s={vip:"老爷图标",fansMedal:"粉丝勋章",title:"活动头衔",userLevel:"用户等级",guard:"舰长图标",systemMessage:"全区广播",welcomeMessage:"欢迎信息",giftMessage:"礼物弹幕",guardPurchase:"上舰提示",popup:"抽奖提示",skin:"房间皮肤"};return{widget:{condition:()=>document.URL.startsWith(`https://live.bilibili.com/`),content:`\n
\n \n 简化直播间\n \n
\n `,success:()=>{const i=document.querySelector("#simplify-liveroom");const t=document.querySelector(".gui-settings-mask");i.addEventListener("click",e=>{const i=document.querySelector(".simplify-liveroom-settings");if(i.contains(e.target)||e.target===i){return}i.classList.toggle("opened")});i.addEventListener("mouseenter",()=>t.classList.add("transparent"));i.addEventListener("mouseleave",()=>t.classList.remove("transparent"));let n=e.simplifyLiveroomSettings.skin;const a=["#head-info-vm","#gift-control-vm","#rank-list-vm","#rank-list-ctnr-box",".gift-panel.base-panel",".gift-panel.extend-panel",".seeds-wrap>div:first-child",".gift-section>div:last-child",".z-gift-package>div>div",".right-action"];const c="live-skin-coloration-area";a.forEach(e=>{SpinQuery.select(e,i=>{Observer.attributes(e,e=>{e.forEach(e=>{if(e.attributeName==="class"){if(n&&i.classList.contains(c)){i.classList.remove(c)}else if(!n&&!i.classList.contains(c)){i.classList.add(c)}}})})})});const o=(e,i)=>{document.body.classList[e?"add":"remove"](`simplify-${i}`);if(i==="skin"){n=e;a.forEach(i=>{SpinQuery.select(i,i=>i.classList[e?"remove":"add"]("live-skin-coloration-area"))})}};new Vue({el:".simplify-liveroom-settings",data:{items:Object.entries(s).map(([i,s])=>{const t=e.simplifyLiveroomSettings[i];o(t,i);return{key:i,name:s,checked:t}})},methods:{itemClick(i){i.checked=!i.checked;o(i.checked,i.key);e.simplifyLiveroomSettings=Object.assign(e.simplifyLiveroomSettings,{[i.key]:i.checked})}}})}}}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/skip-charge-list.min.css"] = `.bilibili-player .bilibili-player-area .bilibili-player-electric-panel{display:none!important}`; @@ -1959,25 +1959,9 @@ Resource.manifest = { simplifyHome: { path: 'simplify-home.min.js', displayNames: { - simplifyHome: '简化首页', - simplifyHomeComponent: '简化首页组件', - minimalHomeComponent: '简化首页-极简样式', - simpleHomeComponent: '简化首页-清爽样式', + simplifyHome: '简化首页' }, }, - simplifyHomeComponent: { - path: 'simplify-home.vue.min.js', - dependencies: [ - 'minimalHomeComponent', - 'simpleHomeComponent', - ], - }, - minimalHomeComponent: { - path: 'minimal-home.vue.min.js', - }, - simpleHomeComponent: { - path: 'simple-home.vue.min.js', - } } const resourceManifest = Resource.manifest @@ -2101,18 +2085,29 @@ class ResourceManager { this.applyStyleFromText(`html{${styles.join(';')}}`, 'bilibili-evolved-variables') } resolveComponentName (componentName) { - const keyword = '/' + componentName.substring(componentName.lastIndexOf('/') + 1) + '.min.js' + const filename = '/' + componentName.substring(componentName.lastIndexOf('/') + 1) + '.min.js' for (const [name, value] of Object.entries(Resource.all)) { - if (value.url.endsWith(keyword)) { + if (value.url.endsWith(filename)) { return name } } - return componentName + if (componentName.endsWith('Html') || componentName.endsWith('Style')) { + return componentName + } + return filename.replace('/', '') } resolveComponent (componentName) { - const resource = Resource.all[this.resolveComponentName(componentName)] + const name = this.resolveComponentName(componentName) + let resource = Resource.all[name] if (!resource) { - this.skippedImport.push(componentName) + resource = new Resource(name) + let key = name.substring(0, name.indexOf('.')).replace(/-\w/g, t => t.substr(1).toUpperCase()) + if (name.includes('.vue.')) { + key += 'Component' + } + resource.key = key + console.log(name, key, resource) + Resource.all[key] = resource } return resource } @@ -2126,6 +2121,7 @@ class ResourceManager { if (resource.type.name === 'html' || resource.type.name === 'style') { resource.download().then(() => resolve(this.import(componentName))) } else { + console.log('async load: ', resource.key) this.fetchByKey(resource.key).then(() => resolve(this.import(componentName))) } } else { @@ -2257,7 +2253,8 @@ class ResourceManager { this.attributes[key] = attribute } catch (error) { console.error(`Failed to apply feature "${key}": ${error}`) - let toastMessage = `加载组件${Resource.all[key].displayName}失败` + const displayName = Resource.all[key].displayName + let toastMessage = `加载组件${displayName || key}失败` if (settings.toastInternalError) { toastMessage += '\n' + error } diff --git a/builder/dotnet/TypeScriptBuilder.cs b/builder/dotnet/TypeScriptBuilder.cs index 156f6a413..cd45c5ec9 100644 --- a/builder/dotnet/TypeScriptBuilder.cs +++ b/builder/dotnet/TypeScriptBuilder.cs @@ -29,7 +29,7 @@ namespace BilibiliEvolved.Build cache.AddCache(file); WriteInfo($"TypeScript build: {file}"); }); - Console.Write(tsc.Run().Trim()); + tsc.Run(); Parallel.ForEach(changedFiles.Where(f => !f.EndsWith(".vue.ts")).Select(f => ".ts-output/" + f.Replace(".ts", ".js").Replace($"src{Path.DirectorySeparatorChar}", "")), file => { var text = RegexReplacer.Replace(File.ReadAllText(file), @"import\(\(\(\)\s*=>\s*(.*)\)\(\)\)", match => { return $"import({match.Groups[1].Value})"; diff --git a/builder/dotnet/publish/build.dll b/builder/dotnet/publish/build.dll index 2bf4352abe636b8fef2f6939a2685c3d671b472d..9b3dadf594482979fc38084e6247dd33279a2284 100644 GIT binary patch delta 2255 zcmY+GeN0nV7{;G_poeaPT!tb>6GcobTFZy6P(TEQS;PvMeq^jbB@`Ftc;ddC~SJx9#sf&-=XZ zxjnh<&Kqp!4R&a6Z1TX>bFKSFYk#(WR;3*_HO*-YbpngcH0CmwYfi1-Y|@ORuFH^z zU%WEdu(u5Fm} zM>%IjIp^n=Su{w5r!nayOnyQg=BM1CmTU&{~j*;(W_#;&{v%o`nHPUG}xZTX+s)3uKCY zT!I5Rh*tzYD!_6u(jc^2OhJYu^@Vs)Lxon12lYf&j0fAO&WiCMqtI%h>b$6tq}qE? zPh{13u}zZN9A5Mn8ge!{jTeijy^5KN{fg|T5*?U|Ba)iz7ZP*Afm1mvBg%yApVP4!b{~fO(H3Uq_?+meEx=~ud!iQJ z$t!R}k`aWi_3$|uT>^0gQLT0Jxo{KtV|w{K6cAO|ir9RV5)DC^Ex-n%gqQ$Zi1&$( zX<@bqCx{w^wisU$?PA@037#o3Fo}2brAVKl+OH6+sKRQZezE#xXe3(C!)!Tr5Pi)9 zYy~b6J>fn4E!-vQ6Dcc!nJRO#O~)#%Byx)du12$@-KmE4%&f*f5+92vZZ*!4XlZM3 zfwXq63wju#)!=W^ip8Kch$~eM4~T|qku6Dm+qEbp?Prlvi?f58AzG}%S0q-7n02^D zR3xl#Q?M4=x{sszn`!N(y3((CRRjC?JN}fCJW#6Fnj75t0oKI<64mx`P#+D3Rt>t#ANqB%m_gngtvjtR3(Xd|i>!@Ps^ z*)RJUyb+laRl`Q)NeW_<*d~qWiqHbMNm^ZO4-dd!VZ{W|ZtLOiqFIt!#AbXTNo8(E zh@9P8fNjQABA4hec?$~Xyqtz_gNHfIQFa9a?w^`BZ(8OD^IGy6$cv+n0FKy|1U-01p zcUrLcyk>u1HP&_1w6|}`p^GO6FN)}iZ3pMf4`n?Zo$=;xFFHl};BnjfJhnA0Me8!J awO6!e**k`w_}9kn7jz_@ex$W##r+Tb;jmu- delta 2242 zcmY+GZA?>F7{~wjK#vUrxlBQfF2-qE7hXhcc?YRNtRjl@1$>!^APPDwlKIJa#X2^e zM&K%o21eKEmVGd8t8)g7&PCbC6f)zCF=jKyFD^QDV_V{M+qvgFxb`M(^1HwP^E~I= zoZNQL6}IOJYkxQT?N?5OIu1 z@y%dEdnkdOO3>Dr7svUvlV<7o(ioo;h?%ige3|c!Z;#P*E4cO$?yZ*eE8a;!SFiy2sNdh)Z4fV|g* zm9cF|#T}w+Nu4|mskv5uK&y-i@N_(rq@MCjMCVz~#6ztOGvOsV7WE0wKy<#Wvu{Xj z-F`)<{fo-kL6 z1r{0b<1Q;=rC1s!=VO&5KjNZ;Y(5$#sik?bGc4)FZc3UM)=^lv7k7{j@mm`bF8+C&(#yp}jTM=7=MMN(l$d+O|QCyUd zy^g&^U0RSW!^cF8!Y#*HqJ30^)rd_g)inAd>gVQs)5^3EXj|p;+Sm1P?+=KCb><~!`z38GOLXrJ+@)K9s4DzO*ElP zlIq!n03`=CA8W#QM5$sz+76T~da)Ybj0#Druo+d7{OHqe3%5CR)H7z8{%E3BUgqze zd+KV8_m?>%F`>^6KNyo(H#z$rwDJljx*6g#BK|gvn4fn~ur>Ds&F0naY5IJJz4JA6PxPsaYPwdKbg(9{`^%2rZ$$Ozb=&OinWPPw{XJ!& Uu^&9OvB&wLgyWC2j*Kz?0iT1jtN;K2 diff --git a/min/bundle.json b/min/bundle.json index 7c4104d34..36c5d0da9 100644 --- a/min/bundle.json +++ b/min/bundle.json @@ -116,7 +116,7 @@ "show-dead-video-title.min.js": "945C4F0E5FB2C62DB21C42FCE01829BAE7B13F4FBD90731CB85C38B82801B1A8", "simple-home.vue.min.js": "F64C88FB33612D715A4ED98A398E6D0E003DCDBF7A2CEDBA9FEC56A63E761A3C", "simplify-home.min.js": "E6920F81495E9566A35CAD0E322C63A59A26125B417E92FDB5F9FA93FEF8584A", - "simplify-home.vue.min.js": "6D5D208CB45F98C003A996BC945413DEB4C84C9B9FD2B9A75289E1C8A1F2BA32", + "simplify-home.vue.min.js": "3880EB46A18080E6DADA60E30C82BE267902D63C44B3FA7C6914789967DF8B94", "simplify-liveroom.min.css": "0F24C08B156121AF7B321448572996B29519881CC08D2EAA340BE2510E90B458", "simplify-liveroom.min.js": "68750BB42318229348198961E88AC92E4F8D4F2AF9A8CAEFF4C6F228FC037AE6", "skip-charge-list.min.css": "D3C988CE131CEBFAC8A60360529C83EC4AE1B9EA122F9A6924F19963E25A4FE9", diff --git a/min/bundle.zip b/min/bundle.zip index 3bee87bb63cdc916ba655e425a66b5e6951882d1..60225178e5978bf4e4a784a96bdd4105b5269d79 100644 GIT binary patch delta 570 zcmaE}UiSTZ*$s;yFoQKf??cQ-uB{LaKx|9a6H{%LA0i|#3MOt0Ly ze^a1J(w3{sUZ3CQawgF?c9BT$af?V-aptcU42g5*96t2_%=&+c$jcnWW z`h7^nm5uXe^7`3&Xr6rj`}OtP?3EExddAPs)E4Y}Q{;S^h94&-YgV@6v?WflUvAZ$J-c u7*O-g=?BBu?HIpI3um`yte@@>4&=yAuMcN;V&tBFD4bn|EyI`{=wtwtP2?s3 delta 598 zcmaFAUiQs;*$s;yF&*=1Uizqg=_5uUW&&bnAZFRV^bu?G7va5&mHnr@Vfg-nfq@~9 zk%2*ifnmB$5W8f3>;%WW!wLef>ytJzb?&N8y5q_}!BtOSy3gd5JP`)lq!g!3ty+>- zHTRp;(N5`|u?h!2Jo|5dc;|&&E{Eg-nI-e%kL~sleOX(4V5L#5_~O2dcDecI%hmH2 z=JsrFE`P8hNTM{IL%rh9+O22*zTJPP+hh0r7}vGmN&`PNT5NuCp)B*S>&AI*2}zB2 zxOV+GG;3#??*}X9tlwXl+Fl6>_V=kbHI=h;ZPF>$QC#Fze`m&~qP1tHoGx1C-qh^% z|JcK%oBpoqJzwu^SX|5>mHqAO$8UfCos^ri$?~+~kA)R?IkqltcsFD7iKhh{e==^j zzrmK51Pr9@>#f*x#CcIdWV%KWdpM)b^oAgIHzt`|(;I`>C8j?JV%K5(I-NI|-IXcx z{&c=zcJb-i!R$I5xewSFigPjxrZ+l+gg&qda07!C3ZkZ83}&}tTsoa6gx!&mb-G^& zy91-s^!^ZbOU5Y28g6izT)4g5T zd8Vs`v&-?+XtFbuWu}(vCg+z;pJ)lxuCB)}g5+YU=}qB46F8{return(e,o)=>{const t=`
`;const m=o.import("minimal-home.vue");const n=o.import("simple-home.vue");return{export:Object.assign({template:t},{components:{"minimal-home":m,"simple-home":n},computed:{activeComponent(){return this.homeStyle==="清爽"?n:m}},props:{homeStyle:String}})}}})(); \ No newline at end of file +(()=>{return(e,m)=>{const o=`
`;return{export:Object.assign({template:o},{components:{"minimal-home":()=>m.importAsync("minimal-home.vue"),"simple-home":()=>m.importAsync("simple-home.vue")},computed:{activeComponent(){return this.homeStyle==="清爽"?"simple-home":"minimal-home"}},props:{homeStyle:String}})}}})(); \ No newline at end of file diff --git a/src/client/resource-manager.js b/src/client/resource-manager.js index b357a3a06..e99d5be26 100644 --- a/src/client/resource-manager.js +++ b/src/client/resource-manager.js @@ -40,18 +40,29 @@ export class ResourceManager { this.applyStyleFromText(`html{${styles.join(';')}}`, 'bilibili-evolved-variables') } resolveComponentName (componentName) { - const keyword = '/' + componentName.substring(componentName.lastIndexOf('/') + 1) + '.min.js' + const filename = '/' + componentName.substring(componentName.lastIndexOf('/') + 1) + '.min.js' for (const [name, value] of Object.entries(Resource.all)) { - if (value.url.endsWith(keyword)) { + if (value.url.endsWith(filename)) { return name } } - return componentName + if (componentName.endsWith('Html') || componentName.endsWith('Style')) { + return componentName + } + return filename.replace('/', '') } resolveComponent (componentName) { - const resource = Resource.all[this.resolveComponentName(componentName)] + const name = this.resolveComponentName(componentName) + let resource = Resource.all[name] if (!resource) { - this.skippedImport.push(componentName) + resource = new Resource(name) + let key = name.substring(0, name.indexOf('.')).replace(/-\w/g, t => t.substr(1).toUpperCase()) + if (name.includes('.vue.')) { + key += 'Component' + } + resource.key = key + console.log(name, key, resource) + Resource.all[key] = resource } return resource } @@ -65,6 +76,7 @@ export class ResourceManager { if (resource.type.name === 'html' || resource.type.name === 'style') { resource.download().then(() => resolve(this.import(componentName))) } else { + console.log('async load: ', resource.key) this.fetchByKey(resource.key).then(() => resolve(this.import(componentName))) } } else { @@ -196,7 +208,8 @@ export class ResourceManager { this.attributes[key] = attribute } catch (error) { console.error(`Failed to apply feature "${key}": ${error}`) - let toastMessage = `加载组件${Resource.all[key].displayName}失败` + const displayName = Resource.all[key].displayName + let toastMessage = `加载组件${displayName || key}失败` if (settings.toastInternalError) { toastMessage += '\n' + error } diff --git a/src/client/resource-manifest.js b/src/client/resource-manifest.js index 936dc8cfc..007e4ef80 100644 --- a/src/client/resource-manifest.js +++ b/src/client/resource-manifest.js @@ -709,24 +709,8 @@ Resource.manifest = { simplifyHome: { path: 'simplify-home.min.js', displayNames: { - simplifyHome: '简化首页', - simplifyHomeComponent: '简化首页组件', - minimalHomeComponent: '简化首页-极简样式', - simpleHomeComponent: '简化首页-清爽样式', + simplifyHome: '简化首页' }, }, - simplifyHomeComponent: { - path: 'simplify-home.vue.min.js', - dependencies: [ - 'minimalHomeComponent', - 'simpleHomeComponent', - ], - }, - minimalHomeComponent: { - path: 'minimal-home.vue.min.js', - }, - simpleHomeComponent: { - path: 'simple-home.vue.min.js', - } } export const resourceManifest = Resource.manifest diff --git a/src/style/simplify-home/simplify-home.vue b/src/style/simplify-home/simplify-home.vue index 7ca8f1069..cf8e66557 100644 --- a/src/style/simplify-home/simplify-home.vue +++ b/src/style/simplify-home/simplify-home.vue @@ -4,16 +4,14 @@