From f28a67b44999f3466fc5ab2071fc62f99808af8a Mon Sep 17 00:00:00 2001 From: the1812 Date: Sat, 7 Sep 2019 19:58:26 +0800 Subject: [PATCH] Lazy load toast and screenshot --- bilibili-evolved.offline.user.js | 12 +- bilibili-evolved.preview-offline.user.js | 12 +- bilibili-evolved.preview.user.js | 10 +- bilibili-evolved.user.js | 10 +- min/about.min.js | 2 +- min/bundle.json | 10 +- min/bundle.zip | Bin 485551 -> 485586 bytes min/gui-settings.min.js | 2 +- min/screenshot.min.js | 2 +- min/settings-side-bar.min.js | 2 +- min/toast.min.js | 2 +- src/utils/about/about.js | 212 ++++++++++---------- src/utils/gui-settings/gui-settings.js | 1 + src/utils/gui-settings/settings-side-bar.js | 2 +- src/utils/toast/toast.ts | 66 +++--- src/video/screenshot/screenshot.ts | 186 ++++++++--------- 16 files changed, 270 insertions(+), 261 deletions(-) diff --git a/bilibili-evolved.offline.user.js b/bilibili-evolved.offline.user.js index 2ba230e4a..7abd84dba 100644 --- a/bilibili-evolved.offline.user.js +++ b/bilibili-evolved.offline.user.js @@ -1,6 +1,6 @@ // ==UserScript== // @name Bilibili Evolved (Offline) -// @version 417.75 +// @version 418.15 // @description Bilibili Evolved 的离线版, 所有功能都已内置于脚本中. // @author Grant Howard, Coulomb-G // @copyright 2019, Grant Howard (https://github.com/the1812) & Coulomb-G (https://github.com/Coulomb-G) @@ -963,7 +963,7 @@ class ColorProcessor { const offlineData = {}; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/about.min.css"] = `.bilibili-evolved-about{height:100%;width:450px;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:16px 36px 0;margin-bottom:36px;display:flex;flex-direction:column;overflow:auto}.about-content .name{font-size:24pt;display:none;align-items:center}.about-content .name svg{width:100%}body.dark .about-content .name.dark,body:not(.dark) .about-content .name.light{display:flex}.about-content .version{font-size:10pt;font-weight:700;opacity:.6;margin-top:6px;margin-bottom:6px;align-self:center}.about-content .love{font-size:10pt;margin-bottom:24px;align-self:center}.about-content .love a{color:inherit!important}.about-content section{font-size:10pt;margin-top:16px}.about-content section .title{display:flex;justify-content:center;text-transform:uppercase;font-weight:700;font-size:13pt;letter-spacing:3px;margin:8px 0 16px}.about-content section .supporter,.about-content section a{color:var(--theme-color)!important;margin-right:8px;display:inline-flex}.about-content section .supporter{user-select:none}.about-content section .supporter:not(:last-child)::after,.about-content section a:not(:last-child)::after{content:","}@keyframes spinner{to{transform:translate(-50%,-50%) rotate(360deg)}}.about-content section.participants .fetching{margin-right:8px;position:relative;display:inline-flex}.about-content section.participants .fetching::before{content:"Loading..."}`; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/about.min.html"] = `
关于
`; -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 s=GM_info.script.name.match(/Bilibili Evolved \((.*)\)/);const a=s?s[1]:"Stable";new Vue({el:".bilibili-evolved-about",data:{version:t.currentVersion,clientType:a,logoImage:null,logoImageDark:null,branch:null,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),fetching:true,participants:[],websites:[{name:"GitHub",link:"https://github.com/the1812/Bilibili-Evolved/"},{name:"Greasy Fork",link:"https://greasyfork.org/zh-CN/scripts/373563-bilibili-evolved"}],components:[{name:"Vue.js",link:"https://cn.vuejs.org/index.html"},{name:"JSZip",link:"https://stuk.github.io/jszip/"},{name:"jQuery",link:"http://jquery.com/"},{name:"debounce",link:"https://github.com/component/debounce/"},{name:"Slip.js",link:"https://github.com/kornelski/slip"},{name:"MDI",link:"https://materialdesignicons.com"}]},mounted(){document.querySelector(".bilibili-evolved-about").addEventListener("be:about-load",()=>{this.init()},{once:true})},methods:{async getLogos(){this.logoImage=await Ajax.getText(`https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/images/bilibili-evolved-wide.svg`);this.logoImageDark=await Ajax.getText(`https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/images/bilibili-evolved-wide-dark.svg`)},async init(){this.branch=/Preview|Local/.test(a)?"preview":"master";this.getLogos();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}`).catch(()=>{e=[{name:"电波无法到达(´・_・`)",link:null}]});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);this.fetching=false}}})})()}})(); +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);document.querySelector(".bilibili-evolved-about").addEventListener("be:about-load",()=>{const e=(t,e)=>t.charCodeAt(0)-e.charCodeAt(0);const i=(t,i)=>e(t.name,i.name);const o=GM_info.script.name.match(/Bilibili Evolved \((.*)\)/);const n=o?o[1]:"Stable";new Vue({el:".bilibili-evolved-about",data:{version:t.currentVersion,clientType:n,logoImage:null,logoImageDark:null,branch:null,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(i),fetching:true,participants:[],websites:[{name:"GitHub",link:"https://github.com/the1812/Bilibili-Evolved/"},{name:"Greasy Fork",link:"https://greasyfork.org/zh-CN/scripts/373563-bilibili-evolved"}],components:[{name:"Vue.js",link:"https://cn.vuejs.org/index.html"},{name:"JSZip",link:"https://stuk.github.io/jszip/"},{name:"jQuery",link:"http://jquery.com/"},{name:"debounce",link:"https://github.com/component/debounce/"},{name:"Slip.js",link:"https://github.com/kornelski/slip"},{name:"MDI",link:"https://materialdesignicons.com"}]},mounted(){this.init()},methods:{async getLogos(){this.logoImage=await Ajax.getText(`https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/images/bilibili-evolved-wide.svg`);this.logoImageDark=await Ajax.getText(`https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/images/bilibili-evolved-wide-dark.svg`)},async init(){this.branch=/Preview|Local/.test(n)?"preview":"master";this.getLogos();const t=new Set;let e=[];let o=1;do{e=await Ajax.getJson(`https://api.github.com/repos/the1812/Bilibili-Evolved/issues?state=all&direction=asc&per_page=100&page=${o}`).catch(()=>{e=[{name:"电波无法到达(´・_・`)",link:null}]});o++;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(i);this.fetching=false}}})},{once:true})})()}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/aria2-rpc.min.js"] = (()=>{return(t,e)=>{function o(){const e=t.aria2RpcOption;const o=e.host.match(/^http[s]?:\/\//)?e.host:"http://"+e.host;const r="aria2.addUri";return{option:e,host:o,methodName:r}}async function r(t,e=false){try{let o=await t();if(typeof o==="string"){o=JSON.parse(o)}if(o.error!==undefined){if(o.error.code===1){logError(`请求遭到拒绝, 请检查您的密钥相关设置.`)}else{logError(`请求发生错误, code = ${o.error.code}, message = ${o.error.message}`)}return false}if(!e){Toast.success(`成功发送了请求, GID = ${o.result}`,"aria2 RPC",5e3)}return true}catch(t){logError(`无法连接到RPC主机.`);return false}}async function s(t,e=false){const{option:s,host:n,methodName:a}=o();return await r(async()=>{const e=window.btoa(unescape(encodeURIComponent(JSON.stringify(t.params))));const o=`${n}:${s.port}/jsonrpc?method=${a}&id=${t.id}¶ms=${e}`;console.log(`RPC request:`,o);if(o.startsWith("http:")){return await new Promise((t,e)=>{GM_xmlhttpRequest({method:"GET",url:o,responseType:"json",onload:e=>t(e.response),onerror:t=>e(t)})})}else{return await Ajax.getJson(o)}},e)}async function n(t,e=false){const{option:s,host:n,methodName:a}=o();return await r(async()=>{const e=`${n}:${s.port}/jsonrpc`;const o={method:a,id:t.id,params:t.params};if(e.startsWith("http:")){return await new Promise((t,r)=>{GM_xmlhttpRequest({method:"POST",url:e,responseType:"json",data:JSON.stringify(o),onload:e=>t(e.response),onerror:t=>r(t)})})}else{return await Ajax.postJson(e,o)}},e)}async function a(e,o=false){const r=t.aria2RpcOption;for(const t of e){let e;if(r.method==="get"){e=await s(t,o)}else{e=await n(t,o)}if(o===true&&e===false){logError(`${decodeURIComponent(t.id)} 导出失败`)}}}return{export:{sendRpc:a}}}})(); 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-draw.min.js"] = (()=>{return(t,n)=>{(async()=>{if(!/^https:\/\/live\.bilibili\.com\/[\d]+/.test(document.URL)){return}const t=await SpinQuery.condition(()=>dq(".chat-popups-section"),t=>t.querySelector("chat-draw-area")===null);if(!t){console.warn("[自动领奖] 未能找到弹窗容器");return}Observer.childListSubtree(t,()=>{let t;console.log("draw button = ",dq(".chat-popups-section .draw>span:nth-child(3)"));t=dq(".chat-popups-section .draw>span:nth-child(3)");if(t===null){const t=dq(".chat-popups-section .function-bar>span:nth-child(3)");if(t!==null){const n=Observer.attributes(t,()=>{if(t.style.display!=="none"){n.forEach(t=>t.stop());t.click()}})}}if(t!==null){t.click()}})})()}})(); @@ -1020,7 +1020,7 @@ offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/m offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/full-tweets-title.min.js"] = (()=>{return(t,n)=>{const i=`\n.dynamic-m .info {\n height: auto !important;\n}\n.dynamic-m .info a {\n white-space: normal !important;\n}\n.custom-navbar .video-activity-card .title {\n display: block !important;\n max-height: unset !important;\n}\n.custom-navbar .video-activity-card .cover {\n height: unset !important;\n}\n`;return n.toggleStyle(i,"full-tweets-title")}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/gui-settings.min.css"] = `.gui-settings-icon-panel{height:auto;display:flex;flex-direction:column;justify-content:center;align-items:center;position:fixed;top:calc(50% + var(--side-bar-offset));left:0;width:32px;z-index:99999;transform:translateY(-50%);user-select:none}.gui-settings-icon-panel i{transition:.2s;opacity:.6;transform:rotate(360deg);font-size:12px}.gui-settings-widgets:hover i,.gui-settings:hover i{opacity:.75;transform:rotate(0)}.gui-settings,.gui-settings-widgets{display:flex;justify-content:center;align-items:center;cursor:pointer;-webkit-tap-highlight-color:transparent;margin:16px 0;width:24px;height:24px;transition:.2s;opacity:1;transform-origin:center!important;transform:translateX(-16px);background-color:#dddc;border-radius:0 50% 50% 0;padding:6px;box-sizing:content-box}body.dark .gui-settings,body.dark .gui-settings-widgets{background-color:rgba(0,0,0,.3)}.gui-settings-widgets:hover,.gui-settings:hover{opacity:1;transform:translateX(0)}.gui-settings-footer,.gui-settings-header{flex-grow:0;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;z-index:10;padding:32px}.gui-settings-footer{height:80px;justify-content:center;position:relative}.gui-settings-content{flex-grow:1;overflow:auto;position:relative;overscroll-behavior:contain}.gui-settings-content ul{padding:0;margin:0}.gui-settings-content ul li{font-size:16px;margin-bottom:18px;display:flex;height:24px;transition:.2s;box-sizing:content-box}.gui-settings-content ul li.disabled,.gui-settings-content ul li:not(.category).folded{height:0;margin:0;overflow:hidden}.gui-settings-content ul li.indent-0{margin-left:16px}.gui-settings-content ul li.indent-1{margin-left:80px}.gui-settings-content ul li.indent-2{margin-left:144px}.gui-settings-content ul li.indent-center{align-items:center;justify-content:center}.gui-settings-content ul li.category{padding:16px 0;margin-bottom:18px;border-top:1px dashed #8884;border-bottom:1px dashed #8884;background:#fff;position:-webkit-sticky;position:sticky;top:0;z-index:101;cursor:pointer;transition:.2s ease-out;-webkit-tap-highlight-color:transparent}.gui-settings-content ul li.category.folded{margin-bottom:-1px}.gui-settings-content ul li.category *{opacity:.8}.gui-settings-title{font-size:16pt;flex:0 0 auto}.gui-settings-box .gui-settings-title{margin-right:64px}.gui-settings-search[type=text]{flex:1 0 auto;height:auto;border:none;padding:6px;font-size:12pt;width:40%;border-bottom:1px solid #8884;transition:.2s;color:inherit;background:0 0;box-sizing:border-box;outline:0!important}.gui-settings-close{width:24px;height:24px;padding:16px}.gui-settings-header .gui-settings-close{cursor:pointer;-webkit-tap-highlight-color:transparent}.gui-settings-textbox-container{display:flex;justify-content:center;align-items:center;-webkit-tap-highlight-color:transparent}.gui-settings-dropdown-span,.gui-settings-textbox-container span{margin:0 16px;transition:.2s}.gui-settings-textbox-container input{border:none;height:100%;max-width:90px;padding:4px 8px;background:#8884;transition:.2s;font-size:16px}.gui-settings-textbox-container input:disabled,.gui-settings-textbox-container.disabled div,.gui-settings-textbox-container.disabled span{opacity:.5}.gui-settings-checkbox-container{cursor:pointer;display:flex;width:100%;justify-content:start;align-items:center;padding:0 16px;-webkit-tap-highlight-color:transparent}.gui-settings-checkbox-container input{visibility:collapse;transition:.2s;width:0;position:absolute}.gui-settings-checkbox-container .gui-settings-ok{width:24px;height:24px;margin-right:16px;transition:.2s}.gui-settings-checkbox-container input~.gui-settings-ok{background-color:#8884}.gui-settings-checkbox-container input:checked~.gui-settings-ok{background-color:var(--theme-color)}.gui-settings-checkbox-container input~.gui-settings-ok>i{opacity:0;transform-origin:center;transform:scale(.9)}.gui-settings-checkbox-container input:checked~.gui-settings-ok>i{opacity:1}.gui-settings-checkbox-container input:disabled~.gui-settings-ok,.gui-settings-checkbox-container input:disabled~span{opacity:.5}button.gui-settings-button{padding:6px 20px;margin:0 4px;max-height:34px;border:none;background:#8884;font-size:16px;cursor:pointer;transition:.2s ease-out;font-family:inherit;-webkit-tap-highlight-color:transparent}button.gui-settings-button:hover{opacity:.9}button.gui-settings-button:active{opacity:.8}button.gui-settings-button:focus{outline:0}.custom-color-preview{width:28px;height:28px;border-radius:50%;background:var(--theme-color);margin-right:16px;position:relative;cursor:pointer;box-sizing:border-box;box-shadow:0 2px 4px 0 var(--theme-color-40)}.predefined-colors{transition:.2s;display:flex;opacity:0;background:#fff;width:168px;height:168px;position:absolute;box-shadow:rgba(0,0,0,.2) 0 4px 8px 0;top:32px;left:calc(-84px + 50%);transform:scale(0);transform-origin:top;z-index:9}.predefined-colors.opened{opacity:1;transform:scale(1)}.predefined-colors-grid{display:grid;grid-template-columns:auto auto auto auto;margin:0;flex-grow:1}.predefined-colors-grid-block{width:100%;height:100%;justify-self:center;align-self:center;cursor:pointer;transform-origin:center;transition:.1s ease-out}.predefined-colors-grid-block:hover{transform:scale(1.1);box-shadow:0 0 8px 1px #0004}input[key]:focus{outline:0}input[type=text][key]{height:auto;border:none}.gui-settings-label{margin:0 16px;font-size:16px}.hidden{display:none!important}@supports (backdrop-filter:blur(24px)) or (-webkit-backdrop-filter:blur(24px)){.gui-settings-box.blur li.category{-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);background:0 0}.gui-settings-box.blur,.gui-settings-box.blur .gui-settings-content,.gui-settings-box.blur .gui-settings-footer,.gui-settings-box.blur .gui-settings-header{background:#fff8}.gui-settings-box.blur .gui-settings-content,.gui-settings-box.blur .gui-settings-footer,.gui-settings-box.blur .gui-settings-header{-webkit-backdrop-filter:blur(64px);backdrop-filter:blur(64px)}}li.category i.icon-arrow{transition:.2s ease-out}li.category.folded i.icon-arrow{transform:rotate(180deg)}.gui-settings-dropdown-container{display:flex;align-items:center}.gui-settings-dropdown{position:relative;cursor:pointer;-webkit-tap-highlight-color:transparent;background-color:#8884;display:inline-flex;align-items:center;height:32px}.gui-settings-dropdown>i{transition:.2s ease-out;transform-origin:center;transform:rotate(180deg)}.gui-settings-dropdown>ul{position:absolute;top:calc(100%);width:100%;cursor:pointer;background:#fff;transform-origin:top;transform:scaleY(0);transition:.2s cubic-bezier(.6,-.28,.74,.05);display:flex;flex-direction:column;align-items:center;box-shadow:rgba(0,0,0,.2) 0 4px 8px 0;z-index:100}.gui-settings-dropdown ul li{margin:0;padding:8px 0;height:auto;width:100%;justify-content:center}.gui-settings-dropdown ul li:hover{background:rgba(0,0,0,.16)}.gui-settings-dropdown.opened>ul{transform:scaleY(1);transition-timing-function:cubic-bezier(.18,.89,.32,1.28)}.gui-settings-dropdown.opened>i{transform:rotate(0)}.gui-settings-dropdown input{cursor:pointer;border:none;height:100%;max-width:80px;padding:4px 8px;transition:.2s;font-size:16px;background-color:transparent}.gui-settings-dropdown input[key=defaultPlayerMode]{max-width:120px}.gui-settings-dropdown input[key=defaultBangumiLayout],.gui-settings-dropdown input[key=defaultPlayerLayout],.gui-settings-dropdown input[key=defaultVideoSpeed]{max-width:50px}.gui-settings-box input[key=filenameFormat]{max-width:500px}.gui-settings-mask{height:calc(100% + 5px);width:calc(100% + 5px);opacity:0;background:#000a;position:fixed;top:0;left:0;z-index:99999;pointer-events:none;transition:.3s cubic-bezier(0,.86,.58,1);overscroll-behavior:contain}.gui-settings-mask.opened{opacity:1;pointer-events:initial}.gui-settings-mask.opened.transparent{opacity:0;transition:.3s cubic-bezier(0,.86,.58,1) .3s}.gui-settings-box,.gui-settings-widgets-box{height:100%;width:420px;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:none;flex-direction:column;box-shadow:4px 0 16px 0 #0000}.gui-settings-box.loaded,.gui-settings-widgets-box.loaded{display:flex}.gui-settings-widgets-box{min-width:200px;width:auto}.gui-settings-box.opened,.gui-settings-widgets-box.opened{transform:translateX(0);box-shadow:4px 0 16px 0 #0005}.gui-settings-widgets-box>.title{margin:32px;font-size:16pt}.gui-settings-widgets-box>.widgets-container{padding:32px;display:flex;flex-direction:column;align-items:start;justify-content:start;position:relative;overscroll-behavior:contain;overflow:auto;height:100%}.gui-settings-widgets-box>.widgets-container .empty-tip{font-size:10pt;display:none}.gui-settings-widgets-box>.widgets-container .empty-tip.show{display:block}.gui-settings-widgets-box>.gui-settings-header{justify-content:start}.gui-settings-flat-button,.gui-settings-flat-button a,.gui-settings-flat-button a:hover{display:flex;align-items:center;justify-content:center;color:inherit}.gui-settings-flat-button{width:auto;padding:8px 16px;background:#8882;border:none;color:#000;cursor:pointer;transition:.2s ease-out;font-size:10pt;flex:0 0 auto;margin:4px;border-radius:20px;box-shadow:#0004 0 2px 4px;height:40px;box-sizing:border-box;-webkit-tap-highlight-color:transparent!important}.gui-settings-flat-button:disabled{opacity:.5;cursor:not-allowed}.gui-settings-flat-button:hover:not(:disabled){background:#8884}.gui-settings-flat-button:active:not(:disabled){border-bottom-color:var(--theme-color)}.gui-settings-flat-button:focus{outline:0}.gui-settings-flat-button i{margin-right:8px;line-height:24px;height:24px}.gui-settings-checkbox{width:28px;margin-right:24px;height:12px;background:#8884;border-radius:16px;position:relative}.gui-settings-checkbox::after{content:"";width:20px;height:20px;background:#c6c6c6;position:absolute;border-radius:50%;top:-4px;left:-4px;box-shadow:0 2px 4px 0 #0003;transition:.2s ease-out}.gui-settings-checkbox-container input:checked~.gui-settings-checkbox{background:var(--theme-color-80)}.gui-settings-checkbox-container input:checked~.gui-settings-checkbox::after{background:var(--theme-color)!important;box-shadow:0 2px 4px 0 var(--theme-color-40);left:calc(100% - 16px)}.gui-settings-checkbox-container input:disabled~.gui-settings-checkbox{opacity:.5}.gui-settings-header>i{margin-right:8px}.player-full-win .app-content,.player-full-win .live-room-app .app-content,.player-mode-webfullscreen .player-module{z-index:100000!important}.gui-settings-flat-button .popup{position:absolute;top:calc(100% + 2px);transition:.2s cubic-bezier(.6,-.28,.74,.05);transform-origin:top;transform:scaleY(0) translateX(-50%);left:50%;background:#fff;box-shadow:rgba(0,0,0,.2) 0 4px 8px 0;z-index:200;display:flex;flex-direction:column;align-items:center;width:max-content}.gui-settings-flat-button .popup *{transition:.2s}.gui-settings-flat-button .popup.opened{transform:scaleY(1) translateX(-50%);transition-timing-function:cubic-bezier(.18,.89,.32,1.28)}.gui-settings-flat-button .popup ul{list-style:none;margin:0;padding:0}.gui-settings-box kbd{padding:0 4px;border-radius:4px;border:1px solid #ccc;color:#ccc;border-bottom-width:3px;margin:0 4px}body.round-corner{--corner-radius:4px;--large-corner-radius:8px}.round-corner .gui-settings-box li i.downloading,.round-corner .gui-settings-dropdown,.round-corner .gui-settings-dropdown ul li,.round-corner .gui-settings-dropdown>ul,.round-corner .gui-settings-flat-button .popup,.round-corner .gui-settings-textbox-container input{border-radius:var(--corner-radius)}.gui-settings-box li i.downloading{margin-left:8px;font-style:normal;display:flex;align-items:center;font-size:14px;background:var(--theme-color);color:var(--foreground-color);padding:2px 8px}`; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/gui-settings.min.html"] = `
附加功能
空空如也哦 = ̄ω ̄=
设置
  • 视频
  • 样式
  • 工具
  • 触摸
  • 其他
`; -offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/gui-settings.min.js"] = (()=>{return(e,t)=>{const{ThemeColors:n}=t.import("theme-colors");const{SettingsSearch:i}=t.import("settings-search");const{Validator:s}=t.import("text-validate");let o=[];let c=[];let r=[];function l(e){let t=e.nextElementSibling;const n=[];while(t!==null&&!t.classList.contains("category")){n.push(t);t=t.nextElementSibling}return n}function a(){r.forEach(t=>t.value=e[t.getAttribute("key")]);c.forEach(t=>t.checked=e[t.getAttribute("key")])}function d(){document.querySelector(".gui-settings-mask").addEventListener("click",()=>{document.querySelectorAll(".gui-settings-widgets-box,.gui-settings-box,.gui-settings-mask,.bilibili-evolved-about").forEach(e=>e.classList.remove("opened"))});r.forEach(t=>{t.setAttribute("placeholder",e[t.getAttribute("key")])});document.querySelectorAll(".gui-settings-content ul li.category").forEach(e=>{e.addEventListener("click",e=>{const t=document.querySelector(".gui-settings-search");if(t.value!==""){t.value="";raiseEvent(t,"input")}e.currentTarget.classList.toggle("folded");l(e.currentTarget).forEach(e=>e.classList.toggle("folded"))})});document.querySelectorAll(".gui-settings-dropdown>input").forEach(e=>{e.addEventListener("click",e=>{e.currentTarget.parentElement.classList.toggle("opened")})})}function u(){c.forEach(t=>{t.addEventListener("change",()=>{const n=t.getAttribute("key");const i=t.checked;e[n]=i})});r.forEach(t=>{t.addEventListener("change",()=>{const n=t.getAttribute("key");const i=s.getValidator(n).validate(t.value);e[n]=i;t.value=i})})}function g(){const e=o.map(e=>[e.getAttribute("dependencies").split(" ").map(e=>o.find(t=>t.getAttribute("key")===e)),e]);const t=e=>e.nodeName.toUpperCase()==="LI"?e:t(e.parentElement);e.forEach(([e,n])=>{if(e[0]===undefined){return}const i=()=>{if(e.every(e=>e.checked)){t(n).classList.remove("disabled")}else{t(n).classList.add("disabled")}};e.forEach(e=>e.addEventListener("change",i));i()})}function f(){if(typeof offlineData!=="undefined"){}}function p(){if(!CSS.supports("backdrop-filter","blur(24px)")&&!CSS.supports("-webkit-backdrop-filter","blur(24px)")){o.find(e=>e.getAttribute("key")==="blurVideoControl").disabled=true;e.blurVideoControl=false}if(window.devicePixelRatio===1){o.find(e=>e.getAttribute("key")==="harunaScale").disabled=true;o.find(e=>e.getAttribute("key")==="imageResolution").disabled=true;e.harunaScale=false;e.imageResolution=false}}function b(){for(const[e,t]of Object.entries(Resource.displayNames)){const n=o.find(t=>t.getAttribute("key")===e);if(!n){continue}switch(n.type){case"checkbox":n.nextElementSibling.nextElementSibling.innerHTML=t;break;case"text":const e=n.parentElement;if(e.classList.contains("gui-settings-textbox-container")){n.previousElementSibling.innerHTML=t}else if(e.classList.contains("gui-settings-dropdown")){e.previousElementSibling.innerHTML=t}break;default:break}}}(async()=>{t.applyStyle("guiSettingsStyle");t.applyImportantStyle("iconsStyle");document.body.classList.add("round-corner");const e=document.body&&unsafeWindow.parent.window!==unsafeWindow;if(e){document.querySelector(".gui-settings-icon-panel").style.display="none"}const s=t.data.guiSettingsHtml.text;document.body.insertAdjacentHTML("beforeend",s);const{style:l}=await t.importAsync("mdi");if(!l){document.body.insertAdjacentHTML("afterbegin",``)}t.applyDropdownOptions();const m=document.querySelector(".widgets-container");const y=m.querySelector(".empty-tip");Observer.childList(m,()=>{if(m.childElementCount<=1){y.classList.add("show")}else{y.classList.remove("show")}});(new n).setupDom();const h=document.querySelectorAll(".gui-settings-widgets-box,.gui-settings-box");const E=document.querySelector(".gui-settings-icon-panel");E.addEventListener("mouseover",()=>{raiseEvent(E,"be:load");h.forEach(e=>e.classList.add("loaded"));o=[...document.querySelectorAll("input[key]")];c=o.filter(e=>e.type==="checkbox");r=o.filter(e=>e.type==="text"&&!e.parentElement.classList.contains("gui-settings-dropdown"));d();f();a();g();u();p();b();new i},{once:true})})()}})(); +offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/gui-settings.min.js"] = (()=>{return(e,t)=>{const{ThemeColors:n}=t.import("theme-colors");const{SettingsSearch:i}=t.import("settings-search");const{Validator:s}=t.import("text-validate");let o=[];let r=[];let c=[];function l(e){let t=e.nextElementSibling;const n=[];while(t!==null&&!t.classList.contains("category")){n.push(t);t=t.nextElementSibling}return n}function a(){c.forEach(t=>t.value=e[t.getAttribute("key")]);r.forEach(t=>t.checked=e[t.getAttribute("key")])}function d(){document.querySelector(".gui-settings-mask").addEventListener("click",()=>{document.querySelectorAll(".gui-settings-widgets-box,.gui-settings-box,.gui-settings-mask,.bilibili-evolved-about").forEach(e=>e.classList.remove("opened"))});c.forEach(t=>{t.setAttribute("placeholder",e[t.getAttribute("key")])});document.querySelectorAll(".gui-settings-content ul li.category").forEach(e=>{e.addEventListener("click",e=>{const t=document.querySelector(".gui-settings-search");if(t.value!==""){t.value="";raiseEvent(t,"input")}e.currentTarget.classList.toggle("folded");l(e.currentTarget).forEach(e=>e.classList.toggle("folded"))})});document.querySelectorAll(".gui-settings-dropdown>input").forEach(e=>{e.addEventListener("click",e=>{e.currentTarget.parentElement.classList.toggle("opened")})})}function u(){r.forEach(t=>{t.addEventListener("change",()=>{const n=t.getAttribute("key");const i=t.checked;e[n]=i})});c.forEach(t=>{t.addEventListener("change",()=>{const n=t.getAttribute("key");const i=s.getValidator(n).validate(t.value);e[n]=i;t.value=i})})}function g(){const e=o.map(e=>[e.getAttribute("dependencies").split(" ").map(e=>o.find(t=>t.getAttribute("key")===e)),e]);const t=e=>e.nodeName.toUpperCase()==="LI"?e:t(e.parentElement);e.forEach(([e,n])=>{if(e[0]===undefined){return}const i=()=>{if(e.every(e=>e.checked)){t(n).classList.remove("disabled")}else{t(n).classList.add("disabled")}};e.forEach(e=>e.addEventListener("change",i));i()})}function f(){if(typeof offlineData!=="undefined"){}}function b(){if(!CSS.supports("backdrop-filter","blur(24px)")&&!CSS.supports("-webkit-backdrop-filter","blur(24px)")){o.find(e=>e.getAttribute("key")==="blurVideoControl").disabled=true;e.blurVideoControl=false}if(window.devicePixelRatio===1){o.find(e=>e.getAttribute("key")==="harunaScale").disabled=true;o.find(e=>e.getAttribute("key")==="imageResolution").disabled=true;e.harunaScale=false;e.imageResolution=false}}function p(){for(const[e,t]of Object.entries(Resource.displayNames)){const n=o.find(t=>t.getAttribute("key")===e);if(!n){continue}switch(n.type){case"checkbox":n.nextElementSibling.nextElementSibling.innerHTML=t;break;case"text":const e=n.parentElement;if(e.classList.contains("gui-settings-textbox-container")){n.previousElementSibling.innerHTML=t}else if(e.classList.contains("gui-settings-dropdown")){e.previousElementSibling.innerHTML=t}break;default:break}}}(async()=>{t.applyStyle("guiSettingsStyle");t.applyImportantStyle("iconsStyle");document.body.classList.add("round-corner");const e=document.body&&unsafeWindow.parent.window!==unsafeWindow;if(e){document.querySelector(".gui-settings-icon-panel").style.display="none"}const s=t.data.guiSettingsHtml.text;document.body.insertAdjacentHTML("beforeend",s);const{style:l}=await t.importAsync("mdi");if(!l){document.body.insertAdjacentHTML("afterbegin",``)}t.applyDropdownOptions();const m=document.querySelector(".widgets-container");const y=m.querySelector(".empty-tip");Observer.childList(m,()=>{if(m.childElementCount<=1){y.classList.add("show")}else{y.classList.remove("show")}});(new n).setupDom();const h=document.querySelectorAll(".gui-settings-widgets-box,.gui-settings-box");const E=document.querySelector(".gui-settings-icon-panel");E.addEventListener("mouseover",()=>{raiseEvent(E,"be:load");raiseEvent(dq(".bilibili-evolved-about"),"be:about-load");h.forEach(e=>e.classList.add("loaded"));o=[...document.querySelectorAll("input[key]")];r=o.filter(e=>e.type==="checkbox");c=o.filter(e=>e.type==="text"&&!e.parentElement.classList.contains("gui-settings-dropdown"));d();f();a();g();u();b();p();new i},{once:true})})()}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/haruna-scale.min.js"] = (()=>{return(n,e)=>{const t="haruna-scale";const a=()=>{if(document.getElementById(t)===null){e.applyStyleFromText(`\n .haruna-ctnr,\n .avatar-btn\n {\n transform: scale(${1/window.devicePixelRatio}) !important;\n }\n `,t)}};a();return{reload:a,unload:()=>{const n=document.getElementById(t);n&&n.remove()}}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/hide-bangumi-reviews.min.js"] = (()=>{return(e,n)=>{return n.toggleStyle(`\n #review_module { display: none !important; }\n `,`hide-bangumi-reviews-style`)}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/hide-banner.min.css"] = `#banner_link,.custom-navbar .blur-layer,.z-top-container.has-banner>.header{display:none!important}.b-header-mask-wrp .b-header-mask-bg,div.blur-bg{opacity:0!important}`; @@ -1067,12 +1067,12 @@ offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/m offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/remove-top-mask.min.js"] = (()=>{return(e,t)=>{const o=`.bilibili-player-video-top { display: none !important; }`;const n="remove-top-mask-style";const l=()=>t.applyStyleFromText(``);const r=()=>{const e=document.getElementById(n);if(e){e.remove()}};l();return{reload:l,unload:r}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/remove-watermark.min.js"] = (()=>{return(e,n)=>{const t="remove-live-watermark";const l=()=>{if(document.getElementById(t)===null){n.applyStyleFromText(`\n .bilibili-live-player-video-logo\n {\n display: none !important;\n }\n `,t)}};l();return{reload:l,unload:()=>{const e=document.getElementById(t);e&&e.remove()}}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/screenshot.min.css"] = `.video-take-screenshot{padding:0 4px 0 12px;height:100%;cursor:pointer;display:none!important}.video-take-screenshot.touch{padding:0 6px 0 10px;margin-left:12px}.bilibili-player-video-control-bottom .video-take-screenshot{display:flex!important}.video-take-screenshot.touch span{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.video-take-screenshot i{font-size:20px;color:#fff;transform:scale(1);opacity:.9;transition:.4s cubic-bezier(.18,.89,.32,1.28);display:block}.bilibili-player.mode-fullscreen .video-take-screenshot i,.bilibili-player.mode-webfullscreen .video-take-screenshot i{font-size:24px}.video-take-screenshot:hover i{transform:scale(1.05);opacity:1}.video-take-screenshot:active i{transform:scale(.95);opacity:1}.video-screenshot-container{position:relative;--screenshot-width:240px;--screenshot-width-negative:calc(0px - var(--screenshot-width));--screenshot-height:135px;--thumbnail-margin-vertical:12px;--thumbnail-margin-horizontal:24px;--screenshot-list-width:calc(2 * var(--thumbnail-margin-horizontal) + var(--screenshot-width))}.video-screenshot-batch{position:fixed;bottom:0;right:0;z-index:20000;display:flex;width:var(--screenshot-list-width);align-items:center;justify-content:space-evenly}.video-screenshot-batch button{background:#000c;color:#fff;border:none;border-radius:10px 10px 0 0;font-size:12pt;cursor:pointer;outline:0!important;padding:8px 12px;display:flex;justify-content:center;align-items:center}.video-screenshot-batch button i{font-size:14pt;margin-right:4px}.video-screenshot-container,.video-screenshot-container *{transition:.2s ease-out}.video-screenshot-list{position:fixed;top:0;right:0;z-index:20000;padding:var(--thumbnail-margin-vertical) 0;pointer-events:none;height:calc(100% - 2 * var(--thumbnail-margin-vertical) - 48px);width:var(--screenshot-list-width);overflow:auto}.video-screenshot-list *{pointer-events:initial}.video-screenshot-list-enter{opacity:0;transform:translateX(var(--screenshot-width-negative))}.video-screenshot-list-leave-to{opacity:0;transform:translateX(var(--screenshot-width))}.video-screenshot-thumbnail img{max-width:var(--screenshot-width);max-height:var(--screenshot-height);display:block;background-color:#000}.video-screenshot-thumbnail{margin:var(--thumbnail-margin-vertical) var(--thumbnail-margin-horizontal);position:relative;transition:.35s cubic-bezier(.18,.89,.32,1.28);width:var(--screenshot-width);height:var(--screenshot-height);background-color:#000;display:flex;justify-content:center;align-items:center}@keyframes spinner{to{transform:translate(-50%,-50%) rotate(360deg)}}.video-screenshot-thumbnail .loading::before{content:"";box-sizing:border-box;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(0);width:24px;height:24px;border-radius:50%;border:3px solid #8888;border-top-color:var(--theme-color);animation:.6s linear infinite spinner}.video-screenshot-thumbnail.video-screenshot-list-leave-active{position:absolute;transition:.35s cubic-bezier(.6,-.28,.74,.05)}.video-screenshot-thumbnail .mask{position:absolute;opacity:0;top:0;left:0;width:100%;height:100%;background:#0008;display:flex;justify-content:space-around;align-items:center;transition:none;pointer-events:none}.video-screenshot-thumbnail:hover .mask{opacity:1}.video-screenshot-thumbnail .mask .time{color:#fff;position:absolute;bottom:0;left:4px;font-size:10pt}.video-screenshot-thumbnail .mask button{background:#000a;color:#fff;border:none;border-radius:50%;font-size:24pt;cursor:pointer;width:48px;height:48px;pointer-events:initial;outline:0!important}`; -offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/screenshot.min.js"] = (()=>{return(e,t)=>{const{getFriendlyTitle:i}=t.import("title");const n=document.createElement("canvas");class s{constructor(e,t,i=false){this.url="";this.timeStamp=(new Date).getTime();this.withDanmaku=false;this.video=e;this.videoTime=t;this.withDanmaku=i;this.createUrl()}async createUrl(){n.width=this.video.videoWidth;n.height=this.video.videoHeight;const e=n.getContext("2d");if(e===null){logError("视频截图失败: canvas 未创建或创建失败.");return}e.drawImage(this.video,0,0);if(this.withDanmaku){const t=dq("canvas.bilibili-player-video-danmaku");if(t!==null){e.drawImage(t,0,0,this.video.videoWidth,this.video.videoHeight)}}n.toBlob(e=>{if(e===null){logError("视频截图失败: 创建 blob 失败.");return}this.blob=e;this.url=URL.createObjectURL(e)},"image/png")}get filename(){return`${i()} @${this.time.replace(/:/g,"-")} ${this.timeStamp.toString()}.png`}get id(){return this.videoTime.toString()+this.timeStamp.toString()}get time(){const e=Math.trunc(this.videoTime/3600).toString();const t=Math.trunc(this.videoTime/60).toString();const i=(this.videoTime%60).toFixed(2);if(e==="0"){return`${t.padStart(2,"0")}:${i.padStart(5,"0")}`}return`${e}:${t.padStart(2,"0")}:${i.padStart(5,"0")}`}revoke(){URL.revokeObjectURL(this.url)}}const o=(e,t=false)=>{const i=e.currentTime;return new s(e,i,t)};t.applyStyle("videoScreenshotStyle");document.body.insertAdjacentHTML("beforeend",`\n
\n \n \n \n
\n \n \n \n
\n
\n`);Vue.component("video-screenshot",{props:{objectUrl:String,filename:String,time:String},template:`\n
\n \n
\n \n \n \n {{time}}\n
\n
\n
\n
\n `,methods:{discard(){this.$emit("discard")},save(){this.$el.querySelector(".link").click();this.discard()}}});const r=new Vue({el:".video-screenshot-container",data:{screenshots:[],batchFilename:i()+".zip"},methods:{discard(e){this.screenshots.splice(this.screenshots.indexOf(e),1);e.revoke()},async saveAll(){const e=new JSZip;this.screenshots.forEach(t=>{e.file(t.filename,t.blob,{date:new Date(t.timeStamp)})});const t=await e.generateAsync({type:"blob"});const i=this.$el.querySelector(".batch-link");i.href=URL.createObjectURL(t);i.click();URL.revokeObjectURL(i.href);i.href="";this.discardAll()},discardAll(){this.screenshots.forEach(e=>e.revoke());this.screenshots=[]}},computed:{showBatch(){return this.screenshots.length>=2}}});const c=`\n
\n \n
`;Observer.videoChange(async()=>{const t=await SpinQuery.select("#bofqi video");if(t===null){return}const i=await SpinQuery.select(".bilibili-player-video-time");if(i===null||document.querySelector(".video-take-screenshot")){return}i.insertAdjacentHTML("afterend",c);const n=document.querySelector(".video-take-screenshot");n.addEventListener("click",async e=>{const t=await SpinQuery.select("#bofqi video");const i=o(t,e.shiftKey);r.screenshots.unshift(i)});document.addEventListener("keydown",e=>{if(document.activeElement&&["input","textarea"].includes(document.activeElement.nodeName.toLowerCase())){return}if(e.ctrlKey&&e.altKey&&e.key.toLowerCase()==="c"){e.stopPropagation();e.preventDefault();n.click()}});if(e.touchVideoPlayer){document.querySelectorAll(".video-take-screenshot").forEach(e=>e.classList.add("touch"))}});return{export:{takeScreenshot:o,screenShotsList:r},unload:()=>document.querySelectorAll(".bilibili-player-video-control-bottom .video-take-screenshot,.video-screenshot-container").forEach(e=>e.setAttribute("style","display: none !important")),reload:()=>document.querySelectorAll(".bilibili-player-video-control-bottom .video-take-screenshot,.video-screenshot-container").forEach(e=>e.setAttribute("style","display: flex !important"))}}})(); +offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/screenshot.min.js"] = (()=>{return(e,t)=>{const{getFriendlyTitle:i}=t.import("title");const n=document.createElement("canvas");class s{constructor(e,t,i=false){this.url="";this.timeStamp=(new Date).getTime();this.withDanmaku=false;this.video=e;this.videoTime=t;this.withDanmaku=i;this.createUrl()}async createUrl(){n.width=this.video.videoWidth;n.height=this.video.videoHeight;const e=n.getContext("2d");if(e===null){logError("视频截图失败: canvas 未创建或创建失败.");return}e.drawImage(this.video,0,0);if(this.withDanmaku){const t=dq("canvas.bilibili-player-video-danmaku");if(t!==null){e.drawImage(t,0,0,this.video.videoWidth,this.video.videoHeight)}}n.toBlob(e=>{if(e===null){logError("视频截图失败: 创建 blob 失败.");return}this.blob=e;this.url=URL.createObjectURL(e)},"image/png")}get filename(){return`${i()} @${this.time.replace(/:/g,"-")} ${this.timeStamp.toString()}.png`}get id(){return this.videoTime.toString()+this.timeStamp.toString()}get time(){const e=Math.trunc(this.videoTime/3600).toString();const t=Math.trunc(this.videoTime/60).toString();const i=(this.videoTime%60).toFixed(2);if(e==="0"){return`${t.padStart(2,"0")}:${i.padStart(5,"0")}`}return`${e}:${t.padStart(2,"0")}:${i.padStart(5,"0")}`}revoke(){URL.revokeObjectURL(this.url)}}const o=(e,t=false)=>{const i=e.currentTime;return new s(e,i,t)};let r={screenshots:[]};Observer.videoChange(async()=>{if(!dq(".video-screenshot-container")){t.applyStyle("videoScreenshotStyle");document.body.insertAdjacentHTML("beforeend",`\n
\n \n \n \n
\n \n \n \n
\n
\n `);Vue.component("video-screenshot",{props:{objectUrl:String,filename:String,time:String},template:`\n
\n \n
\n \n \n \n {{time}}\n
\n
\n
\n
\n `,methods:{discard(){this.$emit("discard")},save(){this.$el.querySelector(".link").click();this.discard()}}});r=new Vue({el:".video-screenshot-container",data:{screenshots:[],batchFilename:i()+".zip"},methods:{discard(e){this.screenshots.splice(this.screenshots.indexOf(e),1);e.revoke()},async saveAll(){const e=new JSZip;this.screenshots.forEach(t=>{e.file(t.filename,t.blob,{date:new Date(t.timeStamp)})});const t=await e.generateAsync({type:"blob"});const i=this.$el.querySelector(".batch-link");i.href=URL.createObjectURL(t);i.click();URL.revokeObjectURL(i.href);i.href="";this.discardAll()},discardAll(){this.screenshots.forEach(e=>e.revoke());this.screenshots=[]}},computed:{showBatch(){return this.screenshots.length>=2}}})}const n=await SpinQuery.select("#bofqi video");if(n===null){return}const s=await SpinQuery.select(".bilibili-player-video-time");if(s===null||document.querySelector(".video-take-screenshot")){return}const c=`\n
\n \n
`;s.insertAdjacentHTML("afterend",c);const a=document.querySelector(".video-take-screenshot");a.addEventListener("click",async e=>{const t=await SpinQuery.select("#bofqi video");const i=o(t,e.shiftKey);r.screenshots.unshift(i)});document.addEventListener("keydown",e=>{if(document.activeElement&&["input","textarea"].includes(document.activeElement.nodeName.toLowerCase())){return}if(e.ctrlKey&&e.altKey&&e.key.toLowerCase()==="c"){e.stopPropagation();e.preventDefault();a.click()}});if(e.touchVideoPlayer){document.querySelectorAll(".video-take-screenshot").forEach(e=>e.classList.add("touch"))}});return{export:{takeScreenshot:o,screenShotsList:r},unload:()=>document.querySelectorAll(".bilibili-player-video-control-bottom .video-take-screenshot,.video-screenshot-container").forEach(e=>e.setAttribute("style","display: none !important")),reload:()=>document.querySelectorAll(".bilibili-player-video-control-bottom .video-take-screenshot,.video-screenshot-container").forEach(e=>e.setAttribute("style","display: flex !important"))}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/scrollbar.min.css"] = `::-webkit-scrollbar{width:5px!important;height:5px!important}::-webkit-scrollbar-corner,::-webkit-scrollbar-track{background:0 0!important}::-webkit-resizer,::-webkit-scrollbar-thumb{background:#aaa}::-webkit-scrollbar-thumb:hover{background:#888}*{scrollbar-color:#aaa transparent;scrollbar-width:thin!important}`; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/search.vue.min.js"] = (()=>{return(e,t)=>{const r=``;return{export:Object.assign({template:r},{})}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/seeds-to-coins.min.js"] = (()=>{return(s,e)=>{const t=`https://api.live.bilibili.com/pay/v1/Exchange/silver2coin`;return{widget:{content:`\n \n \n 瓜子换硬币\n `,success:()=>{const s=async()=>{const s=await Ajax.getJsonWithCredentials(t);if(s.code!==0){Toast.info(s.message,"瓜子换硬币",3e3)}else{Toast.success(`${s.message}\n剩余银瓜子:${s.data.silver}`,"瓜子换硬币",3e3)}};const e=dq("#seeds-to-coins");e.addEventListener("click",async()=>{try{e.disabled=true;await s()}finally{e.disabled=false}})}}}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/settings-search.min.js"] = (()=>{return(t,e)=>{class s{constructor(){this.input=document.querySelector(".gui-settings-search");const t=[...document.querySelectorAll(".gui-settings-content>ul>li")];const e=t=>e=>e.classList.contains("category")===t;this.categories=t.filter(e(true));this.items=t.filter(e(false));this.importToolTips().then(()=>this.input.addEventListener("input",()=>this.keywordChange()))}async importToolTips(){if(typeof getI18nKey==="undefined"){console.error("请更新脚本后再使用设置搜索功能.");return}const{toolTips:t}=await e.importAsync(`settings-tooltip.${getI18nKey()}`);this.toolTips=t}keywordChange(){const t=this.input.value.trim();if(!t){this.categories.concat(this.items).forEach(t=>t.classList.add("folded"));return}this.items.forEach(e=>{const s=e.querySelector("input").getAttribute("key");const i=this.toolTips.get(s);let o=Resource.displayNames[s];if(i!==undefined){o+=i.replace(/<.*>|<\/.*>/g,"")}if(o.includes(t)){e.classList.remove("folded");const t=e.getAttribute("data-dependencies");if(t!==undefined){t.split(" ").forEach(t=>{const e=this.items.find(e=>e.getAttribute("data-key")===t);if(e!==undefined){e.classList.remove("folded")}})}}else{e.classList.add("folded")}});this.foldCategories()}foldCategories(){for(const e of this.categories){function t(){let t=e.nextElementSibling;while(t!==null&&!t.classList.contains("category")){if(!t.classList.contains("folded")){return"remove"}t=t.nextElementSibling}return"add"}e.classList[t()]("folded")}}}return{export:{SettingsSearch:s}}}})(); -offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/settings-side-bar.min.js"] = (()=>{return(e,t)=>{if(document.querySelector(".gui-settings-icon-panel")===null){document.body.insertAdjacentHTML("beforeend",`\n
\n
\n \n
\n
\n \n
\n
`);dq(".gui-settings").addEventListener("click",e=>{if(e.shiftKey===false){dqa(".gui-settings-box,.gui-settings-mask").forEach(e=>e.classList.add("opened"))}else{dqa(".bilibili-evolved-about,.gui-settings-mask").forEach(e=>e.classList.add("opened"));raiseEvent(document.querySelector(".bilibili-evolved-about"),"be:about-load")}});dq(".gui-settings-widgets").addEventListener("click",e=>{if(e.shiftKey===false){dqa(".gui-settings-widgets-box,.gui-settings-mask").forEach(e=>e.classList.add("opened"))}else{debugger}});const e=dq(".gui-settings-icon-panel .gui-settings-widgets>i");const t=dq(".gui-settings-icon-panel .gui-settings>i");let i=false;let s=false;const n=()=>{t.classList.remove("icon-info");t.classList.add("icon-settings");t.parentElement.title="设置";e.classList.remove("icon-time");e.classList.add("icon-widgets");e.parentElement.title="附加功能";i=false;s=false};const d=()=>{t.classList.remove("icon-settings");t.classList.add("icon-info");t.parentElement.title="关于";e.classList.remove("icon-widgets");e.classList.add("icon-time");e.parentElement.title="「ザ・ワールド」";if(!i){document.body.addEventListener("keyup",n,{once:true});i=true}if(!s){window.addEventListener("blur",n,{once:true});s=true}};document.body.addEventListener("keydown",e=>{if(document.activeElement&&["input","textarea"].includes(document.activeElement.nodeName.toLowerCase())){return}if(e.shiftKey===true){d()}})}const i=(t=e.sideBarOffset)=>{document.body.style.setProperty("--side-bar-offset",t+"%")};addSettingsListener("sideBarOffset",i);i()}})(); +offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/settings-side-bar.min.js"] = (()=>{return(e,t)=>{if(document.querySelector(".gui-settings-icon-panel")===null){document.body.insertAdjacentHTML("beforeend",`\n
\n
\n \n
\n
\n \n
\n
`);dq(".gui-settings").addEventListener("click",e=>{if(e.shiftKey===false){dqa(".gui-settings-box,.gui-settings-mask").forEach(e=>e.classList.add("opened"))}else{dqa(".bilibili-evolved-about,.gui-settings-mask").forEach(e=>e.classList.add("opened"))}});dq(".gui-settings-widgets").addEventListener("click",e=>{if(e.shiftKey===false){dqa(".gui-settings-widgets-box,.gui-settings-mask").forEach(e=>e.classList.add("opened"))}else{debugger}});const e=dq(".gui-settings-icon-panel .gui-settings-widgets>i");const t=dq(".gui-settings-icon-panel .gui-settings>i");let s=false;let i=false;const n=()=>{t.classList.remove("icon-info");t.classList.add("icon-settings");t.parentElement.title="设置";e.classList.remove("icon-time");e.classList.add("icon-widgets");e.parentElement.title="附加功能";s=false;i=false};const d=()=>{t.classList.remove("icon-settings");t.classList.add("icon-info");t.parentElement.title="关于";e.classList.remove("icon-widgets");e.classList.add("icon-time");e.parentElement.title="「ザ・ワールド」";if(!s){document.body.addEventListener("keyup",n,{once:true});s=true}if(!i){window.addEventListener("blur",n,{once:true});i=true}};document.body.addEventListener("keydown",e=>{if(document.activeElement&&["input","textarea"].includes(document.activeElement.nodeName.toLowerCase())){return}if(e.shiftKey===true){d()}})}const s=(t=e.sideBarOffset)=>{document.body.style.setProperty("--side-bar-offset",t+"%")};addSettingsListener("sideBarOffset",s);s()}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/settings-tooltip.en-US.min.js"] = (()=>{return(e,o)=>{const t=new Map([["useDefaultPlayerMode",`Set the default player mode. Could be Normal, Widescreen, Web fullscreen or Fullscreen.`],["defaultPlayerMode",`Select the default player mode.`],["applyPlayerModeOnPlay",`Apply mode on video play instead of page load.`],["useDefaultPlayerLayout",`Set the default player layout.\n- Old: The legacy layout\n- New: The default new layout\nWarning: Some features won't work on old layout.`],["defaultPlayerLayout",`Video player layout`],["defaultBangumiLayout",`Bangumi player layout`],["useDefaultVideoQuality",`Auto select the specified video quality. If the highest quality of video in lower than your choice, the highest quality will be used.`],["defaultVideoQuality","Select the default video quality."],["autoLightOff",`Auto turn off the light when video starts playing, and turn on the light after complete.`],["useDefaultDanmakuSettings",`Set the default settings about danmakus.`],["enableDanmaku",`Disable this if you want to turn off danmakus by default.`],["rememberDanmakuSettings",`Remember the "Prevent blocking subtitles" and "Smart danmaku mask" settings. If you change these settings on player, every video will apply these settings by default.`],["expandDanmakuList",`Auto expand the danmaku list.`],["autoPlay",`Auto start playing video on page load.`],["autoContinue",`If playback history exists, auto continue from it.`],["skipChargeList",`Skip charge acknowledgements on the end of some videos.`],["framePlayback",`Append 2 buttons to the right of video time to seek video by frame. Support keyboard shortcut Shift+/. (Old layout can only use keyboard shortcut)`],["playerFocus",`Auto scroll to the player when you enter the page.`],["playerFocusOffset",`Set the scroll offset. (in px unit)`],["customStyleColor",`Set the theme color for custom navbar, dark mode and more. Click the color circle to choose from 16 predefined colors, or input any valid hex color in textbox. (#rrggbb or #rgb)`],["useDarkStyle",`Dark style looks much better at night, and will widely apply theme color.`],["darkSchedule",`Schedule the dark mode time.`],["compactLayout",`Use compact layout for homepage, reduce margin and remove rounded corner of video cards, use vector icons in categories.`],["useCommentStyle",`- Remove "Follow" button on hot comments\n- Remove the level badge of user\n- Remove the platform info (like From Android client)\n- Move post time to upper right.\n- Use vector icons\nTip: You can still access the removed "Follow" and level badge by hovering on their avatars.`],["simplifyLiveroom",`- Hide master icon\n- Hide fan badge\n- Hide event title\n- Hide user level\n- Hide captain icon\n- Hide global notice\n- Hide welcome message (xxx master entered room)\n- Hide lottery draw notifications\n- Disable room skin\nTip: Every item can be toggled individually in Add-ons.`],["blurVideoControl",`Use background blur effect for video controls.`],["customControlBackground",`Use a filled black rectangle as background of video controls instead of the original shadow effect.`],["customControlBackgroundOpacity",`Set the opacity of rectangle`],["harunaScale",`Make live room showgirl DPI-aware.`],["removeLiveWatermark",`Remove the watermark of live stream`],["removeVideoTopMask",`Remove the top mask of videos`],["removeAds",`Remove all ads. including slideshow ads, mobile app ads and video ads.`],["watchLaterRedirect",`Redirects all watchlater videos to the normal video page in order to use new layout.`],["favoritesRedirect",`Redirects all videos in favorites from favorites playlist to the individual video page.`],["hideTopSearch",`Use "Search" in place of search recommendations.`],["fullTweetsTitle",`Always expand full title in the activities peek in navbar.`],["fullPageTitle",`Always expand full title of video episodes. (Not work for bangumi)`],["biliplusRedirect",`Append "Jump to BiliPlus" button to Add-ons.`],["imageResolution",`Request hi-resolution images by your screen DPI. But also cause longer loading time.`],["oldTweets",`Replace activities link by the old version, and you can switch between new and old versions in Add-ons.`],["touchNavBar",`Allow to tap on a navbar item to view its popup info, instead of open the top-level link.`],["comboLike",`Allow long press the like button to perform a combo like.`],["touchVideoPlayer",`Increase margin of video control buttons for better touch experience. And enable touch gestures:\n- Left/Right slide to seek\n- Up/Down slide to adjust volume\n- Cancel a gesture on upper left/right corner\n- Slide on different position to use different sensibility.`],["touchVideoPlayerAnimation",`Use experimental animations for touch gestures, but may cause frame drops.`],["touchVideoPlayerDoubleTapControl",`Enable double-tap control: single tap to view/hide control bar, double tap to pause/resume.`],["toast",`Show toasts on the lower left corner of page, including update notifications and error display.`],["toastInternalError",`Show internal error messages, which may be helpful when reporting a bug.`],["useCache",`Use cache to increase load speed of this userscript.`],["outerWatchlater",`Move watchlater button from menu to outside.`],["i18n",`[Experimental] Provides UI translation for some common words.`],["i18nLanguage",`Set the target language.`],["customNavbar",`Enable custom navbar to replace the legacy one. New navbars in live/photos/shop are not affected.`],["customNavbarFill",`Use theme color to fill the navbar.`],["allNavbarFill",`Fill theme color to all navbars, including live/photos/shop.`],["customNavbarShadow",`Drop shadow for custom navbar.`],["customNavbarCompact",`Use compact layout for custom navbar, provides smaller margins and use ... for long titles.`],["customNavbarBlur",`If top banner exists, use background blur effect.`],["playerShadow",`Use theme color shadow for player.`],["narrowDanmaku",`Force preserve danmaku input in web fullscreen mode. May cause buttons on the right out of screen.`],["hideOldEntry",`Hide "Back to old" buttons in new layout.`],["hideBanner",`Hide top banner.`],["allowJumpContinue",`Allow jump to episodes different from current.`],["hideBangumiReviews",`Hide reviews on bangumi page.`],["videoScreenshot",`Append screenshot button to the right of video time. Support keyboard shortcut Ctrl+Alt+C. (Old layout can only use keyboard shortcut)`],["filenameFormat",`Customize the filename format used by Download danmaku, Download video, Video screenshot, View cover.\nThere are a few variables:\n- title: Video title / Live room title\n- ep: Episode title\n- aid: AV ID\n- cid: CID (The unique ID of video, as AV ID may contains multiple episodes)\n- lid: Live room ID\n- y/M/d: Year / Month / Day of month\n- h/m/s/ms: Hour / Minute / Second / Millisecond\n\nThe default format is [title][ - ep], representing video title and episode title. If episode title not exists, only video title is used.\n\nPut your variables inside square brackets, other contents inside brackets (like " - " in "[ - ep]") will only appear when the variable exists. For instance, if the format is [title] - [ep]. Even there's no episode title, that " - " will still appear in filename (which is meaningless). So in default format, when episode title not exists, " - " will also disappear.\n\nA more specific example: To use a "video title + AV ID + time" format, we can use [title][ AVaid] [y]-[M]-[d] [h]-[m]-[s]. And get filenames like "xxxx AV23333 2019-05-29 19-59-44".`],["noLiveAutoplay",`Disable autoplay on live homepage.`],["hideHomeLive",`Hide recommended live rooms on live homepage.`],["sideBarOffset",`Set vertical offset of side bar (in percent). Valid range: -40% ~ 40%.`],["hideCategory",`Hide category bar on main site, you can select category from Home in navbar.`],["foldComment",`Append a "Fold comments" button on the bottom of page when viewing comments in activities. Then you can quickly fold comments without scrolling up.`],["showDeadVideoTitle",`Retrieve title and cover of dead videos in your space`],["useBiliplusRedirect",`Jump to BiliPlus for dead videos.`],["deadVideoTitleProvider",`Select dead video info provider: Watchlater is stable but takes some time, BiliPlus runs fast but it's not implemented yet.`],["useDefaultVideoSpeed",`Set the default video playback rate.`],["defaultVideoSpeed",`Select the default playback rate.`],["seedsToCoins",`Append a Seeds to coins button, click to convert 700 silver seeds to 1 coin, up to one time per day.`],["autoDraw",`Auto click draw button when there're drawing events in live room.`],["keymap",`Enable more keyboard shortcuts for video player:\n- w Web fullscreen\n- t Wide screen / Theater mode\n- r Toggle repeat\n- m Toggle mute\n- d Toggle danmakus\n- l Like\n- c Coin\n- s Favorite\n- Shift + / Playback Speed Adjust`],["doubleClickFullscreen",`Allow double click the player to toggle fullscreen, please note that this feature will not work if 播放器触摸支持 - 启用双击控制 is also enabled.`]]);return{export:{toolTips:t}}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/settings-tooltip.ja-JP.min.js"] = (()=>{return(a,n)=>{const e=new Map([["useDefaultPlayerLayout",`デフォルト・プレーヤー・レイアウトを設定する. できるだけ、適切なページに設定(例えば、番組の放送ページに番組プレーヤーのレイアウトを設定する)、そうでない場合は効果がない可能性があります.\n- 旧版: 伝統的なレイアウト\n- 新版: 動画ページに黙認の新版レイアウト\n注意: 伝統的なレイアウトでは、多くのスクリプト機能が適用されない.`],["defaultPlayerLayout",`動画プレーヤーのレイアウトを設定する.`],["defaultBangumiLayout",`番組プレーヤーのレイアウトを設定する.`],["useDefaultPlayerMode",`デフォルト・プレーヤー・モードが使用するかどうかを制御する、 例えば常规宽屏网页全屏全屏.`],["defaultPlayerMode",`デフォルト・プレーヤー・モードが設定する.`],["applyPlayerModeOnPlay",`再生時にモードを適用する、「いいえ」を選択すると、再生が開始されていないときに適用されます.`],["autoLightOff",`初回放送時には、自動的に消灯モードに入り、再生終了後に自動的に点灯します.`],["useDefaultVideoQuality",`動画を開くときに指定された画質を自動的に選択する. 映像の最高画質が選択された画質より低ければ、映像の最高画質を使用する.`],["defaultVideoQuality",`自動的に選択された映像画質を設定する.`],["useDefaultDanmakuSettings",`デフォルトで弾幕を開くかどうかを設定する.そして、「防挡字幕」と「智能防挡弹幕」を覚えておくかどうかを設定できる.`],["enableDanmaku",`弾幕がデフォルトで開くかどうかを制御する.`],["rememberDanmakuSettings",`弾幕ブロックの設定を覚えるかどうかを制御する、「防挡字幕」と「智能防挡弹幕」を含まれています.これらの設定を動画制御欄で変更すると、すべでの動画にデフォルトでこれらの設定が使用されます.`],["expandDanmakuList",`新版レイアウトでは、他のおすすめ動画が表示されるようにデフォルトで弾幕リストが折りたたまれています.この機能を有効にすると、動画が読み込まれるたびに弾幕リストが自動的に展開されます.`],["expandDescription",`長すぎる動画概要欄はデフォルトで折りたたまれています、この機能を有効にすると完全な動画概要欄が強制的に展開されます.`],["autoContinue",`動画再生時に視聴履歴が検出されると(前回の见た...情報)、自動的に対応する時間に再生される.`],["allowJumpContinue",`履歴のセット数が現在開いているページと矛盾している場合でも、自動的にジャンプします.`],["autoPlay",`動画ページに入ると、自動的に動画の再生が開始されます.`],["skipChargeList",`エンディングの「充电鸣谢」を自動スキップ.`],["framePlayback",`プレーヤーの時間に右側に2つのボタンが追加されました.動画の時間を細かく調整するために使用される. キーボードショートカットに対応しますShift+/. (伝統的なレイアウトでキーボードショートカットのみ使用でき、ボタンは表示されません)`],["videoScreenshot",`プレーヤーの時間に右側に1つのボタンが追加されました.動画スクリーンショットを使用されます. キーボードショートカットに対応しますCtrl+Alt+C. (伝統的なレイアウトでキーボードショートカットのみ使用でき、ボタンは表示されません)`],["playerFocus",`動画/番組の放送ページに入る時、プレーヤーに自動的に移動する.`],["playerFocusOffset",`移動時の垂直オフセット、単位はピクセル(px).`],["outerWatchlater",`動画放送ページの稍后再看を外に移動します.`],["keymap",`動画プレーヤーのためにより多くのショートカットを有効にします:\n- w ウェブの全画面\n- t ワイドモード\n- r サイクル放送\n- m 消音\n- d 弾幕スイッチ\n- l いいね\n- c コインを投げる\n- s お気に入り\n- Shift + / 再生速度を調整する.`],["doubleClickFullscreen",`ダブルクリックして全画面に切り替えることができます.ご注意ください播放器触摸支持 - 启用双击控制と共に使用できない.`],["customStyleColor",`頂欄(スタイルの調整が有効な場合)とダークテーマのテーマ色で埋める、カラープレビューサークルをクリックして、设定の16種類のテーマカラーにできるの、右側のテキストボックスに任意の有効な16進数のカラー値を直接入力することもできます.(#rrggbb#rgb).`],["blurBackgroundOpacity",`设置顶栏对横幅的透明度(0~1), 数值越高顶栏越淡, 当横幅关闭时此选项无效.`],["customNavbar",`カスタム頂欄を使用する.伝統的な頂欄に取って代わる.メインステーション専用です.「生放送」、「アルバム」、「会員購」などには影響しません.`],["customNavbarFill",`テーマ色で頂欄を埋める.`],["allNavbarFill",`テーマ色で他の頂欄を埋める.「生放送」、「アルバム」、「会員購」などが含まれています.`],["customNavbarShadow",`頂欄に投影効果を追加する.`],["customNavbarCompact",`トップページにコンパクトなレイアウトを使する.コンパクトなレイアウトはより小さなスペースを使用し、そして動画のタイトルが長すぎる場合に後者の部分を省略するための 「...」を使用する.`],["customNavbarBlur",`トップの横断幕が存在する場合は、背景のぼかし効果を使用します.`],["useDarkStyle",`ダークテーマでは、ページの明るい部分が暗い色に変わり、夜間の視聴に最適な表示になります.そして多くのテーマカラーを適用します.ぜひお試しください.`],["darkSchedule",`ダークテーマを使用して计画タイムを設定する.この期間を開始または終了すると、ダークテーマは自動的にオンまたはオフになり、終了時刻は開始時刻より短く、翌日と見なされます.例えば18:00から6:00夜の18:00から翌日の6:00までを表しています.`],["darkScheduleStart",`計画期間の開始時刻を設定する.`],["darkScheduleEnd",`計画期間の終了時刻を設定する.`],["compactLayout",`ホームページでコンパクトレイアウトを使用するかどうかを設定します.動画の間隔が狭くなり、フィレットが切り取られ、カテゴリ欄のアイコンは高解像度版を使用します.`],["useCommentStyle",`- 人気コメントのアバターの下にある「フォロー」ボタンを削除します\n- ユーザーの「レベル」アイコンの削除します\n- 発送端末の情報を削除(例えば来自安卓客户端)\n- 送信時刻は右上に移動します\n- ビットアイコンはすべてベクトルアイコンを入れ替えており、高解像度の画面はぼやけません.\n注釈:「フォロー」と「レベル」アイコンはマウスでアバタ上に置くことで,ポップアップした資料カードに表示することができる.`],["simplifyLiveroom",`- 「老爷」アイコンを隠す\n- 「ファン勲章」アイコンを隠す\n- 「活動肩書き」アイコンを隠す\n- 「レベル」アイコンを隠す\n- 「艦長」アイコンを隠す\n- 「全域放送」を隠す\n- 「ウェルカムメッセージ」を隠す (例えば、「xxx老爷进入直播间」)\n- 「ギフト弾幕」を隠す (弾幕リストのみ. 例えば「节奏风暴」など特殊効果は影響を受けません)\n- 「艦長購入のヒント」を隠す (弾幕リストの「xxxは艦長を購入する」)\n- 「抽選のヒント」を隠す (例えば、「艦長」を購入する時、「小飞船」を購入する時、ギフトを抽選のヒント)\n- 配信ルームの「特殊な背景」を無効にする(ダークテーマでは、デフォルトでは「特殊な背景」も無効になっています)\n各項目は、非表示にするかどうかを附加功能の中で個別に選択することができる.`],["preserveRank",`控制是否在搜索框左侧显示排行榜图标.`],["hideBanner",`トップページの横断幕を非表示.`],["playerShadow",`プレーヤーにテーマカラーの投影の追加する.`],["narrowDanmaku",`ウェブの全画面表示されている場合は、幅が狭すぎても弾幕欄を強制的に保持し.この場合には右側の機能ボタンが境界線を押し出してしまう可能性があることに注意する.`],["blurVideoControl",`動画制御欄の背景をぼかします.伝統的な陰影効果は無効になります.`],["customControlBackground",`動画制御欄に半透明な黒を付ける、伝統的な陰影効果を置き換える.`],["customControlBackgroundOpacity",`制御欄に黒の不透明度(0~1)を設定し、数値が大きくなるほど黒が濃くなるように設定します.`],["harunaScale",`スクリーンDPIによって、配信ルームの看板娘のサイズをスケーリングして、ピクセルの解像度を高めます.`],["removeLiveWatermark",`生放送時、隅の透かしを削除する.`],["removeVideoTopMask",`マウスが通過したら、動画の右上隅にあるタイトル層を削除します.`],["hideOldEntry",`放送ページの右側返回旧版を隠す.`],["hideBangumiReviews",`番組ページの採点区を隠す.`],["hideCategory",`ホームページのエリア欄を隠す、それでもエリア欄は頂欄のホームメニューからアクセスできます.`],["removeAds",`ビリビリのさまざまな広告を削除する.ホームページのプロモーションモジュール、モバイルアプリのおすすめ、動画ページの右側にある広告などが含まれます.`],["watchLaterRedirect",`「後で見る」のリンクを通常の再生ページに変更して、新版レイアウトの再生ページを使用する.`],["favoritesRedirect",`個人センターの「お気に入り」の動画を通常の再生ページに変更して、「お気に入り」再生の放送ページではなく.`],["hideTopSearch",`検索欄の推薦語を搜索に置き換える.`],["fullTweetsTitle",`頂欄の情報プレビューページでは、常に完全なタイトルが展開されます.`],["fullPageTitle",`動画選集一覧では、常に完全なタイトルが展開されます.`],["showDeadVideoTitle",`個人センターの中に、失効した動画のタイトルとサムネイルを復元する.`],["useBiliplusRedirect",`失効した動画のリンクを「BiliPlus」ページに変更して.`],["deadVideoTitleProvider",`失効した動画の情報源: 「後で見る」は安定していますが、少し時間がかかります; 「BiliPlus」のスピードは速いですが、書き残していますので、しばらく開けません.`],["biliplusRedirect",`動画、番組、個人センターページで、追加機能转到BiliPlusをクリックして、BiliPlusの対応するページに移動します.`],["imageResolution",`スクリーンDPIによって、より高い解像度の画像を読み込む.(例えば、スクリーンのDPIが200%に調整されている場合、解像度は2倍になり、読み込み時間は長くなります.)`],["oldTweets",`「新版レイアウトの情報」リンクを 「旧版レイアウトの情報」に置き換え、追加機能で 「新版レイアウトの情報」/「旧版レイアウトの情報」を切り替えます.`],["i18n",`インタフェースの一般的なテキストの翻訳を提供する.`],["i18nLanguage",`翻訳言語`],["noLiveAutoplay",`生放送のホームページのおすすめライブルームで自動的に再生を開始することは禁止されています.`],["hideHomeLive",`生放送のホームページのおすすめライブルームを隠す.`],["foldComment",`情報ページにコメントを表示しているときに下部に「コメントを閉じる」ボタンを追加します.`],["seedsToCoins",`追加機能に瓜子换硬币ボタンを追加し、クリックして1日に1回に制限されて、1コインに700銀ヒマワリの種を交換してください.`],["touchNavBar",`頂欄の右側の1級リンクを削除します(大会員から履歴まで).タッチスクリーンデバイスですばやく情報を便利にします.削除されたリンクページはそれぞれのプレビューの中から查看更多に入ることができます.`],["comboLike",`「おすすめ三連」(「いいね」を長押した)のタッチサポートを有効にする.`],["touchVideoPlayer",`制御欄のボタン間隔を大きくして、タッチ操作をより正確にする.プレーヤーのタッチサポートを有効にする:\n- 左右にスワイプして再生の進行状況を調整します\n- 上下にスワイプして音量を調整します\n- 進行状況の調整は左上と右上でキャンセルできます\n- 異なる位置にスワイプすると、3つの異なる感度を使用できます.`],["touchVideoPlayerAnimation",`タッチ調整のヒントボックスにアニメーションの表示と非表示のどうかを決定します.このアニメーションはフレームがドロップされる可能性があります.`],["touchVideoPlayerDoubleTapControl",`操作方法を変更する.クリック:制御欄を表示/非表示, ダブルクリック放送/一時停止.`],["toast",`ウェブページの左下隅に表示スクリプトからのメッセージ、例えば更新通知の送信、エラーメッセージなどです.`],["toastInternalError",`オープンしたら、エラーメッセージは詳細な技術的エラー情報とスタック追跡を表示します.これは通常問題発生の原因を正確に確定するために使用されます.だから、問題を報告する時にこれらの情報はとても役に立ちます.`],["useCache",`スクリプトの読み込み速度を上げるためにキャッシュを使う.`],["filenameFormat",`ファイルの命名形式をカスタマイズする、下载弹幕下载视频视频截图查看封面に作用する.\n使用できる変数は:\n- title: 動画のタイトル/配信ルームのタイトル\n- ep: エピソードタイトル\n- aid: AV番号 (動画アドレス番号)\n- cid: CID (動画の唯一の番号、動画アドレス番号に対応するの動画アドレスは複数の動画を含み得る)\n- lid: 配信ルーム番号\n- y/M/d: 年/月/日\n- h/m/s/ms: 時間/分/秒/ミリ秒\n\nデフォルトの命名形式は[title][ - ep]、動画のタイトル+エピソードタイトル、エピソードタイトルがない場合は動画のタイトルを表示する.\n\n変数は角括弧内に配置され、角括弧内のその他の内容は変数が有効な場合に表示されます. 例えば、命名形式が[title] - [ep]書かれている場合ではエピソードタイトルがなくても、この - ファイル名にも表示されます. デフォルトとして角括弧で囲まれている場合、エピソードタイトルがない、 - が表示されません.\n\n例えば、タイトル+AV番号+時間の命名形式が欲しい、[title][ AVaid] [y]-[M]-[d] [h]-[m]-[s]に設定することができます. xxxx AV23333 2019-06-1 22-22-22ような名前をつけることができます.`],["sideBarOffset",`設定ボタンの垂直オフセット、単位はパーセント、許容範囲は-40%〜40%です.`],["useDefaultVideoSpeed",`デフォルトの再生速度を使用するかどうかを設定します.`],["defaultVideoSpeed",`デフォルトの動画再生速度を設定する.`],["autoDraw",`ライブルームに抽選活動がある場合は、「受け取り」ボタンを自動的にクリックします.`]]);return{export:{toolTips:e}}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/settings-tooltip.loader.min.js"] = (()=>{return(t,e)=>{function n(t){const e=t.querySelector("input");if(e){return e.getAttribute("key")}return null}(async()=>{e.applyStyle("settingsTooltipStyle");const{toolTips:t}=await e.importAsync(`settings-tooltip.${getI18nKey()}`);const s=await SpinQuery.select(".gui-settings-tooltip");if(!s){return}document.querySelectorAll(".gui-settings-content>ul>li").forEach(e=>{e.addEventListener("mouseover",()=>{const i=n(e);if(i===null||t===null){return}const o=t.get(i);if(o!==undefined){s.innerHTML=o;s.classList.add("show")}});e.addEventListener("mouseout",()=>{s.classList.remove("show")})})})()}})(); @@ -1094,7 +1094,7 @@ offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/m offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/theme-colors.min.js"] = (()=>{return(e,r)=>{const t={red:"#e57373",pink:"#F06292",purple:"#BA68C8",deepPurple:"#9575CD",indigo:"#7986CB",blue:"#2196F3",lightBlue:"#00A0D8",cyan:"#00ACC1",teal:"#26A69A",green:"#81C784",lightGreen:"#9CCC65",orange:"#FF9800",deepOrange:"#FF7043",brown:"#A1887F",grey:"#757575",blueGrey:"#78909C"};class o{constructor(){this.reloadColor=(()=>{const e=document.querySelector("html");return function(r){const t=new ColorProcessor(r);const o=e=>t.rgbToString(t.hexToRgba(e));e.style.setProperty("--theme-color",r);for(let t=10;t<=90;t+=10){e.style.setProperty(`--theme-color-${t}`,o(r+t))}e.style.setProperty("--foreground-color",t.foreground);e.style.setProperty("--foreground-color-b",o(t.foreground+"b"));e.style.setProperty("--foreground-color-d",o(t.foreground+"d"));e.style.setProperty("--blue-image-filter",t.blueImageFilter);e.style.setProperty("--pink-image-filter",t.pinkImageFilter);e.style.setProperty("--brightness",t.brightness);e.style.setProperty("--invert-filter",t.filterInvert)}})()}setupDom(){const e=document.querySelector(`input[key='customStyleColor']`);e.addEventListener("change",()=>{this.reloadColor(e.value)});const r=document.querySelector(".predefined-colors-grid");for(const o of Object.values(t)){const t=document.createElement("div");r.insertAdjacentElement("beforeend",t);t.classList.add("predefined-colors-grid-block");t.style.background=o;t.setAttribute("data-color",o);t.addEventListener("click",r=>{const t=r.target.getAttribute("data-color");e.value=t;raiseEvent(e,"input");raiseEvent(e,"change")})}const o=document.querySelector(".predefined-colors");document.querySelector("div.custom-color-preview").addEventListener("click",()=>{o.classList.toggle("opened")})}}return{export:{ThemeColors:o}}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/title.min.js"] = (()=>{return(e,t)=>{function i(e=true){const t=document.title.replace("_番剧_bilibili_哔哩哔哩","").replace("_电影_bilibili_哔哩哔哩","").replace("_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili","").replace(" - 哔哩哔哩直播,二次元弹幕直播平台","").replace(/[\/\\:\*\?"<>\|]/g,"").trim();if(!e||document.URL.indexOf("/bangumi")!==-1){return t}else{const e=document.querySelector("#multi_page .cur-list>ul li.on a");if(e===null){return t}else{const i=e.getAttribute("title");return t+" - "+i}}}function l(e,t=true){const i=new Date;const l={title:document.title.replace(t?/:([^:]+?)_番剧_bilibili_哔哩哔哩/:"_番剧_bilibili_哔哩哔哩","").replace(t?/:([^:]+?)_电影_bilibili_哔哩哔哩/:"_电影_bilibili_哔哩哔哩","").replace(t?/:([^:]+?)_纪录片_bilibili_哔哩哔哩/:"_纪录片_bilibili_哔哩哔哩","").replace("_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili","").replace(/(.*?) - (.*?) - 哔哩哔哩直播,二次元弹幕直播平台/,"$1").trim(),ep:(()=>{if(!t){return null}const e=dq("#eplist_module li.cursor .ep-title");if(e!==null){return e.innerText}const i=document.querySelector("#multi_page .cur-list>ul li.on a");if(i!==null){return i.getAttribute("title")}return null})(),aid:unsafeWindow.aid,cid:unsafeWindow.cid,lid:document.URL.replace(/https:\/\/live\.bilibili\.com\/(\d+).*/,"$1"),y:i.getFullYear().toString(),M:(i.getMonth()+1).toString().padStart(2,"0"),d:i.getDate().toString().padStart(2,"0"),h:i.getHours().toString().padStart(2,"0"),m:i.getMinutes().toString().padStart(2,"0"),s:i.getSeconds().toString().padStart(2,"0"),ms:i.getMilliseconds().toString().substr(0,3)};const r=Object.keys(l).reduce((e,t)=>{return e.replace(new RegExp(`\\[([^\\[\\]]*?)${t}([^\\[\\]]*?)\\]`,"g"),l[t]?`$1${l[t]}$2`:"")},e);return r.replace(/[\/\\:\*\?"<>\|]/g,"")}function r(t=true){if(e.filenameFormat===undefined){return i(t)}return l(e.filenameFormat,t)}return{export:{getFriendlyTitle:r,formatTitle:l}}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/toast.min.css"] = `.toast-card-container{--card-min-width:240px;--card-min-width-negative:-240px;position:fixed;left:0;bottom:0;display:flex;flex-direction:column-reverse;align-items:start;padding-left:16px;z-index:100001;pointer-events:none;overflow:hidden;width:100%;height:100%;transition:.2s ease-out}.toast-card-container *{pointer-events:initial;transition:.2s ease-out}.toast-card.toast-card-container-enter,.toast-card.toast-card-container-leave-to{opacity:0;transform:translateX(var(--card-min-width-negative))}.toast-card{background:#fff;min-width:var(--card-min-width);max-width:60vw;min-height:96px;margin:8px 0;box-shadow:rgba(0,0,0,.2) 0 4px 8px 0;transform-origin:left;overflow:hidden;display:flex;flex-direction:column;border-left-style:solid;transition:.3s cubic-bezier(.18,.89,.32,1.28);position:relative;border-left-width:0;padding-left:var(--corner-radius);border-radius:var(--corner-radius)}.toast-card.toast-card-container-leave-active{position:absolute;transition:.3s cubic-bezier(.6,-.28,.74,.05)}.toast-card-header{display:flex;align-items:center}.toast-card-title{font-size:18px;color:#000;opacity:.5;margin:16px;font-weight:700;flex:1 1 auto}.toast-card-dismiss{height:24px;width:24px;flex:0 0 auto;padding:16px;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:.2s ease-out;transform-origin:center;opacity:.5;box-sizing:content-box}.toast-card-dismiss:hover{transform:scale(1.2)}.toast-card-dismiss:active{transform:scale(1.1)}.toast-card-message{color:#000;font-size:14px;margin:0 16px 16px;white-space:pre-wrap;display:flex;align-items:center;line-height:1.5}.toast-card.toast-default{border-left-color:#444}.toast-card.toast-error{border-left-color:#f44336}.toast-card.toast-info{border-left-color:#2196f3}.toast-card.toast-success{border-left-color:#8bc34a}.toast-card .toast-card-border{position:absolute;height:100%;width:4px;border-radius:var(--corner-radius);height:calc(100% - 10px);width:var(--corner-radius);top:5px;left:0}.toast-card.toast-default .toast-card-border{background-color:#444}.toast-card.toast-error .toast-card-border{background-color:#f44336}.toast-card.toast-info .toast-card-border{background-color:#2196f3}.toast-card.toast-success .toast-card-border{background-color:#8bc34a}.toast-card .link,.toast-card span{display:inline-block;padding:4px 6px;margin:0 2px;background-color:#8882;text-decoration:none;color:#000;transition:.2s ease-out;border-radius:var(--corner-radius)}.toast-card .link:hover{background-color:#8883}.toast-card .link:active{background-color:#8884}@keyframes loading{0%,100%{top:0;left:50%}25%{top:50%;left:100%}50%{top:100%;left:50%}75%{top:50%;left:0}}.toast-card .loading{width:14px;height:14px;display:inline-block;margin-right:14px;position:relative}.toast-card .loading::after{content:"";width:10px;height:10px;background-color:#8884;border-radius:50%;display:block;transform:translateX(-50%) translateY(-50%);position:absolute;top:0;left:50%;animation:1s cubic-bezier(.22,.61,.36,1) infinite loading}`; -offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/toast.min.js"] = (()=>{return(t,s)=>{var e;(function(t){t["Default"]="default";t["Info"]="info";t["Success"]="success";t["Error"]="error"})(e||(e={}));class a{constructor(t="",s="",a=e.Default){this.creationTime=new Date;this.type=a;this.message=t;this.title=s;this.duration=3e3}show(){r.cards.splice(0,0,this);if(this.duration!==undefined){setTimeout(()=>this.dismiss(),this.duration)}}dismiss(){if(r.cards.includes(this)){r.cards.splice(r.cards.indexOf(this),1)}}get element(){return dq(`.toast-card[key='${this.key}']`)}get key(){return this.creationTime.toISOString()}static get container(){return document.querySelector(".toast-card-container")}static createToastContainer(){if(!document.querySelector(".toast-card-container")){document.body.insertAdjacentHTML("beforeend",`\n \n \n `)}}static internalShow(t,s,e,r){const n=new a(t,s,r);n.duration=e;n.show();return n}static show(t,s,a){return this.internalShow(t,s,a,e.Default)}static info(t,s,a){return this.internalShow(t,s,a,e.Info)}static success(t,s,a){return this.internalShow(t,s,a,e.Success)}static error(t,s,a){return this.internalShow(t,s,a,e.Error)}}s.applyStyle("toastStyle");Vue.component("toast-card",{props:["card"],template:`\n
\n
\n
\n

{{card.title}}

\n
\n \n \n \n
\n
\n
\n
\n `});a.createToastContainer();const r=new Vue({el:".toast-card-container",data:{cards:[]}});return{export:a}}})(); +offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/toast.min.js"] = (()=>{return(t,s)=>{var a;(function(t){t["Default"]="default";t["Info"]="info";t["Success"]="success";t["Error"]="error"})(a||(a={}));let e;class r{constructor(t="",s="",e=a.Default){this.creationTime=new Date;this.type=e;this.message=t;this.title=s;this.duration=3e3}show(){r.containerVM.cards.splice(0,0,this);if(this.duration!==undefined){setTimeout(()=>this.dismiss(),this.duration)}}dismiss(){if(r.containerVM.cards.includes(this)){r.containerVM.cards.splice(r.containerVM.cards.indexOf(this),1)}}get element(){return dq(`.toast-card[key='${this.key}']`)}get key(){return this.creationTime.toISOString()}static get containerVM(){if(!e){r.createToastContainer()}return e}static createToastContainer(){if(!document.querySelector(".toast-card-container")){document.body.insertAdjacentHTML("beforeend",`\n \n \n `);e=new Vue({el:".toast-card-container",components:{"toast-card":{props:["card"],template:`\n
\n
\n
\n

{{card.title}}

\n
\n \n \n \n
\n
\n
\n
\n `}},data:{cards:[]}})}}static internalShow(t,s,a,e){const n=new r(t,s,e);n.duration=a;n.show();return n}static show(t,s,e){return this.internalShow(t,s,e,a.Default)}static info(t,s,e){return this.internalShow(t,s,e,a.Info)}static success(t,s,e){return this.internalShow(t,s,e,a.Success)}static error(t,s,e){return this.internalShow(t,s,e,a.Error)}}s.applyStyle("toastStyle");return{export:r}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/touch-navbar.min.js"] = (()=>{return(e,r)=>{SpinQuery.count(()=>document.querySelectorAll("ul.fr>li.nav-item:not(.profile-info), .nav-user-center .nav-item"),6,e=>{e.forEach(e=>{e.style.cursor="pointer";const r=e.querySelector("a.t");r.removeAttribute("href")})})}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/touch-player.min.css"] = `.touch-video-box-wrapper{display:flex;align-items:center;justify-content:center;width:100%;height:100%;position:absolute;top:0;left:0;z-index:14;pointer-events:none}.touch-video-box{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:rgba(0,0,0,.85);position:relative;max-width:520px;max-height:240px;border:4px solid transparent;transform-origin:center}.round-corner .touch-video-box{border-radius:var(--corner-radius)}.touch-video-box-wrapper.simple{align-items:flex-start}.touch-video-box.animation{transition:.2s cubic-bezier(.18,.89,.32,1.28)}.touch-video-info{color:#fff;font-size:2rem;text-align:center;display:flex;align-items:center;justify-content:center;flex-direction:column;height:100%;width:100%}.touch-row{flex-grow:1;display:flex;align-items:center;justify-content:center;width:100%}.touch-info{display:block;color:var(--theme-color)}.touch-result{display:block;font-size:1.5rem;line-height:150%}.touch-speed{display:block;background:rgba(0,0,0,.1);padding:.5em}.touch-progress{position:absolute;bottom:0;left:0;background:var(--theme-color);width:0;height:4px}.round-corner .touch-progress{border-radius:2px}.touch-row-item{flex:1 0 0;display:none;align-items:center;justify-content:center}.touch-row-item-wide{flex:1.5 0 0;display:flex;align-items:center;justify-content:center}.videoshot{background-color:transparent;background-image:none;transform-origin:center;transform:scale(.9)}.adjust-closed{opacity:0;transform:scale(.9)}.adjust-opened{opacity:1;transform:scale(1)}.touch-video-info.speed .touch-row-item{display:flex}.touch-video-info.cancel .touch-progress,.touch-video-info.cancel .touch-result{opacity:0}.disable-original-hover .bilibili-player-video-control-bottom,.disable-original-hover .bilibili-player-video-control-mask{opacity:0!important;visibility:hidden!important}.disable-original-hover .bilibili-player-video-control-wrap,.disable-original-hover.touch-video-control-show .bilibili-player-video-control-bottom,.disable-original-hover.touch-video-control-show .bilibili-player-video-control-mask{opacity:1!important;visibility:visible!important}.bilibili-player-video-control-top,.disable-original-hover .bilibili-player-video-control-top{left:0!important;right:0!important;bottom:0!important}.bilibili-player-video-control-top,.bilibili-player-video-progress-detail{bottom:0!important}.video-control-show .bilibili-player-video-progress-detail{bottom:36px!important}.disable-original-hover.touch-video-control-show .bilibili-player-video-control-top{left:0!important;right:0!important;bottom:38px!important}div.bilibili-player-video-control{height:38px!important;align-items:center!important}.bilibili-player-video-btn{flex-grow:1!important;height:100%!important;display:flex!important;align-items:center!important;justify-content:center!important}.bilibili-player-video-inputbar,.bilibili-player-video-progress{flex-grow:30!important}.bilibili-player-video-quality-menu{display:flex!important;align-items:center!important;justify-content:center!important}.bilibili-player-iconfont-color,.bilibili-player-iconfont-danmaku,.bilibili-player-iconfont-danmaku-off,.bilibili-player-iconfont-fullscreen,.bilibili-player-iconfont-pause,.bilibili-player-iconfont-repeat,.bilibili-player-iconfont-setting,.bilibili-player-iconfont-start,.bilibili-player-iconfont-volume,.bilibili-player-iconfont-volume-max,.bilibili-player-iconfont-volume-min,.bilibili-player-iconfont-web-fullscreen,.bilibili-player-iconfont-widescreen{font-size:2.5rem!important}.bilibili-player-iconfont-next{font-size:2rem!important}.bilibili-player-video-btn-setting-panel,.bilibili-player-video-danmaku-setting-wrap,.bilibili-player.mode-fullscreen .bilibili-player-video-sendbar,.bpui-selectmenu-list{left:unset!important;bottom:38px!important}.bilibili-player-video-volumebar-wrp{left:unset!important}.bilibili-player-video-control-wrap{padding:0!important}.bilibili-player-video-control-bottom{padding:0!important;align-items:center!important}.bilibili-player-iconfont-next,.bilibili-player-iconfont-setting,.bilibili-player-video-btn-volume.video-state-volume-max .bilibili-player-iconfont-volume-max,.bilibili-player-video-btn-volume.video-state-volume-min .bilibili-player-iconfont-volume-min,.bilibili-player-video-btn-volume:not(.video-state-volume-max):not(.video-state-volume-min) .bilibili-player-iconfont-volume,.bilibili-player-video-control-bottom-left{display:flex!important;align-items:center!important}.bilibili-player-video-btn-danmaku{flex-grow:0!important;display:flex!important;align-items:center!important;height:100%!important;margin:0!important;padding:0!important}.bilibili-player.mode-webfullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control-bottom-right{flex-grow:1!important}.bilibili-player.mode-fullscreen .bilibili-player-video-sendbar{bottom:0!important}.bilibili-player .bilibili-player-area .bilibili-player-video-control .bilibili-player-video-btn.bilibili-player-video-btn-fullscreen{margin-right:0!important;padding-right:8px!important}.bilibili-player .bilibili-player-area .bilibili-player-video-control .bilibili-player-video-btn.bilibili-player-video-btn-start{padding-left:8px!important;flex-grow:1.2!important;margin-right:0!important;margin-left:0!important}.bilibili-player .bilibili-player-area .bilibili-player-video-control .bilibili-player-video-btn{padding:0 3px!important}.bilibili-player .bilibili-player-area .bilibili-player-video-control-bottom,.bilibili-player .bilibili-player-area .bilibili-player-video-control-bottom-right,.bilibili-player-video-control-bottom-left{height:100%!important;margin:0!important}.bilibili-player-video-btn-setting-panel-hover-bridge{display:none!important}.disable-original-hover .bilibili-player-video-control-wrap:hover .bilibili-player-video-control-top .bilibili-player-video-progress-slider,.disable-original-hover.bilibili-player-area.video-control-show .bilibili-player-video-control-top .bilibili-player-video-progress-slider{height:2px!important}.disable-original-hover.bilibili-player-area .bilibili-player-video-control .bilibili-player-video-progress-detail.show{bottom:1px!important}.disable-original-hover.bilibili-player-area .subtitle-position.subtitle-position-bc,.disable-original-hover.bilibili-player-area .subtitle-position.subtitle-position-bl,.disable-original-hover.bilibili-player-area .subtitle-position.subtitle-position-br{bottom:20px!important}.disable-original-hover.touch-video-control-show .subtitle-position.subtitle-position-bc,.disable-original-hover.touch-video-control-show .subtitle-position.subtitle-position-bl,.disable-original-hover.touch-video-control-show .subtitle-position.subtitle-position-br{bottom:44px!important}.bilibili-player.mode-fullscreen .disable-original-hover.touch-video-control-show .subtitle-position.subtitle-position-bc,.bilibili-player.mode-fullscreen .disable-original-hover.touch-video-control-show .subtitle-position.subtitle-position-bl,.bilibili-player.mode-fullscreen .disable-original-hover.touch-video-control-show .subtitle-position.subtitle-position-br,.bilibili-player.mode-webfullscreen .disable-original-hover.touch-video-control-show .subtitle-position.subtitle-position-bc,.bilibili-player.mode-webfullscreen .disable-original-hover.touch-video-control-show .subtitle-position.subtitle-position-bl,.bilibili-player.mode-webfullscreen .disable-original-hover.touch-video-control-show .subtitle-position.subtitle-position-br{bottom:60px!important}.bilibili-player:not(.mode-webfullscreen):not(.mode-fullscreen) .bilibili-player-area:not(.disable-original-hover) .bilibili-player-video-control-wrap:hover .bilibili-player-video-control-top .bilibili-player-video-progress-slider,.bilibili-player:not(.mode-webfullscreen):not(.mode-fullscreen) .bilibili-player-area:not(.disable-original-hover).video-control-show .bilibili-player-video-control-top .bilibili-player-video-progress-slider{height:74px!important}.bilibili-player.mode-fullscreen .disable-original-hover .bilibili-player-video-control-top{opacity:1!important}#bofqi *{-webkit-tap-highlight-color:transparent!important}@media screen and (min-width:750px){.bilibili-player.mode-fullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control-bottom-center .bilibili-player-video-sendbar .bilibili-player-video-inputbar,.bilibili-player.mode-webfullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control-bottom-center .bilibili-player-video-sendbar .bilibili-player-video-inputbar{background:#fff1!important}.bilibili-player.mode-fullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control,.bilibili-player.mode-webfullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control{height:100%!important;margin:0!important}.bilibili-player.mode-fullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control-bottom,.bilibili-player.mode-webfullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control-bottom{margin:0!important}.bilibili-player.mode-fullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control-bottom-left,.bilibili-player.mode-webfullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control-bottom-left{height:100%!important}.bilibili-player-video-btn.bilibili-player-video-btn-start{flex-grow:.5!important}.player .bilibili-player.mode-fullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control-top,.player .bilibili-player.mode-webfullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control-top{left:0!important;right:0!important}.player .bilibili-player.mode-fullscreen .disable-original-hover.bilibili-player-video-control-wrap .bilibili-player-video-control-top,.player .bilibili-player.mode-webfullscreen .disable-original-hover.bilibili-player-video-control-wrap .bilibili-player-video-control-top{left:0!important;right:0!important;bottom:0!important}.player .bilibili-player.mode-fullscreen .disable-original-hover.touch-video-control-show .bilibili-player-video-control-top,.player .bilibili-player.mode-webfullscreen .disable-original-hover.touch-video-control-show .bilibili-player-video-control-top{left:0!important;right:0!important;bottom:54px!important}.mode-fullscreen .bilibili-player-area.mouse-hover:not(.disable-original-hover) .bilibili-player-video-control-top,.mode-fullscreen .bilibili-player-area.video-control-show:not(.disable-original-hover) .bilibili-player-video-control-top,.mode-webfullscreen .bilibili-player-area.mouse-hover:not(.disable-original-hover) .bilibili-player-video-control-top,.mode-webfullscreen .bilibili-player-area.video-control-show:not(.disable-original-hover) .bilibili-player-video-control-top{left:0!important;right:0!important;bottom:48px!important}}`; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/touch-player.min.js"] = (()=>{return(t,e)=>{const i=t=>{let e=0;let i=0;while(t&&!isNaN(t.offsetLeft)&&!isNaN(t.offsetTop)){e+=t.offsetLeft-t.scrollLeft;i+=t.offsetTop-t.scrollTop;t=t.offsetParent}return{x:e,y:i}};const s=t=>{t=Math.abs(t);const e=Math.floor(t/3600);const i=Math.floor((t-e*3600)/60);const s=t-e*3600-i*60;let o=fixed(s)+"秒";if(i>0){o=i+"分"+o}if(e>0){o=e+"时"+o}return o};const o=t=>{t=Math.abs(t);const e=Math.floor(t/3600);const i=Math.floor((t-e*3600)/60);const s=t-e*3600-i*60;let o=(s<10?"0":"")+fixed(s);o=(i<10?"0":"")+i+":"+o;o=(e<10?"0":"")+e+":"+o;return o};class n{constructor(t){this.action=new l(t);this.onTouchStart=null;this.onTouchEnd=null;this.direction=null;t.addEventListener("touchstart",t=>{this.xDown=t.touches[0].clientX;this.yDown=t.touches[0].clientY;if(this.onTouchStart){this.onTouchStart(t)}});t.addEventListener("touchmove",e=>{if(!this.xDown||!this.yDown){return}const s=e.touches[0].clientX;const o=e.touches[0].clientY;const n=i(t);const l={x:(e.touches[0].pageX-n.x)/t.clientWidth,y:(e.touches[0].pageY-n.y)/t.clientHeight,width:t.clientWidth,height:t.clientHeight};const a=this.xDown-s;const c=this.yDown-o;if(!this.direction){let t="";if(Math.abs(a)>Math.abs(c)){t="horizontal"}else{t="vertical"}this.direction=t}else{if(this.direction==="vertical"){this.action.startAction(this.direction,c,l)}else if(this.direction==="horizontal"){this.action.startAction(this.direction,-a,l)}}if(e.cancelable){e.preventDefault()}});t.addEventListener("touchend",t=>{this.xDown=null;this.yDown=null;this.direction=null;if(this.onTouchEnd){this.onTouchEnd(t)}})}}class l{constructor(t){this.lowSpeedForward=null;this.lowSpeedBackward=null;this.mediumSpeedForward=null;this.mediumSpeedBackward=null;this.highSpeedForward=null;this.highSpeedBackward=null;this.volumeUp=null;this.volumeDown=null;this.brightnessUp=null;this.brightnessDown=null;this.speedCancel=null;this.minSwipeDistance=20;this.onActionStart=null;this.onActionEnd=null;this.element=t;this.touchStart=false;this.startPosition=null;this.lastAction=null;t.addEventListener("touchstart",()=>{this.touchStart=true});t.addEventListener("touchend",()=>{this.startPosition=null;this.onActionEnd&&this.onActionEnd(this.lastAction);this.lastAction=null})}startAction(t,e,i){if(this.touchStart){this.onActionStart&&this.onActionStart(t);this.startPosition=i;this.touchStart=false}if(t==="vertical"){let t;let s;if(this.startPosition.x<1/2){t=this.brightnessUp;s=this.brightnessDown;const o=Math.round(200*(e-this.minSwipeDistance)/(1.5*i.height));if(e>0){t&&t(o)}else{s&&s(o)}this.lastAction={type:"brightness",brightness:o}}else{t=this.volumeUp;s=this.volumeDown;const o=Math.round(200*(e-this.minSwipeDistance)/(1.5*i.height));if(e>0){t&&t(o)}else{s&&s(o)}this.lastAction={type:"volume",volume:o}}}else if(t==="horizontal"){if(i.y<1/3&&(i.x<.1||i.x>.9)){this.speedCancel&&this.speedCancel();this.lastAction=null}else{let t=0;let i;let s;if(this.startPosition.y<1/3){t=.05;i=this.lowSpeedForward;s=this.lowSpeedBackward}else if(this.startPosition.y>=1/3&&this.startPosition.y<=2/3){t=.2;i=this.mediumSpeedForward;s=this.mediumSpeedBackward}else{t=1;i=this.highSpeedForward;s=this.highSpeedBackward}if(e>0){const s=(e-this.minSwipeDistance)*t;i&&i(s);this.lastAction={type:"playback",seconds:s}}else{const i=(e+this.minSwipeDistance)*t;s&&s(i);this.lastAction={type:"playback",seconds:i}}}}}}class a{constructor(){this.aid=unsafeWindow.aid;this.cid=unsafeWindow.cid;this.cidData=null;this.supportWebp=a.supportWebp}getVideoshot(t,e){if(!(this.aid&&this.cid)){return}if(!this.cidData){Ajax.getText(`https://api.bilibili.com/x/player/videoshot?aid=${this.aid}&cid=${this.cid}&index=1`).then(i=>{this.cidData=JSON.parse(i).data;this.getVideoshot(t,e)})}else{const i=this.cidData;const s=i.index;let o=0;for(let e=0;e=s[e]&&tt.replace(".jpg",".jpg@.webp"))}const l=parseInt(i.pv_x_len)||10;const a=parseInt(i.pv_y_len)||10;const c=parseInt(i.pv_x_size)||160;const r=parseInt(i.pv_y_size)||90;const h=-(o%100%l)*c;const d=-Math.floor(o%100/a)*r;e({width:c,height:r,backgroundImage:`url(${n[Math.floor(o/100)]})`,backgroundPosition:`${h}px ${d}px`})}}static get supportWebp(){try{const t=document.createElement("canvas");if(t.getContext&&t.getContext("2d")){try{return t.toDataURL("image/webp").indexOf("data:image/webp")===0}catch(t){return false}}else{return false}}catch(t){return false}}}function c(t){t.unbind("click")}function r(t){if($(".touch-video-box").length!==0){return}$(".bilibili-player-video-subtitle").before(`\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
`);let e=$("video");const i=e.prop("duration");const l=new n(t.get(0));const c=document.querySelector(".touch-video-info");const r=document.querySelector(".touch-video-box");let h=100;let d=Math.round(e.prop("volume")*100);const u=t=>{t/=100;if(t<0){t=0}else if(t>1){t=1}e.prop("volume",t);$(".bilibili-player-video-volume-num").text(Math.round(t*100));$(".bui-thumb").css("transform",`translateY(-${48*t}px)`);$(".bui-track-vertical .bui-bar").css("transform",`scaleY(${t})`);if(t===0){$(".bilibili-player-video-btn-volume").addClass("video-state-volume-min");$(".bilibili-player-video-btn-volume").removeClass("video-state-volume-max");e.prop("muted",true)}else if(t===1){$(".bilibili-player-video-btn-volume").removeClass("video-state-volume-min");$(".bilibili-player-video-btn-volume").addClass("video-state-volume-max");e.prop("muted",false)}else{$(".bilibili-player-video-btn-volume").removeClass("video-state-volume-min");$(".bilibili-player-video-btn-volume").removeClass("video-state-volume-max");e.prop("muted",false)}};l.action.onActionStart=(t=>{r.classList.add("adjust-opened");c.classList[t==="vertical"?"remove":"add"]("speed");e=$("video");d=Math.round(e.prop("volume")*100);const i=e.css("filter").match(/brightness\((.+)\)/);h=Math.trunc((i?i[1]:1)*100)});const p=new a;const v=t=>{return n=>{const l=e.prop("currentTime");const a=fixed(100*l/i);let r=l+n;let h=fixed(100*r/i);let d=n;if(r>i){r=i;h=100;d=i-l}else if(r<0){r=0;h=0;d=l}const u=`${o(l)} (${a}%)
👇
${o(r)} (${h}%)`;c.classList.remove("cancel");c.querySelector(".touch-speed").innerHTML=`${t}速`;c.querySelector(".touch-info").innerHTML=`进度: ${n>0?"+":"-"}${s(d)}`;c.querySelector(".touch-result").innerHTML=u;p.getVideoshot(r,t=>$(".videoshot").css(t));$(".touch-progress").css("width",`${h}%`)}};l.action.lowSpeedBackward=v("低");l.action.lowSpeedForward=v("低");l.action.mediumSpeedBackward=v("中");l.action.mediumSpeedForward=v("中");l.action.highSpeedBackward=v("高");l.action.highSpeedForward=v("高");const f=t=>{let e=d+t;let i=Math.abs(t);if(e>100){e=100;i=100-d}else if(e<0){e=0;i=d}const s=`${d} 👉 ${e}`;u(e);c.classList.remove("cancel");c.querySelector(".touch-info").innerHTML=`音量: ${t>0?"+":"-"}${i}`;c.querySelector(".touch-result").innerHTML=s;$(".touch-progress").css("width",`${e}%`)};l.action.volumeUp=f;l.action.volumeDown=f;const b=t=>{let i=h+t;let s=Math.abs(t);if(i>100){i=100;s=100-h}else if(i<0){i=0;s=h}const o=`${h} 👉 ${i}`;e.css("filter",`brightness(${i/100})`);c.classList.remove("cancel");c.querySelector(".touch-info").innerHTML=`亮度: ${t>0?"+":"-"}${s}`;c.querySelector(".touch-result").innerHTML=o;$(".touch-progress").css("width",`${i}%`)};l.action.brightnessUp=b;l.action.brightnessDown=b;l.action.speedCancel=(()=>{c.querySelector(".touch-info").innerHTML=`取消时间调整`;c.classList.add("cancel")});l.action.onActionEnd=(t=>{if(!unsafeWindow.touchPlayerDebug){if(t){if(t.type==="playback"){let s=e.prop("currentTime");s+=t.seconds;if(s<0){s=0}else if(s>i){s=i}e.prop("currentTime",s)}else if(t.type==="volume"){const t=JSON.parse(localStorage.bilibili_player_settings);t.video_status.volume=e.prop("volume");localStorage.bilibili_player_settings=JSON.stringify(t)}}r.classList.remove("adjust-opened")}})}function h(t){if(!t.hasClass("disable-original-hover")){t.addClass("disable-original-hover");const e=unsafeWindow.$(".bilibili-player-video");const i="touch-video-control-show";const s=e.data("events").click[0].handler;const o=new DoubleClickEvent(t=>s(t),()=>t.toggleClass(i));e.unbind("click");o.bind(e[0])}}const d=()=>{SpinQuery.any(()=>$(".bilibili-player-iconfont,.bilibili-player-video-quality-menu"),c);SpinQuery.condition(()=>$(".bilibili-player-video"),t=>t.length>0&&$("video").length>0&&$("video").prop("duration"),r);if(t.touchVideoPlayerDoubleTapControl){new SpinQuery(()=>$(".bilibili-player-area"),t=>t.length>0&&unsafeWindow.$&&unsafeWindow.$(".bilibili-player-video").data("events"),h).start()}};Observer.videoChange(d);e.applyStyle("touchPlayerStyle")}})(); diff --git a/bilibili-evolved.preview-offline.user.js b/bilibili-evolved.preview-offline.user.js index d87b13061..1ee8222bf 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 417.75 +// @version 418.15 // @description Bilibili Evolved 的预览离线版, 可以抢先体验新功能, 并且所有功能都已内置于脚本中. // @author Grant Howard, Coulomb-G // @copyright 2019, Grant Howard (https://github.com/the1812) & Coulomb-G (https://github.com/Coulomb-G) @@ -963,7 +963,7 @@ class ColorProcessor { const offlineData = {}; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/about.min.css"] = `.bilibili-evolved-about{height:100%;width:450px;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:16px 36px 0;margin-bottom:36px;display:flex;flex-direction:column;overflow:auto}.about-content .name{font-size:24pt;display:none;align-items:center}.about-content .name svg{width:100%}body.dark .about-content .name.dark,body:not(.dark) .about-content .name.light{display:flex}.about-content .version{font-size:10pt;font-weight:700;opacity:.6;margin-top:6px;margin-bottom:6px;align-self:center}.about-content .love{font-size:10pt;margin-bottom:24px;align-self:center}.about-content .love a{color:inherit!important}.about-content section{font-size:10pt;margin-top:16px}.about-content section .title{display:flex;justify-content:center;text-transform:uppercase;font-weight:700;font-size:13pt;letter-spacing:3px;margin:8px 0 16px}.about-content section .supporter,.about-content section a{color:var(--theme-color)!important;margin-right:8px;display:inline-flex}.about-content section .supporter{user-select:none}.about-content section .supporter:not(:last-child)::after,.about-content section a:not(:last-child)::after{content:","}@keyframes spinner{to{transform:translate(-50%,-50%) rotate(360deg)}}.about-content section.participants .fetching{margin-right:8px;position:relative;display:inline-flex}.about-content section.participants .fetching::before{content:"Loading..."}`; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/about.min.html"] = ``; -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 s=GM_info.script.name.match(/Bilibili Evolved \((.*)\)/);const a=s?s[1]:"Stable";new Vue({el:".bilibili-evolved-about",data:{version:t.currentVersion,clientType:a,logoImage:null,logoImageDark:null,branch:null,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),fetching:true,participants:[],websites:[{name:"GitHub",link:"https://github.com/the1812/Bilibili-Evolved/"},{name:"Greasy Fork",link:"https://greasyfork.org/zh-CN/scripts/373563-bilibili-evolved"}],components:[{name:"Vue.js",link:"https://cn.vuejs.org/index.html"},{name:"JSZip",link:"https://stuk.github.io/jszip/"},{name:"jQuery",link:"http://jquery.com/"},{name:"debounce",link:"https://github.com/component/debounce/"},{name:"Slip.js",link:"https://github.com/kornelski/slip"},{name:"MDI",link:"https://materialdesignicons.com"}]},mounted(){document.querySelector(".bilibili-evolved-about").addEventListener("be:about-load",()=>{this.init()},{once:true})},methods:{async getLogos(){this.logoImage=await Ajax.getText(`https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/images/bilibili-evolved-wide.svg`);this.logoImageDark=await Ajax.getText(`https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/images/bilibili-evolved-wide-dark.svg`)},async init(){this.branch=/Preview|Local/.test(a)?"preview":"master";this.getLogos();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}`).catch(()=>{e=[{name:"电波无法到达(´・_・`)",link:null}]});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);this.fetching=false}}})})()}})(); +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);document.querySelector(".bilibili-evolved-about").addEventListener("be:about-load",()=>{const e=(t,e)=>t.charCodeAt(0)-e.charCodeAt(0);const i=(t,i)=>e(t.name,i.name);const o=GM_info.script.name.match(/Bilibili Evolved \((.*)\)/);const n=o?o[1]:"Stable";new Vue({el:".bilibili-evolved-about",data:{version:t.currentVersion,clientType:n,logoImage:null,logoImageDark:null,branch:null,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(i),fetching:true,participants:[],websites:[{name:"GitHub",link:"https://github.com/the1812/Bilibili-Evolved/"},{name:"Greasy Fork",link:"https://greasyfork.org/zh-CN/scripts/373563-bilibili-evolved"}],components:[{name:"Vue.js",link:"https://cn.vuejs.org/index.html"},{name:"JSZip",link:"https://stuk.github.io/jszip/"},{name:"jQuery",link:"http://jquery.com/"},{name:"debounce",link:"https://github.com/component/debounce/"},{name:"Slip.js",link:"https://github.com/kornelski/slip"},{name:"MDI",link:"https://materialdesignicons.com"}]},mounted(){this.init()},methods:{async getLogos(){this.logoImage=await Ajax.getText(`https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/images/bilibili-evolved-wide.svg`);this.logoImageDark=await Ajax.getText(`https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/images/bilibili-evolved-wide-dark.svg`)},async init(){this.branch=/Preview|Local/.test(n)?"preview":"master";this.getLogos();const t=new Set;let e=[];let o=1;do{e=await Ajax.getJson(`https://api.github.com/repos/the1812/Bilibili-Evolved/issues?state=all&direction=asc&per_page=100&page=${o}`).catch(()=>{e=[{name:"电波无法到达(´・_・`)",link:null}]});o++;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(i);this.fetching=false}}})},{once:true})})()}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/aria2-rpc.min.js"] = (()=>{return(t,e)=>{function o(){const e=t.aria2RpcOption;const o=e.host.match(/^http[s]?:\/\//)?e.host:"http://"+e.host;const r="aria2.addUri";return{option:e,host:o,methodName:r}}async function r(t,e=false){try{let o=await t();if(typeof o==="string"){o=JSON.parse(o)}if(o.error!==undefined){if(o.error.code===1){logError(`请求遭到拒绝, 请检查您的密钥相关设置.`)}else{logError(`请求发生错误, code = ${o.error.code}, message = ${o.error.message}`)}return false}if(!e){Toast.success(`成功发送了请求, GID = ${o.result}`,"aria2 RPC",5e3)}return true}catch(t){logError(`无法连接到RPC主机.`);return false}}async function s(t,e=false){const{option:s,host:n,methodName:a}=o();return await r(async()=>{const e=window.btoa(unescape(encodeURIComponent(JSON.stringify(t.params))));const o=`${n}:${s.port}/jsonrpc?method=${a}&id=${t.id}¶ms=${e}`;console.log(`RPC request:`,o);if(o.startsWith("http:")){return await new Promise((t,e)=>{GM_xmlhttpRequest({method:"GET",url:o,responseType:"json",onload:e=>t(e.response),onerror:t=>e(t)})})}else{return await Ajax.getJson(o)}},e)}async function n(t,e=false){const{option:s,host:n,methodName:a}=o();return await r(async()=>{const e=`${n}:${s.port}/jsonrpc`;const o={method:a,id:t.id,params:t.params};if(e.startsWith("http:")){return await new Promise((t,r)=>{GM_xmlhttpRequest({method:"POST",url:e,responseType:"json",data:JSON.stringify(o),onload:e=>t(e.response),onerror:t=>r(t)})})}else{return await Ajax.postJson(e,o)}},e)}async function a(e,o=false){const r=t.aria2RpcOption;for(const t of e){let e;if(r.method==="get"){e=await s(t,o)}else{e=await n(t,o)}if(o===true&&e===false){logError(`${decodeURIComponent(t.id)} 导出失败`)}}}return{export:{sendRpc:a}}}})(); 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-draw.min.js"] = (()=>{return(t,n)=>{(async()=>{if(!/^https:\/\/live\.bilibili\.com\/[\d]+/.test(document.URL)){return}const t=await SpinQuery.condition(()=>dq(".chat-popups-section"),t=>t.querySelector("chat-draw-area")===null);if(!t){console.warn("[自动领奖] 未能找到弹窗容器");return}Observer.childListSubtree(t,()=>{let t;console.log("draw button = ",dq(".chat-popups-section .draw>span:nth-child(3)"));t=dq(".chat-popups-section .draw>span:nth-child(3)");if(t===null){const t=dq(".chat-popups-section .function-bar>span:nth-child(3)");if(t!==null){const n=Observer.attributes(t,()=>{if(t.style.display!=="none"){n.forEach(t=>t.stop());t.click()}})}}if(t!==null){t.click()}})})()}})(); @@ -1020,7 +1020,7 @@ offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/m offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/full-tweets-title.min.js"] = (()=>{return(t,n)=>{const i=`\n.dynamic-m .info {\n height: auto !important;\n}\n.dynamic-m .info a {\n white-space: normal !important;\n}\n.custom-navbar .video-activity-card .title {\n display: block !important;\n max-height: unset !important;\n}\n.custom-navbar .video-activity-card .cover {\n height: unset !important;\n}\n`;return n.toggleStyle(i,"full-tweets-title")}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/gui-settings.min.css"] = `.gui-settings-icon-panel{height:auto;display:flex;flex-direction:column;justify-content:center;align-items:center;position:fixed;top:calc(50% + var(--side-bar-offset));left:0;width:32px;z-index:99999;transform:translateY(-50%);user-select:none}.gui-settings-icon-panel i{transition:.2s;opacity:.6;transform:rotate(360deg);font-size:12px}.gui-settings-widgets:hover i,.gui-settings:hover i{opacity:.75;transform:rotate(0)}.gui-settings,.gui-settings-widgets{display:flex;justify-content:center;align-items:center;cursor:pointer;-webkit-tap-highlight-color:transparent;margin:16px 0;width:24px;height:24px;transition:.2s;opacity:1;transform-origin:center!important;transform:translateX(-16px);background-color:#dddc;border-radius:0 50% 50% 0;padding:6px;box-sizing:content-box}body.dark .gui-settings,body.dark .gui-settings-widgets{background-color:rgba(0,0,0,.3)}.gui-settings-widgets:hover,.gui-settings:hover{opacity:1;transform:translateX(0)}.gui-settings-footer,.gui-settings-header{flex-grow:0;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;z-index:10;padding:32px}.gui-settings-footer{height:80px;justify-content:center;position:relative}.gui-settings-content{flex-grow:1;overflow:auto;position:relative;overscroll-behavior:contain}.gui-settings-content ul{padding:0;margin:0}.gui-settings-content ul li{font-size:16px;margin-bottom:18px;display:flex;height:24px;transition:.2s;box-sizing:content-box}.gui-settings-content ul li.disabled,.gui-settings-content ul li:not(.category).folded{height:0;margin:0;overflow:hidden}.gui-settings-content ul li.indent-0{margin-left:16px}.gui-settings-content ul li.indent-1{margin-left:80px}.gui-settings-content ul li.indent-2{margin-left:144px}.gui-settings-content ul li.indent-center{align-items:center;justify-content:center}.gui-settings-content ul li.category{padding:16px 0;margin-bottom:18px;border-top:1px dashed #8884;border-bottom:1px dashed #8884;background:#fff;position:-webkit-sticky;position:sticky;top:0;z-index:101;cursor:pointer;transition:.2s ease-out;-webkit-tap-highlight-color:transparent}.gui-settings-content ul li.category.folded{margin-bottom:-1px}.gui-settings-content ul li.category *{opacity:.8}.gui-settings-title{font-size:16pt;flex:0 0 auto}.gui-settings-box .gui-settings-title{margin-right:64px}.gui-settings-search[type=text]{flex:1 0 auto;height:auto;border:none;padding:6px;font-size:12pt;width:40%;border-bottom:1px solid #8884;transition:.2s;color:inherit;background:0 0;box-sizing:border-box;outline:0!important}.gui-settings-close{width:24px;height:24px;padding:16px}.gui-settings-header .gui-settings-close{cursor:pointer;-webkit-tap-highlight-color:transparent}.gui-settings-textbox-container{display:flex;justify-content:center;align-items:center;-webkit-tap-highlight-color:transparent}.gui-settings-dropdown-span,.gui-settings-textbox-container span{margin:0 16px;transition:.2s}.gui-settings-textbox-container input{border:none;height:100%;max-width:90px;padding:4px 8px;background:#8884;transition:.2s;font-size:16px}.gui-settings-textbox-container input:disabled,.gui-settings-textbox-container.disabled div,.gui-settings-textbox-container.disabled span{opacity:.5}.gui-settings-checkbox-container{cursor:pointer;display:flex;width:100%;justify-content:start;align-items:center;padding:0 16px;-webkit-tap-highlight-color:transparent}.gui-settings-checkbox-container input{visibility:collapse;transition:.2s;width:0;position:absolute}.gui-settings-checkbox-container .gui-settings-ok{width:24px;height:24px;margin-right:16px;transition:.2s}.gui-settings-checkbox-container input~.gui-settings-ok{background-color:#8884}.gui-settings-checkbox-container input:checked~.gui-settings-ok{background-color:var(--theme-color)}.gui-settings-checkbox-container input~.gui-settings-ok>i{opacity:0;transform-origin:center;transform:scale(.9)}.gui-settings-checkbox-container input:checked~.gui-settings-ok>i{opacity:1}.gui-settings-checkbox-container input:disabled~.gui-settings-ok,.gui-settings-checkbox-container input:disabled~span{opacity:.5}button.gui-settings-button{padding:6px 20px;margin:0 4px;max-height:34px;border:none;background:#8884;font-size:16px;cursor:pointer;transition:.2s ease-out;font-family:inherit;-webkit-tap-highlight-color:transparent}button.gui-settings-button:hover{opacity:.9}button.gui-settings-button:active{opacity:.8}button.gui-settings-button:focus{outline:0}.custom-color-preview{width:28px;height:28px;border-radius:50%;background:var(--theme-color);margin-right:16px;position:relative;cursor:pointer;box-sizing:border-box;box-shadow:0 2px 4px 0 var(--theme-color-40)}.predefined-colors{transition:.2s;display:flex;opacity:0;background:#fff;width:168px;height:168px;position:absolute;box-shadow:rgba(0,0,0,.2) 0 4px 8px 0;top:32px;left:calc(-84px + 50%);transform:scale(0);transform-origin:top;z-index:9}.predefined-colors.opened{opacity:1;transform:scale(1)}.predefined-colors-grid{display:grid;grid-template-columns:auto auto auto auto;margin:0;flex-grow:1}.predefined-colors-grid-block{width:100%;height:100%;justify-self:center;align-self:center;cursor:pointer;transform-origin:center;transition:.1s ease-out}.predefined-colors-grid-block:hover{transform:scale(1.1);box-shadow:0 0 8px 1px #0004}input[key]:focus{outline:0}input[type=text][key]{height:auto;border:none}.gui-settings-label{margin:0 16px;font-size:16px}.hidden{display:none!important}@supports (backdrop-filter:blur(24px)) or (-webkit-backdrop-filter:blur(24px)){.gui-settings-box.blur li.category{-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);background:0 0}.gui-settings-box.blur,.gui-settings-box.blur .gui-settings-content,.gui-settings-box.blur .gui-settings-footer,.gui-settings-box.blur .gui-settings-header{background:#fff8}.gui-settings-box.blur .gui-settings-content,.gui-settings-box.blur .gui-settings-footer,.gui-settings-box.blur .gui-settings-header{-webkit-backdrop-filter:blur(64px);backdrop-filter:blur(64px)}}li.category i.icon-arrow{transition:.2s ease-out}li.category.folded i.icon-arrow{transform:rotate(180deg)}.gui-settings-dropdown-container{display:flex;align-items:center}.gui-settings-dropdown{position:relative;cursor:pointer;-webkit-tap-highlight-color:transparent;background-color:#8884;display:inline-flex;align-items:center;height:32px}.gui-settings-dropdown>i{transition:.2s ease-out;transform-origin:center;transform:rotate(180deg)}.gui-settings-dropdown>ul{position:absolute;top:calc(100%);width:100%;cursor:pointer;background:#fff;transform-origin:top;transform:scaleY(0);transition:.2s cubic-bezier(.6,-.28,.74,.05);display:flex;flex-direction:column;align-items:center;box-shadow:rgba(0,0,0,.2) 0 4px 8px 0;z-index:100}.gui-settings-dropdown ul li{margin:0;padding:8px 0;height:auto;width:100%;justify-content:center}.gui-settings-dropdown ul li:hover{background:rgba(0,0,0,.16)}.gui-settings-dropdown.opened>ul{transform:scaleY(1);transition-timing-function:cubic-bezier(.18,.89,.32,1.28)}.gui-settings-dropdown.opened>i{transform:rotate(0)}.gui-settings-dropdown input{cursor:pointer;border:none;height:100%;max-width:80px;padding:4px 8px;transition:.2s;font-size:16px;background-color:transparent}.gui-settings-dropdown input[key=defaultPlayerMode]{max-width:120px}.gui-settings-dropdown input[key=defaultBangumiLayout],.gui-settings-dropdown input[key=defaultPlayerLayout],.gui-settings-dropdown input[key=defaultVideoSpeed]{max-width:50px}.gui-settings-box input[key=filenameFormat]{max-width:500px}.gui-settings-mask{height:calc(100% + 5px);width:calc(100% + 5px);opacity:0;background:#000a;position:fixed;top:0;left:0;z-index:99999;pointer-events:none;transition:.3s cubic-bezier(0,.86,.58,1);overscroll-behavior:contain}.gui-settings-mask.opened{opacity:1;pointer-events:initial}.gui-settings-mask.opened.transparent{opacity:0;transition:.3s cubic-bezier(0,.86,.58,1) .3s}.gui-settings-box,.gui-settings-widgets-box{height:100%;width:420px;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:none;flex-direction:column;box-shadow:4px 0 16px 0 #0000}.gui-settings-box.loaded,.gui-settings-widgets-box.loaded{display:flex}.gui-settings-widgets-box{min-width:200px;width:auto}.gui-settings-box.opened,.gui-settings-widgets-box.opened{transform:translateX(0);box-shadow:4px 0 16px 0 #0005}.gui-settings-widgets-box>.title{margin:32px;font-size:16pt}.gui-settings-widgets-box>.widgets-container{padding:32px;display:flex;flex-direction:column;align-items:start;justify-content:start;position:relative;overscroll-behavior:contain;overflow:auto;height:100%}.gui-settings-widgets-box>.widgets-container .empty-tip{font-size:10pt;display:none}.gui-settings-widgets-box>.widgets-container .empty-tip.show{display:block}.gui-settings-widgets-box>.gui-settings-header{justify-content:start}.gui-settings-flat-button,.gui-settings-flat-button a,.gui-settings-flat-button a:hover{display:flex;align-items:center;justify-content:center;color:inherit}.gui-settings-flat-button{width:auto;padding:8px 16px;background:#8882;border:none;color:#000;cursor:pointer;transition:.2s ease-out;font-size:10pt;flex:0 0 auto;margin:4px;border-radius:20px;box-shadow:#0004 0 2px 4px;height:40px;box-sizing:border-box;-webkit-tap-highlight-color:transparent!important}.gui-settings-flat-button:disabled{opacity:.5;cursor:not-allowed}.gui-settings-flat-button:hover:not(:disabled){background:#8884}.gui-settings-flat-button:active:not(:disabled){border-bottom-color:var(--theme-color)}.gui-settings-flat-button:focus{outline:0}.gui-settings-flat-button i{margin-right:8px;line-height:24px;height:24px}.gui-settings-checkbox{width:28px;margin-right:24px;height:12px;background:#8884;border-radius:16px;position:relative}.gui-settings-checkbox::after{content:"";width:20px;height:20px;background:#c6c6c6;position:absolute;border-radius:50%;top:-4px;left:-4px;box-shadow:0 2px 4px 0 #0003;transition:.2s ease-out}.gui-settings-checkbox-container input:checked~.gui-settings-checkbox{background:var(--theme-color-80)}.gui-settings-checkbox-container input:checked~.gui-settings-checkbox::after{background:var(--theme-color)!important;box-shadow:0 2px 4px 0 var(--theme-color-40);left:calc(100% - 16px)}.gui-settings-checkbox-container input:disabled~.gui-settings-checkbox{opacity:.5}.gui-settings-header>i{margin-right:8px}.player-full-win .app-content,.player-full-win .live-room-app .app-content,.player-mode-webfullscreen .player-module{z-index:100000!important}.gui-settings-flat-button .popup{position:absolute;top:calc(100% + 2px);transition:.2s cubic-bezier(.6,-.28,.74,.05);transform-origin:top;transform:scaleY(0) translateX(-50%);left:50%;background:#fff;box-shadow:rgba(0,0,0,.2) 0 4px 8px 0;z-index:200;display:flex;flex-direction:column;align-items:center;width:max-content}.gui-settings-flat-button .popup *{transition:.2s}.gui-settings-flat-button .popup.opened{transform:scaleY(1) translateX(-50%);transition-timing-function:cubic-bezier(.18,.89,.32,1.28)}.gui-settings-flat-button .popup ul{list-style:none;margin:0;padding:0}.gui-settings-box kbd{padding:0 4px;border-radius:4px;border:1px solid #ccc;color:#ccc;border-bottom-width:3px;margin:0 4px}body.round-corner{--corner-radius:4px;--large-corner-radius:8px}.round-corner .gui-settings-box li i.downloading,.round-corner .gui-settings-dropdown,.round-corner .gui-settings-dropdown ul li,.round-corner .gui-settings-dropdown>ul,.round-corner .gui-settings-flat-button .popup,.round-corner .gui-settings-textbox-container input{border-radius:var(--corner-radius)}.gui-settings-box li i.downloading{margin-left:8px;font-style:normal;display:flex;align-items:center;font-size:14px;background:var(--theme-color);color:var(--foreground-color);padding:2px 8px}`; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/gui-settings.min.html"] = `
附加功能
空空如也哦 = ̄ω ̄=
设置
  • 视频
  • 样式
  • 工具
  • 触摸
  • 其他
`; -offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/gui-settings.min.js"] = (()=>{return(e,t)=>{const{ThemeColors:n}=t.import("theme-colors");const{SettingsSearch:i}=t.import("settings-search");const{Validator:s}=t.import("text-validate");let o=[];let c=[];let r=[];function l(e){let t=e.nextElementSibling;const n=[];while(t!==null&&!t.classList.contains("category")){n.push(t);t=t.nextElementSibling}return n}function a(){r.forEach(t=>t.value=e[t.getAttribute("key")]);c.forEach(t=>t.checked=e[t.getAttribute("key")])}function d(){document.querySelector(".gui-settings-mask").addEventListener("click",()=>{document.querySelectorAll(".gui-settings-widgets-box,.gui-settings-box,.gui-settings-mask,.bilibili-evolved-about").forEach(e=>e.classList.remove("opened"))});r.forEach(t=>{t.setAttribute("placeholder",e[t.getAttribute("key")])});document.querySelectorAll(".gui-settings-content ul li.category").forEach(e=>{e.addEventListener("click",e=>{const t=document.querySelector(".gui-settings-search");if(t.value!==""){t.value="";raiseEvent(t,"input")}e.currentTarget.classList.toggle("folded");l(e.currentTarget).forEach(e=>e.classList.toggle("folded"))})});document.querySelectorAll(".gui-settings-dropdown>input").forEach(e=>{e.addEventListener("click",e=>{e.currentTarget.parentElement.classList.toggle("opened")})})}function u(){c.forEach(t=>{t.addEventListener("change",()=>{const n=t.getAttribute("key");const i=t.checked;e[n]=i})});r.forEach(t=>{t.addEventListener("change",()=>{const n=t.getAttribute("key");const i=s.getValidator(n).validate(t.value);e[n]=i;t.value=i})})}function g(){const e=o.map(e=>[e.getAttribute("dependencies").split(" ").map(e=>o.find(t=>t.getAttribute("key")===e)),e]);const t=e=>e.nodeName.toUpperCase()==="LI"?e:t(e.parentElement);e.forEach(([e,n])=>{if(e[0]===undefined){return}const i=()=>{if(e.every(e=>e.checked)){t(n).classList.remove("disabled")}else{t(n).classList.add("disabled")}};e.forEach(e=>e.addEventListener("change",i));i()})}function f(){if(typeof offlineData!=="undefined"){}}function p(){if(!CSS.supports("backdrop-filter","blur(24px)")&&!CSS.supports("-webkit-backdrop-filter","blur(24px)")){o.find(e=>e.getAttribute("key")==="blurVideoControl").disabled=true;e.blurVideoControl=false}if(window.devicePixelRatio===1){o.find(e=>e.getAttribute("key")==="harunaScale").disabled=true;o.find(e=>e.getAttribute("key")==="imageResolution").disabled=true;e.harunaScale=false;e.imageResolution=false}}function b(){for(const[e,t]of Object.entries(Resource.displayNames)){const n=o.find(t=>t.getAttribute("key")===e);if(!n){continue}switch(n.type){case"checkbox":n.nextElementSibling.nextElementSibling.innerHTML=t;break;case"text":const e=n.parentElement;if(e.classList.contains("gui-settings-textbox-container")){n.previousElementSibling.innerHTML=t}else if(e.classList.contains("gui-settings-dropdown")){e.previousElementSibling.innerHTML=t}break;default:break}}}(async()=>{t.applyStyle("guiSettingsStyle");t.applyImportantStyle("iconsStyle");document.body.classList.add("round-corner");const e=document.body&&unsafeWindow.parent.window!==unsafeWindow;if(e){document.querySelector(".gui-settings-icon-panel").style.display="none"}const s=t.data.guiSettingsHtml.text;document.body.insertAdjacentHTML("beforeend",s);const{style:l}=await t.importAsync("mdi");if(!l){document.body.insertAdjacentHTML("afterbegin",``)}t.applyDropdownOptions();const m=document.querySelector(".widgets-container");const y=m.querySelector(".empty-tip");Observer.childList(m,()=>{if(m.childElementCount<=1){y.classList.add("show")}else{y.classList.remove("show")}});(new n).setupDom();const h=document.querySelectorAll(".gui-settings-widgets-box,.gui-settings-box");const E=document.querySelector(".gui-settings-icon-panel");E.addEventListener("mouseover",()=>{raiseEvent(E,"be:load");h.forEach(e=>e.classList.add("loaded"));o=[...document.querySelectorAll("input[key]")];c=o.filter(e=>e.type==="checkbox");r=o.filter(e=>e.type==="text"&&!e.parentElement.classList.contains("gui-settings-dropdown"));d();f();a();g();u();p();b();new i},{once:true})})()}})(); +offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/gui-settings.min.js"] = (()=>{return(e,t)=>{const{ThemeColors:n}=t.import("theme-colors");const{SettingsSearch:i}=t.import("settings-search");const{Validator:s}=t.import("text-validate");let o=[];let r=[];let c=[];function l(e){let t=e.nextElementSibling;const n=[];while(t!==null&&!t.classList.contains("category")){n.push(t);t=t.nextElementSibling}return n}function a(){c.forEach(t=>t.value=e[t.getAttribute("key")]);r.forEach(t=>t.checked=e[t.getAttribute("key")])}function d(){document.querySelector(".gui-settings-mask").addEventListener("click",()=>{document.querySelectorAll(".gui-settings-widgets-box,.gui-settings-box,.gui-settings-mask,.bilibili-evolved-about").forEach(e=>e.classList.remove("opened"))});c.forEach(t=>{t.setAttribute("placeholder",e[t.getAttribute("key")])});document.querySelectorAll(".gui-settings-content ul li.category").forEach(e=>{e.addEventListener("click",e=>{const t=document.querySelector(".gui-settings-search");if(t.value!==""){t.value="";raiseEvent(t,"input")}e.currentTarget.classList.toggle("folded");l(e.currentTarget).forEach(e=>e.classList.toggle("folded"))})});document.querySelectorAll(".gui-settings-dropdown>input").forEach(e=>{e.addEventListener("click",e=>{e.currentTarget.parentElement.classList.toggle("opened")})})}function u(){r.forEach(t=>{t.addEventListener("change",()=>{const n=t.getAttribute("key");const i=t.checked;e[n]=i})});c.forEach(t=>{t.addEventListener("change",()=>{const n=t.getAttribute("key");const i=s.getValidator(n).validate(t.value);e[n]=i;t.value=i})})}function g(){const e=o.map(e=>[e.getAttribute("dependencies").split(" ").map(e=>o.find(t=>t.getAttribute("key")===e)),e]);const t=e=>e.nodeName.toUpperCase()==="LI"?e:t(e.parentElement);e.forEach(([e,n])=>{if(e[0]===undefined){return}const i=()=>{if(e.every(e=>e.checked)){t(n).classList.remove("disabled")}else{t(n).classList.add("disabled")}};e.forEach(e=>e.addEventListener("change",i));i()})}function f(){if(typeof offlineData!=="undefined"){}}function b(){if(!CSS.supports("backdrop-filter","blur(24px)")&&!CSS.supports("-webkit-backdrop-filter","blur(24px)")){o.find(e=>e.getAttribute("key")==="blurVideoControl").disabled=true;e.blurVideoControl=false}if(window.devicePixelRatio===1){o.find(e=>e.getAttribute("key")==="harunaScale").disabled=true;o.find(e=>e.getAttribute("key")==="imageResolution").disabled=true;e.harunaScale=false;e.imageResolution=false}}function p(){for(const[e,t]of Object.entries(Resource.displayNames)){const n=o.find(t=>t.getAttribute("key")===e);if(!n){continue}switch(n.type){case"checkbox":n.nextElementSibling.nextElementSibling.innerHTML=t;break;case"text":const e=n.parentElement;if(e.classList.contains("gui-settings-textbox-container")){n.previousElementSibling.innerHTML=t}else if(e.classList.contains("gui-settings-dropdown")){e.previousElementSibling.innerHTML=t}break;default:break}}}(async()=>{t.applyStyle("guiSettingsStyle");t.applyImportantStyle("iconsStyle");document.body.classList.add("round-corner");const e=document.body&&unsafeWindow.parent.window!==unsafeWindow;if(e){document.querySelector(".gui-settings-icon-panel").style.display="none"}const s=t.data.guiSettingsHtml.text;document.body.insertAdjacentHTML("beforeend",s);const{style:l}=await t.importAsync("mdi");if(!l){document.body.insertAdjacentHTML("afterbegin",``)}t.applyDropdownOptions();const m=document.querySelector(".widgets-container");const y=m.querySelector(".empty-tip");Observer.childList(m,()=>{if(m.childElementCount<=1){y.classList.add("show")}else{y.classList.remove("show")}});(new n).setupDom();const h=document.querySelectorAll(".gui-settings-widgets-box,.gui-settings-box");const E=document.querySelector(".gui-settings-icon-panel");E.addEventListener("mouseover",()=>{raiseEvent(E,"be:load");raiseEvent(dq(".bilibili-evolved-about"),"be:about-load");h.forEach(e=>e.classList.add("loaded"));o=[...document.querySelectorAll("input[key]")];r=o.filter(e=>e.type==="checkbox");c=o.filter(e=>e.type==="text"&&!e.parentElement.classList.contains("gui-settings-dropdown"));d();f();a();g();u();b();p();new i},{once:true})})()}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/haruna-scale.min.js"] = (()=>{return(n,e)=>{const t="haruna-scale";const a=()=>{if(document.getElementById(t)===null){e.applyStyleFromText(`\n .haruna-ctnr,\n .avatar-btn\n {\n transform: scale(${1/window.devicePixelRatio}) !important;\n }\n `,t)}};a();return{reload:a,unload:()=>{const n=document.getElementById(t);n&&n.remove()}}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/hide-bangumi-reviews.min.js"] = (()=>{return(e,n)=>{return n.toggleStyle(`\n #review_module { display: none !important; }\n `,`hide-bangumi-reviews-style`)}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/hide-banner.min.css"] = `#banner_link,.custom-navbar .blur-layer,.z-top-container.has-banner>.header{display:none!important}.b-header-mask-wrp .b-header-mask-bg,div.blur-bg{opacity:0!important}`; @@ -1067,12 +1067,12 @@ offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/m offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/remove-top-mask.min.js"] = (()=>{return(e,t)=>{const o=`.bilibili-player-video-top { display: none !important; }`;const n="remove-top-mask-style";const l=()=>t.applyStyleFromText(``);const r=()=>{const e=document.getElementById(n);if(e){e.remove()}};l();return{reload:l,unload:r}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/remove-watermark.min.js"] = (()=>{return(e,n)=>{const t="remove-live-watermark";const l=()=>{if(document.getElementById(t)===null){n.applyStyleFromText(`\n .bilibili-live-player-video-logo\n {\n display: none !important;\n }\n `,t)}};l();return{reload:l,unload:()=>{const e=document.getElementById(t);e&&e.remove()}}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/screenshot.min.css"] = `.video-take-screenshot{padding:0 4px 0 12px;height:100%;cursor:pointer;display:none!important}.video-take-screenshot.touch{padding:0 6px 0 10px;margin-left:12px}.bilibili-player-video-control-bottom .video-take-screenshot{display:flex!important}.video-take-screenshot.touch span{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.video-take-screenshot i{font-size:20px;color:#fff;transform:scale(1);opacity:.9;transition:.4s cubic-bezier(.18,.89,.32,1.28);display:block}.bilibili-player.mode-fullscreen .video-take-screenshot i,.bilibili-player.mode-webfullscreen .video-take-screenshot i{font-size:24px}.video-take-screenshot:hover i{transform:scale(1.05);opacity:1}.video-take-screenshot:active i{transform:scale(.95);opacity:1}.video-screenshot-container{position:relative;--screenshot-width:240px;--screenshot-width-negative:calc(0px - var(--screenshot-width));--screenshot-height:135px;--thumbnail-margin-vertical:12px;--thumbnail-margin-horizontal:24px;--screenshot-list-width:calc(2 * var(--thumbnail-margin-horizontal) + var(--screenshot-width))}.video-screenshot-batch{position:fixed;bottom:0;right:0;z-index:20000;display:flex;width:var(--screenshot-list-width);align-items:center;justify-content:space-evenly}.video-screenshot-batch button{background:#000c;color:#fff;border:none;border-radius:10px 10px 0 0;font-size:12pt;cursor:pointer;outline:0!important;padding:8px 12px;display:flex;justify-content:center;align-items:center}.video-screenshot-batch button i{font-size:14pt;margin-right:4px}.video-screenshot-container,.video-screenshot-container *{transition:.2s ease-out}.video-screenshot-list{position:fixed;top:0;right:0;z-index:20000;padding:var(--thumbnail-margin-vertical) 0;pointer-events:none;height:calc(100% - 2 * var(--thumbnail-margin-vertical) - 48px);width:var(--screenshot-list-width);overflow:auto}.video-screenshot-list *{pointer-events:initial}.video-screenshot-list-enter{opacity:0;transform:translateX(var(--screenshot-width-negative))}.video-screenshot-list-leave-to{opacity:0;transform:translateX(var(--screenshot-width))}.video-screenshot-thumbnail img{max-width:var(--screenshot-width);max-height:var(--screenshot-height);display:block;background-color:#000}.video-screenshot-thumbnail{margin:var(--thumbnail-margin-vertical) var(--thumbnail-margin-horizontal);position:relative;transition:.35s cubic-bezier(.18,.89,.32,1.28);width:var(--screenshot-width);height:var(--screenshot-height);background-color:#000;display:flex;justify-content:center;align-items:center}@keyframes spinner{to{transform:translate(-50%,-50%) rotate(360deg)}}.video-screenshot-thumbnail .loading::before{content:"";box-sizing:border-box;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(0);width:24px;height:24px;border-radius:50%;border:3px solid #8888;border-top-color:var(--theme-color);animation:.6s linear infinite spinner}.video-screenshot-thumbnail.video-screenshot-list-leave-active{position:absolute;transition:.35s cubic-bezier(.6,-.28,.74,.05)}.video-screenshot-thumbnail .mask{position:absolute;opacity:0;top:0;left:0;width:100%;height:100%;background:#0008;display:flex;justify-content:space-around;align-items:center;transition:none;pointer-events:none}.video-screenshot-thumbnail:hover .mask{opacity:1}.video-screenshot-thumbnail .mask .time{color:#fff;position:absolute;bottom:0;left:4px;font-size:10pt}.video-screenshot-thumbnail .mask button{background:#000a;color:#fff;border:none;border-radius:50%;font-size:24pt;cursor:pointer;width:48px;height:48px;pointer-events:initial;outline:0!important}`; -offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/screenshot.min.js"] = (()=>{return(e,t)=>{const{getFriendlyTitle:i}=t.import("title");const n=document.createElement("canvas");class s{constructor(e,t,i=false){this.url="";this.timeStamp=(new Date).getTime();this.withDanmaku=false;this.video=e;this.videoTime=t;this.withDanmaku=i;this.createUrl()}async createUrl(){n.width=this.video.videoWidth;n.height=this.video.videoHeight;const e=n.getContext("2d");if(e===null){logError("视频截图失败: canvas 未创建或创建失败.");return}e.drawImage(this.video,0,0);if(this.withDanmaku){const t=dq("canvas.bilibili-player-video-danmaku");if(t!==null){e.drawImage(t,0,0,this.video.videoWidth,this.video.videoHeight)}}n.toBlob(e=>{if(e===null){logError("视频截图失败: 创建 blob 失败.");return}this.blob=e;this.url=URL.createObjectURL(e)},"image/png")}get filename(){return`${i()} @${this.time.replace(/:/g,"-")} ${this.timeStamp.toString()}.png`}get id(){return this.videoTime.toString()+this.timeStamp.toString()}get time(){const e=Math.trunc(this.videoTime/3600).toString();const t=Math.trunc(this.videoTime/60).toString();const i=(this.videoTime%60).toFixed(2);if(e==="0"){return`${t.padStart(2,"0")}:${i.padStart(5,"0")}`}return`${e}:${t.padStart(2,"0")}:${i.padStart(5,"0")}`}revoke(){URL.revokeObjectURL(this.url)}}const o=(e,t=false)=>{const i=e.currentTime;return new s(e,i,t)};t.applyStyle("videoScreenshotStyle");document.body.insertAdjacentHTML("beforeend",`\n
\n \n \n \n
\n \n \n \n
\n
\n`);Vue.component("video-screenshot",{props:{objectUrl:String,filename:String,time:String},template:`\n
\n \n
\n \n \n \n {{time}}\n
\n
\n
\n
\n `,methods:{discard(){this.$emit("discard")},save(){this.$el.querySelector(".link").click();this.discard()}}});const r=new Vue({el:".video-screenshot-container",data:{screenshots:[],batchFilename:i()+".zip"},methods:{discard(e){this.screenshots.splice(this.screenshots.indexOf(e),1);e.revoke()},async saveAll(){const e=new JSZip;this.screenshots.forEach(t=>{e.file(t.filename,t.blob,{date:new Date(t.timeStamp)})});const t=await e.generateAsync({type:"blob"});const i=this.$el.querySelector(".batch-link");i.href=URL.createObjectURL(t);i.click();URL.revokeObjectURL(i.href);i.href="";this.discardAll()},discardAll(){this.screenshots.forEach(e=>e.revoke());this.screenshots=[]}},computed:{showBatch(){return this.screenshots.length>=2}}});const c=`\n
\n \n
`;Observer.videoChange(async()=>{const t=await SpinQuery.select("#bofqi video");if(t===null){return}const i=await SpinQuery.select(".bilibili-player-video-time");if(i===null||document.querySelector(".video-take-screenshot")){return}i.insertAdjacentHTML("afterend",c);const n=document.querySelector(".video-take-screenshot");n.addEventListener("click",async e=>{const t=await SpinQuery.select("#bofqi video");const i=o(t,e.shiftKey);r.screenshots.unshift(i)});document.addEventListener("keydown",e=>{if(document.activeElement&&["input","textarea"].includes(document.activeElement.nodeName.toLowerCase())){return}if(e.ctrlKey&&e.altKey&&e.key.toLowerCase()==="c"){e.stopPropagation();e.preventDefault();n.click()}});if(e.touchVideoPlayer){document.querySelectorAll(".video-take-screenshot").forEach(e=>e.classList.add("touch"))}});return{export:{takeScreenshot:o,screenShotsList:r},unload:()=>document.querySelectorAll(".bilibili-player-video-control-bottom .video-take-screenshot,.video-screenshot-container").forEach(e=>e.setAttribute("style","display: none !important")),reload:()=>document.querySelectorAll(".bilibili-player-video-control-bottom .video-take-screenshot,.video-screenshot-container").forEach(e=>e.setAttribute("style","display: flex !important"))}}})(); +offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/screenshot.min.js"] = (()=>{return(e,t)=>{const{getFriendlyTitle:i}=t.import("title");const n=document.createElement("canvas");class s{constructor(e,t,i=false){this.url="";this.timeStamp=(new Date).getTime();this.withDanmaku=false;this.video=e;this.videoTime=t;this.withDanmaku=i;this.createUrl()}async createUrl(){n.width=this.video.videoWidth;n.height=this.video.videoHeight;const e=n.getContext("2d");if(e===null){logError("视频截图失败: canvas 未创建或创建失败.");return}e.drawImage(this.video,0,0);if(this.withDanmaku){const t=dq("canvas.bilibili-player-video-danmaku");if(t!==null){e.drawImage(t,0,0,this.video.videoWidth,this.video.videoHeight)}}n.toBlob(e=>{if(e===null){logError("视频截图失败: 创建 blob 失败.");return}this.blob=e;this.url=URL.createObjectURL(e)},"image/png")}get filename(){return`${i()} @${this.time.replace(/:/g,"-")} ${this.timeStamp.toString()}.png`}get id(){return this.videoTime.toString()+this.timeStamp.toString()}get time(){const e=Math.trunc(this.videoTime/3600).toString();const t=Math.trunc(this.videoTime/60).toString();const i=(this.videoTime%60).toFixed(2);if(e==="0"){return`${t.padStart(2,"0")}:${i.padStart(5,"0")}`}return`${e}:${t.padStart(2,"0")}:${i.padStart(5,"0")}`}revoke(){URL.revokeObjectURL(this.url)}}const o=(e,t=false)=>{const i=e.currentTime;return new s(e,i,t)};let r={screenshots:[]};Observer.videoChange(async()=>{if(!dq(".video-screenshot-container")){t.applyStyle("videoScreenshotStyle");document.body.insertAdjacentHTML("beforeend",`\n
\n \n \n \n
\n \n \n \n
\n
\n `);Vue.component("video-screenshot",{props:{objectUrl:String,filename:String,time:String},template:`\n
\n \n
\n \n \n \n {{time}}\n
\n
\n
\n
\n `,methods:{discard(){this.$emit("discard")},save(){this.$el.querySelector(".link").click();this.discard()}}});r=new Vue({el:".video-screenshot-container",data:{screenshots:[],batchFilename:i()+".zip"},methods:{discard(e){this.screenshots.splice(this.screenshots.indexOf(e),1);e.revoke()},async saveAll(){const e=new JSZip;this.screenshots.forEach(t=>{e.file(t.filename,t.blob,{date:new Date(t.timeStamp)})});const t=await e.generateAsync({type:"blob"});const i=this.$el.querySelector(".batch-link");i.href=URL.createObjectURL(t);i.click();URL.revokeObjectURL(i.href);i.href="";this.discardAll()},discardAll(){this.screenshots.forEach(e=>e.revoke());this.screenshots=[]}},computed:{showBatch(){return this.screenshots.length>=2}}})}const n=await SpinQuery.select("#bofqi video");if(n===null){return}const s=await SpinQuery.select(".bilibili-player-video-time");if(s===null||document.querySelector(".video-take-screenshot")){return}const c=`\n
\n \n
`;s.insertAdjacentHTML("afterend",c);const a=document.querySelector(".video-take-screenshot");a.addEventListener("click",async e=>{const t=await SpinQuery.select("#bofqi video");const i=o(t,e.shiftKey);r.screenshots.unshift(i)});document.addEventListener("keydown",e=>{if(document.activeElement&&["input","textarea"].includes(document.activeElement.nodeName.toLowerCase())){return}if(e.ctrlKey&&e.altKey&&e.key.toLowerCase()==="c"){e.stopPropagation();e.preventDefault();a.click()}});if(e.touchVideoPlayer){document.querySelectorAll(".video-take-screenshot").forEach(e=>e.classList.add("touch"))}});return{export:{takeScreenshot:o,screenShotsList:r},unload:()=>document.querySelectorAll(".bilibili-player-video-control-bottom .video-take-screenshot,.video-screenshot-container").forEach(e=>e.setAttribute("style","display: none !important")),reload:()=>document.querySelectorAll(".bilibili-player-video-control-bottom .video-take-screenshot,.video-screenshot-container").forEach(e=>e.setAttribute("style","display: flex !important"))}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/scrollbar.min.css"] = `::-webkit-scrollbar{width:5px!important;height:5px!important}::-webkit-scrollbar-corner,::-webkit-scrollbar-track{background:0 0!important}::-webkit-resizer,::-webkit-scrollbar-thumb{background:#aaa}::-webkit-scrollbar-thumb:hover{background:#888}*{scrollbar-color:#aaa transparent;scrollbar-width:thin!important}`; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/search.vue.min.js"] = (()=>{return(e,t)=>{const r=``;return{export:Object.assign({template:r},{})}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/seeds-to-coins.min.js"] = (()=>{return(s,e)=>{const t=`https://api.live.bilibili.com/pay/v1/Exchange/silver2coin`;return{widget:{content:`\n \n \n 瓜子换硬币\n `,success:()=>{const s=async()=>{const s=await Ajax.getJsonWithCredentials(t);if(s.code!==0){Toast.info(s.message,"瓜子换硬币",3e3)}else{Toast.success(`${s.message}\n剩余银瓜子:${s.data.silver}`,"瓜子换硬币",3e3)}};const e=dq("#seeds-to-coins");e.addEventListener("click",async()=>{try{e.disabled=true;await s()}finally{e.disabled=false}})}}}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/settings-search.min.js"] = (()=>{return(t,e)=>{class s{constructor(){this.input=document.querySelector(".gui-settings-search");const t=[...document.querySelectorAll(".gui-settings-content>ul>li")];const e=t=>e=>e.classList.contains("category")===t;this.categories=t.filter(e(true));this.items=t.filter(e(false));this.importToolTips().then(()=>this.input.addEventListener("input",()=>this.keywordChange()))}async importToolTips(){if(typeof getI18nKey==="undefined"){console.error("请更新脚本后再使用设置搜索功能.");return}const{toolTips:t}=await e.importAsync(`settings-tooltip.${getI18nKey()}`);this.toolTips=t}keywordChange(){const t=this.input.value.trim();if(!t){this.categories.concat(this.items).forEach(t=>t.classList.add("folded"));return}this.items.forEach(e=>{const s=e.querySelector("input").getAttribute("key");const i=this.toolTips.get(s);let o=Resource.displayNames[s];if(i!==undefined){o+=i.replace(/<.*>|<\/.*>/g,"")}if(o.includes(t)){e.classList.remove("folded");const t=e.getAttribute("data-dependencies");if(t!==undefined){t.split(" ").forEach(t=>{const e=this.items.find(e=>e.getAttribute("data-key")===t);if(e!==undefined){e.classList.remove("folded")}})}}else{e.classList.add("folded")}});this.foldCategories()}foldCategories(){for(const e of this.categories){function t(){let t=e.nextElementSibling;while(t!==null&&!t.classList.contains("category")){if(!t.classList.contains("folded")){return"remove"}t=t.nextElementSibling}return"add"}e.classList[t()]("folded")}}}return{export:{SettingsSearch:s}}}})(); -offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/settings-side-bar.min.js"] = (()=>{return(e,t)=>{if(document.querySelector(".gui-settings-icon-panel")===null){document.body.insertAdjacentHTML("beforeend",`\n
\n
\n \n
\n
\n \n
\n
`);dq(".gui-settings").addEventListener("click",e=>{if(e.shiftKey===false){dqa(".gui-settings-box,.gui-settings-mask").forEach(e=>e.classList.add("opened"))}else{dqa(".bilibili-evolved-about,.gui-settings-mask").forEach(e=>e.classList.add("opened"));raiseEvent(document.querySelector(".bilibili-evolved-about"),"be:about-load")}});dq(".gui-settings-widgets").addEventListener("click",e=>{if(e.shiftKey===false){dqa(".gui-settings-widgets-box,.gui-settings-mask").forEach(e=>e.classList.add("opened"))}else{debugger}});const e=dq(".gui-settings-icon-panel .gui-settings-widgets>i");const t=dq(".gui-settings-icon-panel .gui-settings>i");let i=false;let s=false;const n=()=>{t.classList.remove("icon-info");t.classList.add("icon-settings");t.parentElement.title="设置";e.classList.remove("icon-time");e.classList.add("icon-widgets");e.parentElement.title="附加功能";i=false;s=false};const d=()=>{t.classList.remove("icon-settings");t.classList.add("icon-info");t.parentElement.title="关于";e.classList.remove("icon-widgets");e.classList.add("icon-time");e.parentElement.title="「ザ・ワールド」";if(!i){document.body.addEventListener("keyup",n,{once:true});i=true}if(!s){window.addEventListener("blur",n,{once:true});s=true}};document.body.addEventListener("keydown",e=>{if(document.activeElement&&["input","textarea"].includes(document.activeElement.nodeName.toLowerCase())){return}if(e.shiftKey===true){d()}})}const i=(t=e.sideBarOffset)=>{document.body.style.setProperty("--side-bar-offset",t+"%")};addSettingsListener("sideBarOffset",i);i()}})(); +offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/settings-side-bar.min.js"] = (()=>{return(e,t)=>{if(document.querySelector(".gui-settings-icon-panel")===null){document.body.insertAdjacentHTML("beforeend",`\n
\n
\n \n
\n
\n \n
\n
`);dq(".gui-settings").addEventListener("click",e=>{if(e.shiftKey===false){dqa(".gui-settings-box,.gui-settings-mask").forEach(e=>e.classList.add("opened"))}else{dqa(".bilibili-evolved-about,.gui-settings-mask").forEach(e=>e.classList.add("opened"))}});dq(".gui-settings-widgets").addEventListener("click",e=>{if(e.shiftKey===false){dqa(".gui-settings-widgets-box,.gui-settings-mask").forEach(e=>e.classList.add("opened"))}else{debugger}});const e=dq(".gui-settings-icon-panel .gui-settings-widgets>i");const t=dq(".gui-settings-icon-panel .gui-settings>i");let s=false;let i=false;const n=()=>{t.classList.remove("icon-info");t.classList.add("icon-settings");t.parentElement.title="设置";e.classList.remove("icon-time");e.classList.add("icon-widgets");e.parentElement.title="附加功能";s=false;i=false};const d=()=>{t.classList.remove("icon-settings");t.classList.add("icon-info");t.parentElement.title="关于";e.classList.remove("icon-widgets");e.classList.add("icon-time");e.parentElement.title="「ザ・ワールド」";if(!s){document.body.addEventListener("keyup",n,{once:true});s=true}if(!i){window.addEventListener("blur",n,{once:true});i=true}};document.body.addEventListener("keydown",e=>{if(document.activeElement&&["input","textarea"].includes(document.activeElement.nodeName.toLowerCase())){return}if(e.shiftKey===true){d()}})}const s=(t=e.sideBarOffset)=>{document.body.style.setProperty("--side-bar-offset",t+"%")};addSettingsListener("sideBarOffset",s);s()}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/settings-tooltip.en-US.min.js"] = (()=>{return(e,o)=>{const t=new Map([["useDefaultPlayerMode",`Set the default player mode. Could be Normal, Widescreen, Web fullscreen or Fullscreen.`],["defaultPlayerMode",`Select the default player mode.`],["applyPlayerModeOnPlay",`Apply mode on video play instead of page load.`],["useDefaultPlayerLayout",`Set the default player layout.\n- Old: The legacy layout\n- New: The default new layout\nWarning: Some features won't work on old layout.`],["defaultPlayerLayout",`Video player layout`],["defaultBangumiLayout",`Bangumi player layout`],["useDefaultVideoQuality",`Auto select the specified video quality. If the highest quality of video in lower than your choice, the highest quality will be used.`],["defaultVideoQuality","Select the default video quality."],["autoLightOff",`Auto turn off the light when video starts playing, and turn on the light after complete.`],["useDefaultDanmakuSettings",`Set the default settings about danmakus.`],["enableDanmaku",`Disable this if you want to turn off danmakus by default.`],["rememberDanmakuSettings",`Remember the "Prevent blocking subtitles" and "Smart danmaku mask" settings. If you change these settings on player, every video will apply these settings by default.`],["expandDanmakuList",`Auto expand the danmaku list.`],["autoPlay",`Auto start playing video on page load.`],["autoContinue",`If playback history exists, auto continue from it.`],["skipChargeList",`Skip charge acknowledgements on the end of some videos.`],["framePlayback",`Append 2 buttons to the right of video time to seek video by frame. Support keyboard shortcut Shift+/. (Old layout can only use keyboard shortcut)`],["playerFocus",`Auto scroll to the player when you enter the page.`],["playerFocusOffset",`Set the scroll offset. (in px unit)`],["customStyleColor",`Set the theme color for custom navbar, dark mode and more. Click the color circle to choose from 16 predefined colors, or input any valid hex color in textbox. (#rrggbb or #rgb)`],["useDarkStyle",`Dark style looks much better at night, and will widely apply theme color.`],["darkSchedule",`Schedule the dark mode time.`],["compactLayout",`Use compact layout for homepage, reduce margin and remove rounded corner of video cards, use vector icons in categories.`],["useCommentStyle",`- Remove "Follow" button on hot comments\n- Remove the level badge of user\n- Remove the platform info (like From Android client)\n- Move post time to upper right.\n- Use vector icons\nTip: You can still access the removed "Follow" and level badge by hovering on their avatars.`],["simplifyLiveroom",`- Hide master icon\n- Hide fan badge\n- Hide event title\n- Hide user level\n- Hide captain icon\n- Hide global notice\n- Hide welcome message (xxx master entered room)\n- Hide lottery draw notifications\n- Disable room skin\nTip: Every item can be toggled individually in Add-ons.`],["blurVideoControl",`Use background blur effect for video controls.`],["customControlBackground",`Use a filled black rectangle as background of video controls instead of the original shadow effect.`],["customControlBackgroundOpacity",`Set the opacity of rectangle`],["harunaScale",`Make live room showgirl DPI-aware.`],["removeLiveWatermark",`Remove the watermark of live stream`],["removeVideoTopMask",`Remove the top mask of videos`],["removeAds",`Remove all ads. including slideshow ads, mobile app ads and video ads.`],["watchLaterRedirect",`Redirects all watchlater videos to the normal video page in order to use new layout.`],["favoritesRedirect",`Redirects all videos in favorites from favorites playlist to the individual video page.`],["hideTopSearch",`Use "Search" in place of search recommendations.`],["fullTweetsTitle",`Always expand full title in the activities peek in navbar.`],["fullPageTitle",`Always expand full title of video episodes. (Not work for bangumi)`],["biliplusRedirect",`Append "Jump to BiliPlus" button to Add-ons.`],["imageResolution",`Request hi-resolution images by your screen DPI. But also cause longer loading time.`],["oldTweets",`Replace activities link by the old version, and you can switch between new and old versions in Add-ons.`],["touchNavBar",`Allow to tap on a navbar item to view its popup info, instead of open the top-level link.`],["comboLike",`Allow long press the like button to perform a combo like.`],["touchVideoPlayer",`Increase margin of video control buttons for better touch experience. And enable touch gestures:\n- Left/Right slide to seek\n- Up/Down slide to adjust volume\n- Cancel a gesture on upper left/right corner\n- Slide on different position to use different sensibility.`],["touchVideoPlayerAnimation",`Use experimental animations for touch gestures, but may cause frame drops.`],["touchVideoPlayerDoubleTapControl",`Enable double-tap control: single tap to view/hide control bar, double tap to pause/resume.`],["toast",`Show toasts on the lower left corner of page, including update notifications and error display.`],["toastInternalError",`Show internal error messages, which may be helpful when reporting a bug.`],["useCache",`Use cache to increase load speed of this userscript.`],["outerWatchlater",`Move watchlater button from menu to outside.`],["i18n",`[Experimental] Provides UI translation for some common words.`],["i18nLanguage",`Set the target language.`],["customNavbar",`Enable custom navbar to replace the legacy one. New navbars in live/photos/shop are not affected.`],["customNavbarFill",`Use theme color to fill the navbar.`],["allNavbarFill",`Fill theme color to all navbars, including live/photos/shop.`],["customNavbarShadow",`Drop shadow for custom navbar.`],["customNavbarCompact",`Use compact layout for custom navbar, provides smaller margins and use ... for long titles.`],["customNavbarBlur",`If top banner exists, use background blur effect.`],["playerShadow",`Use theme color shadow for player.`],["narrowDanmaku",`Force preserve danmaku input in web fullscreen mode. May cause buttons on the right out of screen.`],["hideOldEntry",`Hide "Back to old" buttons in new layout.`],["hideBanner",`Hide top banner.`],["allowJumpContinue",`Allow jump to episodes different from current.`],["hideBangumiReviews",`Hide reviews on bangumi page.`],["videoScreenshot",`Append screenshot button to the right of video time. Support keyboard shortcut Ctrl+Alt+C. (Old layout can only use keyboard shortcut)`],["filenameFormat",`Customize the filename format used by Download danmaku, Download video, Video screenshot, View cover.\nThere are a few variables:\n- title: Video title / Live room title\n- ep: Episode title\n- aid: AV ID\n- cid: CID (The unique ID of video, as AV ID may contains multiple episodes)\n- lid: Live room ID\n- y/M/d: Year / Month / Day of month\n- h/m/s/ms: Hour / Minute / Second / Millisecond\n\nThe default format is [title][ - ep], representing video title and episode title. If episode title not exists, only video title is used.\n\nPut your variables inside square brackets, other contents inside brackets (like " - " in "[ - ep]") will only appear when the variable exists. For instance, if the format is [title] - [ep]. Even there's no episode title, that " - " will still appear in filename (which is meaningless). So in default format, when episode title not exists, " - " will also disappear.\n\nA more specific example: To use a "video title + AV ID + time" format, we can use [title][ AVaid] [y]-[M]-[d] [h]-[m]-[s]. And get filenames like "xxxx AV23333 2019-05-29 19-59-44".`],["noLiveAutoplay",`Disable autoplay on live homepage.`],["hideHomeLive",`Hide recommended live rooms on live homepage.`],["sideBarOffset",`Set vertical offset of side bar (in percent). Valid range: -40% ~ 40%.`],["hideCategory",`Hide category bar on main site, you can select category from Home in navbar.`],["foldComment",`Append a "Fold comments" button on the bottom of page when viewing comments in activities. Then you can quickly fold comments without scrolling up.`],["showDeadVideoTitle",`Retrieve title and cover of dead videos in your space`],["useBiliplusRedirect",`Jump to BiliPlus for dead videos.`],["deadVideoTitleProvider",`Select dead video info provider: Watchlater is stable but takes some time, BiliPlus runs fast but it's not implemented yet.`],["useDefaultVideoSpeed",`Set the default video playback rate.`],["defaultVideoSpeed",`Select the default playback rate.`],["seedsToCoins",`Append a Seeds to coins button, click to convert 700 silver seeds to 1 coin, up to one time per day.`],["autoDraw",`Auto click draw button when there're drawing events in live room.`],["keymap",`Enable more keyboard shortcuts for video player:\n- w Web fullscreen\n- t Wide screen / Theater mode\n- r Toggle repeat\n- m Toggle mute\n- d Toggle danmakus\n- l Like\n- c Coin\n- s Favorite\n- Shift + / Playback Speed Adjust`],["doubleClickFullscreen",`Allow double click the player to toggle fullscreen, please note that this feature will not work if 播放器触摸支持 - 启用双击控制 is also enabled.`]]);return{export:{toolTips:t}}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/settings-tooltip.ja-JP.min.js"] = (()=>{return(a,n)=>{const e=new Map([["useDefaultPlayerLayout",`デフォルト・プレーヤー・レイアウトを設定する. できるだけ、適切なページに設定(例えば、番組の放送ページに番組プレーヤーのレイアウトを設定する)、そうでない場合は効果がない可能性があります.\n- 旧版: 伝統的なレイアウト\n- 新版: 動画ページに黙認の新版レイアウト\n注意: 伝統的なレイアウトでは、多くのスクリプト機能が適用されない.`],["defaultPlayerLayout",`動画プレーヤーのレイアウトを設定する.`],["defaultBangumiLayout",`番組プレーヤーのレイアウトを設定する.`],["useDefaultPlayerMode",`デフォルト・プレーヤー・モードが使用するかどうかを制御する、 例えば常规宽屏网页全屏全屏.`],["defaultPlayerMode",`デフォルト・プレーヤー・モードが設定する.`],["applyPlayerModeOnPlay",`再生時にモードを適用する、「いいえ」を選択すると、再生が開始されていないときに適用されます.`],["autoLightOff",`初回放送時には、自動的に消灯モードに入り、再生終了後に自動的に点灯します.`],["useDefaultVideoQuality",`動画を開くときに指定された画質を自動的に選択する. 映像の最高画質が選択された画質より低ければ、映像の最高画質を使用する.`],["defaultVideoQuality",`自動的に選択された映像画質を設定する.`],["useDefaultDanmakuSettings",`デフォルトで弾幕を開くかどうかを設定する.そして、「防挡字幕」と「智能防挡弹幕」を覚えておくかどうかを設定できる.`],["enableDanmaku",`弾幕がデフォルトで開くかどうかを制御する.`],["rememberDanmakuSettings",`弾幕ブロックの設定を覚えるかどうかを制御する、「防挡字幕」と「智能防挡弹幕」を含まれています.これらの設定を動画制御欄で変更すると、すべでの動画にデフォルトでこれらの設定が使用されます.`],["expandDanmakuList",`新版レイアウトでは、他のおすすめ動画が表示されるようにデフォルトで弾幕リストが折りたたまれています.この機能を有効にすると、動画が読み込まれるたびに弾幕リストが自動的に展開されます.`],["expandDescription",`長すぎる動画概要欄はデフォルトで折りたたまれています、この機能を有効にすると完全な動画概要欄が強制的に展開されます.`],["autoContinue",`動画再生時に視聴履歴が検出されると(前回の见た...情報)、自動的に対応する時間に再生される.`],["allowJumpContinue",`履歴のセット数が現在開いているページと矛盾している場合でも、自動的にジャンプします.`],["autoPlay",`動画ページに入ると、自動的に動画の再生が開始されます.`],["skipChargeList",`エンディングの「充电鸣谢」を自動スキップ.`],["framePlayback",`プレーヤーの時間に右側に2つのボタンが追加されました.動画の時間を細かく調整するために使用される. キーボードショートカットに対応しますShift+/. (伝統的なレイアウトでキーボードショートカットのみ使用でき、ボタンは表示されません)`],["videoScreenshot",`プレーヤーの時間に右側に1つのボタンが追加されました.動画スクリーンショットを使用されます. キーボードショートカットに対応しますCtrl+Alt+C. (伝統的なレイアウトでキーボードショートカットのみ使用でき、ボタンは表示されません)`],["playerFocus",`動画/番組の放送ページに入る時、プレーヤーに自動的に移動する.`],["playerFocusOffset",`移動時の垂直オフセット、単位はピクセル(px).`],["outerWatchlater",`動画放送ページの稍后再看を外に移動します.`],["keymap",`動画プレーヤーのためにより多くのショートカットを有効にします:\n- w ウェブの全画面\n- t ワイドモード\n- r サイクル放送\n- m 消音\n- d 弾幕スイッチ\n- l いいね\n- c コインを投げる\n- s お気に入り\n- Shift + / 再生速度を調整する.`],["doubleClickFullscreen",`ダブルクリックして全画面に切り替えることができます.ご注意ください播放器触摸支持 - 启用双击控制と共に使用できない.`],["customStyleColor",`頂欄(スタイルの調整が有効な場合)とダークテーマのテーマ色で埋める、カラープレビューサークルをクリックして、设定の16種類のテーマカラーにできるの、右側のテキストボックスに任意の有効な16進数のカラー値を直接入力することもできます.(#rrggbb#rgb).`],["blurBackgroundOpacity",`设置顶栏对横幅的透明度(0~1), 数值越高顶栏越淡, 当横幅关闭时此选项无效.`],["customNavbar",`カスタム頂欄を使用する.伝統的な頂欄に取って代わる.メインステーション専用です.「生放送」、「アルバム」、「会員購」などには影響しません.`],["customNavbarFill",`テーマ色で頂欄を埋める.`],["allNavbarFill",`テーマ色で他の頂欄を埋める.「生放送」、「アルバム」、「会員購」などが含まれています.`],["customNavbarShadow",`頂欄に投影効果を追加する.`],["customNavbarCompact",`トップページにコンパクトなレイアウトを使する.コンパクトなレイアウトはより小さなスペースを使用し、そして動画のタイトルが長すぎる場合に後者の部分を省略するための 「...」を使用する.`],["customNavbarBlur",`トップの横断幕が存在する場合は、背景のぼかし効果を使用します.`],["useDarkStyle",`ダークテーマでは、ページの明るい部分が暗い色に変わり、夜間の視聴に最適な表示になります.そして多くのテーマカラーを適用します.ぜひお試しください.`],["darkSchedule",`ダークテーマを使用して计画タイムを設定する.この期間を開始または終了すると、ダークテーマは自動的にオンまたはオフになり、終了時刻は開始時刻より短く、翌日と見なされます.例えば18:00から6:00夜の18:00から翌日の6:00までを表しています.`],["darkScheduleStart",`計画期間の開始時刻を設定する.`],["darkScheduleEnd",`計画期間の終了時刻を設定する.`],["compactLayout",`ホームページでコンパクトレイアウトを使用するかどうかを設定します.動画の間隔が狭くなり、フィレットが切り取られ、カテゴリ欄のアイコンは高解像度版を使用します.`],["useCommentStyle",`- 人気コメントのアバターの下にある「フォロー」ボタンを削除します\n- ユーザーの「レベル」アイコンの削除します\n- 発送端末の情報を削除(例えば来自安卓客户端)\n- 送信時刻は右上に移動します\n- ビットアイコンはすべてベクトルアイコンを入れ替えており、高解像度の画面はぼやけません.\n注釈:「フォロー」と「レベル」アイコンはマウスでアバタ上に置くことで,ポップアップした資料カードに表示することができる.`],["simplifyLiveroom",`- 「老爷」アイコンを隠す\n- 「ファン勲章」アイコンを隠す\n- 「活動肩書き」アイコンを隠す\n- 「レベル」アイコンを隠す\n- 「艦長」アイコンを隠す\n- 「全域放送」を隠す\n- 「ウェルカムメッセージ」を隠す (例えば、「xxx老爷进入直播间」)\n- 「ギフト弾幕」を隠す (弾幕リストのみ. 例えば「节奏风暴」など特殊効果は影響を受けません)\n- 「艦長購入のヒント」を隠す (弾幕リストの「xxxは艦長を購入する」)\n- 「抽選のヒント」を隠す (例えば、「艦長」を購入する時、「小飞船」を購入する時、ギフトを抽選のヒント)\n- 配信ルームの「特殊な背景」を無効にする(ダークテーマでは、デフォルトでは「特殊な背景」も無効になっています)\n各項目は、非表示にするかどうかを附加功能の中で個別に選択することができる.`],["preserveRank",`控制是否在搜索框左侧显示排行榜图标.`],["hideBanner",`トップページの横断幕を非表示.`],["playerShadow",`プレーヤーにテーマカラーの投影の追加する.`],["narrowDanmaku",`ウェブの全画面表示されている場合は、幅が狭すぎても弾幕欄を強制的に保持し.この場合には右側の機能ボタンが境界線を押し出してしまう可能性があることに注意する.`],["blurVideoControl",`動画制御欄の背景をぼかします.伝統的な陰影効果は無効になります.`],["customControlBackground",`動画制御欄に半透明な黒を付ける、伝統的な陰影効果を置き換える.`],["customControlBackgroundOpacity",`制御欄に黒の不透明度(0~1)を設定し、数値が大きくなるほど黒が濃くなるように設定します.`],["harunaScale",`スクリーンDPIによって、配信ルームの看板娘のサイズをスケーリングして、ピクセルの解像度を高めます.`],["removeLiveWatermark",`生放送時、隅の透かしを削除する.`],["removeVideoTopMask",`マウスが通過したら、動画の右上隅にあるタイトル層を削除します.`],["hideOldEntry",`放送ページの右側返回旧版を隠す.`],["hideBangumiReviews",`番組ページの採点区を隠す.`],["hideCategory",`ホームページのエリア欄を隠す、それでもエリア欄は頂欄のホームメニューからアクセスできます.`],["removeAds",`ビリビリのさまざまな広告を削除する.ホームページのプロモーションモジュール、モバイルアプリのおすすめ、動画ページの右側にある広告などが含まれます.`],["watchLaterRedirect",`「後で見る」のリンクを通常の再生ページに変更して、新版レイアウトの再生ページを使用する.`],["favoritesRedirect",`個人センターの「お気に入り」の動画を通常の再生ページに変更して、「お気に入り」再生の放送ページではなく.`],["hideTopSearch",`検索欄の推薦語を搜索に置き換える.`],["fullTweetsTitle",`頂欄の情報プレビューページでは、常に完全なタイトルが展開されます.`],["fullPageTitle",`動画選集一覧では、常に完全なタイトルが展開されます.`],["showDeadVideoTitle",`個人センターの中に、失効した動画のタイトルとサムネイルを復元する.`],["useBiliplusRedirect",`失効した動画のリンクを「BiliPlus」ページに変更して.`],["deadVideoTitleProvider",`失効した動画の情報源: 「後で見る」は安定していますが、少し時間がかかります; 「BiliPlus」のスピードは速いですが、書き残していますので、しばらく開けません.`],["biliplusRedirect",`動画、番組、個人センターページで、追加機能转到BiliPlusをクリックして、BiliPlusの対応するページに移動します.`],["imageResolution",`スクリーンDPIによって、より高い解像度の画像を読み込む.(例えば、スクリーンのDPIが200%に調整されている場合、解像度は2倍になり、読み込み時間は長くなります.)`],["oldTweets",`「新版レイアウトの情報」リンクを 「旧版レイアウトの情報」に置き換え、追加機能で 「新版レイアウトの情報」/「旧版レイアウトの情報」を切り替えます.`],["i18n",`インタフェースの一般的なテキストの翻訳を提供する.`],["i18nLanguage",`翻訳言語`],["noLiveAutoplay",`生放送のホームページのおすすめライブルームで自動的に再生を開始することは禁止されています.`],["hideHomeLive",`生放送のホームページのおすすめライブルームを隠す.`],["foldComment",`情報ページにコメントを表示しているときに下部に「コメントを閉じる」ボタンを追加します.`],["seedsToCoins",`追加機能に瓜子换硬币ボタンを追加し、クリックして1日に1回に制限されて、1コインに700銀ヒマワリの種を交換してください.`],["touchNavBar",`頂欄の右側の1級リンクを削除します(大会員から履歴まで).タッチスクリーンデバイスですばやく情報を便利にします.削除されたリンクページはそれぞれのプレビューの中から查看更多に入ることができます.`],["comboLike",`「おすすめ三連」(「いいね」を長押した)のタッチサポートを有効にする.`],["touchVideoPlayer",`制御欄のボタン間隔を大きくして、タッチ操作をより正確にする.プレーヤーのタッチサポートを有効にする:\n- 左右にスワイプして再生の進行状況を調整します\n- 上下にスワイプして音量を調整します\n- 進行状況の調整は左上と右上でキャンセルできます\n- 異なる位置にスワイプすると、3つの異なる感度を使用できます.`],["touchVideoPlayerAnimation",`タッチ調整のヒントボックスにアニメーションの表示と非表示のどうかを決定します.このアニメーションはフレームがドロップされる可能性があります.`],["touchVideoPlayerDoubleTapControl",`操作方法を変更する.クリック:制御欄を表示/非表示, ダブルクリック放送/一時停止.`],["toast",`ウェブページの左下隅に表示スクリプトからのメッセージ、例えば更新通知の送信、エラーメッセージなどです.`],["toastInternalError",`オープンしたら、エラーメッセージは詳細な技術的エラー情報とスタック追跡を表示します.これは通常問題発生の原因を正確に確定するために使用されます.だから、問題を報告する時にこれらの情報はとても役に立ちます.`],["useCache",`スクリプトの読み込み速度を上げるためにキャッシュを使う.`],["filenameFormat",`ファイルの命名形式をカスタマイズする、下载弹幕下载视频视频截图查看封面に作用する.\n使用できる変数は:\n- title: 動画のタイトル/配信ルームのタイトル\n- ep: エピソードタイトル\n- aid: AV番号 (動画アドレス番号)\n- cid: CID (動画の唯一の番号、動画アドレス番号に対応するの動画アドレスは複数の動画を含み得る)\n- lid: 配信ルーム番号\n- y/M/d: 年/月/日\n- h/m/s/ms: 時間/分/秒/ミリ秒\n\nデフォルトの命名形式は[title][ - ep]、動画のタイトル+エピソードタイトル、エピソードタイトルがない場合は動画のタイトルを表示する.\n\n変数は角括弧内に配置され、角括弧内のその他の内容は変数が有効な場合に表示されます. 例えば、命名形式が[title] - [ep]書かれている場合ではエピソードタイトルがなくても、この - ファイル名にも表示されます. デフォルトとして角括弧で囲まれている場合、エピソードタイトルがない、 - が表示されません.\n\n例えば、タイトル+AV番号+時間の命名形式が欲しい、[title][ AVaid] [y]-[M]-[d] [h]-[m]-[s]に設定することができます. xxxx AV23333 2019-06-1 22-22-22ような名前をつけることができます.`],["sideBarOffset",`設定ボタンの垂直オフセット、単位はパーセント、許容範囲は-40%〜40%です.`],["useDefaultVideoSpeed",`デフォルトの再生速度を使用するかどうかを設定します.`],["defaultVideoSpeed",`デフォルトの動画再生速度を設定する.`],["autoDraw",`ライブルームに抽選活動がある場合は、「受け取り」ボタンを自動的にクリックします.`]]);return{export:{toolTips:e}}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/settings-tooltip.loader.min.js"] = (()=>{return(t,e)=>{function n(t){const e=t.querySelector("input");if(e){return e.getAttribute("key")}return null}(async()=>{e.applyStyle("settingsTooltipStyle");const{toolTips:t}=await e.importAsync(`settings-tooltip.${getI18nKey()}`);const s=await SpinQuery.select(".gui-settings-tooltip");if(!s){return}document.querySelectorAll(".gui-settings-content>ul>li").forEach(e=>{e.addEventListener("mouseover",()=>{const i=n(e);if(i===null||t===null){return}const o=t.get(i);if(o!==undefined){s.innerHTML=o;s.classList.add("show")}});e.addEventListener("mouseout",()=>{s.classList.remove("show")})})})()}})(); @@ -1094,7 +1094,7 @@ offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/m offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/theme-colors.min.js"] = (()=>{return(e,r)=>{const t={red:"#e57373",pink:"#F06292",purple:"#BA68C8",deepPurple:"#9575CD",indigo:"#7986CB",blue:"#2196F3",lightBlue:"#00A0D8",cyan:"#00ACC1",teal:"#26A69A",green:"#81C784",lightGreen:"#9CCC65",orange:"#FF9800",deepOrange:"#FF7043",brown:"#A1887F",grey:"#757575",blueGrey:"#78909C"};class o{constructor(){this.reloadColor=(()=>{const e=document.querySelector("html");return function(r){const t=new ColorProcessor(r);const o=e=>t.rgbToString(t.hexToRgba(e));e.style.setProperty("--theme-color",r);for(let t=10;t<=90;t+=10){e.style.setProperty(`--theme-color-${t}`,o(r+t))}e.style.setProperty("--foreground-color",t.foreground);e.style.setProperty("--foreground-color-b",o(t.foreground+"b"));e.style.setProperty("--foreground-color-d",o(t.foreground+"d"));e.style.setProperty("--blue-image-filter",t.blueImageFilter);e.style.setProperty("--pink-image-filter",t.pinkImageFilter);e.style.setProperty("--brightness",t.brightness);e.style.setProperty("--invert-filter",t.filterInvert)}})()}setupDom(){const e=document.querySelector(`input[key='customStyleColor']`);e.addEventListener("change",()=>{this.reloadColor(e.value)});const r=document.querySelector(".predefined-colors-grid");for(const o of Object.values(t)){const t=document.createElement("div");r.insertAdjacentElement("beforeend",t);t.classList.add("predefined-colors-grid-block");t.style.background=o;t.setAttribute("data-color",o);t.addEventListener("click",r=>{const t=r.target.getAttribute("data-color");e.value=t;raiseEvent(e,"input");raiseEvent(e,"change")})}const o=document.querySelector(".predefined-colors");document.querySelector("div.custom-color-preview").addEventListener("click",()=>{o.classList.toggle("opened")})}}return{export:{ThemeColors:o}}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/title.min.js"] = (()=>{return(e,t)=>{function i(e=true){const t=document.title.replace("_番剧_bilibili_哔哩哔哩","").replace("_电影_bilibili_哔哩哔哩","").replace("_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili","").replace(" - 哔哩哔哩直播,二次元弹幕直播平台","").replace(/[\/\\:\*\?"<>\|]/g,"").trim();if(!e||document.URL.indexOf("/bangumi")!==-1){return t}else{const e=document.querySelector("#multi_page .cur-list>ul li.on a");if(e===null){return t}else{const i=e.getAttribute("title");return t+" - "+i}}}function l(e,t=true){const i=new Date;const l={title:document.title.replace(t?/:([^:]+?)_番剧_bilibili_哔哩哔哩/:"_番剧_bilibili_哔哩哔哩","").replace(t?/:([^:]+?)_电影_bilibili_哔哩哔哩/:"_电影_bilibili_哔哩哔哩","").replace(t?/:([^:]+?)_纪录片_bilibili_哔哩哔哩/:"_纪录片_bilibili_哔哩哔哩","").replace("_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili","").replace(/(.*?) - (.*?) - 哔哩哔哩直播,二次元弹幕直播平台/,"$1").trim(),ep:(()=>{if(!t){return null}const e=dq("#eplist_module li.cursor .ep-title");if(e!==null){return e.innerText}const i=document.querySelector("#multi_page .cur-list>ul li.on a");if(i!==null){return i.getAttribute("title")}return null})(),aid:unsafeWindow.aid,cid:unsafeWindow.cid,lid:document.URL.replace(/https:\/\/live\.bilibili\.com\/(\d+).*/,"$1"),y:i.getFullYear().toString(),M:(i.getMonth()+1).toString().padStart(2,"0"),d:i.getDate().toString().padStart(2,"0"),h:i.getHours().toString().padStart(2,"0"),m:i.getMinutes().toString().padStart(2,"0"),s:i.getSeconds().toString().padStart(2,"0"),ms:i.getMilliseconds().toString().substr(0,3)};const r=Object.keys(l).reduce((e,t)=>{return e.replace(new RegExp(`\\[([^\\[\\]]*?)${t}([^\\[\\]]*?)\\]`,"g"),l[t]?`$1${l[t]}$2`:"")},e);return r.replace(/[\/\\:\*\?"<>\|]/g,"")}function r(t=true){if(e.filenameFormat===undefined){return i(t)}return l(e.filenameFormat,t)}return{export:{getFriendlyTitle:r,formatTitle:l}}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/toast.min.css"] = `.toast-card-container{--card-min-width:240px;--card-min-width-negative:-240px;position:fixed;left:0;bottom:0;display:flex;flex-direction:column-reverse;align-items:start;padding-left:16px;z-index:100001;pointer-events:none;overflow:hidden;width:100%;height:100%;transition:.2s ease-out}.toast-card-container *{pointer-events:initial;transition:.2s ease-out}.toast-card.toast-card-container-enter,.toast-card.toast-card-container-leave-to{opacity:0;transform:translateX(var(--card-min-width-negative))}.toast-card{background:#fff;min-width:var(--card-min-width);max-width:60vw;min-height:96px;margin:8px 0;box-shadow:rgba(0,0,0,.2) 0 4px 8px 0;transform-origin:left;overflow:hidden;display:flex;flex-direction:column;border-left-style:solid;transition:.3s cubic-bezier(.18,.89,.32,1.28);position:relative;border-left-width:0;padding-left:var(--corner-radius);border-radius:var(--corner-radius)}.toast-card.toast-card-container-leave-active{position:absolute;transition:.3s cubic-bezier(.6,-.28,.74,.05)}.toast-card-header{display:flex;align-items:center}.toast-card-title{font-size:18px;color:#000;opacity:.5;margin:16px;font-weight:700;flex:1 1 auto}.toast-card-dismiss{height:24px;width:24px;flex:0 0 auto;padding:16px;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:.2s ease-out;transform-origin:center;opacity:.5;box-sizing:content-box}.toast-card-dismiss:hover{transform:scale(1.2)}.toast-card-dismiss:active{transform:scale(1.1)}.toast-card-message{color:#000;font-size:14px;margin:0 16px 16px;white-space:pre-wrap;display:flex;align-items:center;line-height:1.5}.toast-card.toast-default{border-left-color:#444}.toast-card.toast-error{border-left-color:#f44336}.toast-card.toast-info{border-left-color:#2196f3}.toast-card.toast-success{border-left-color:#8bc34a}.toast-card .toast-card-border{position:absolute;height:100%;width:4px;border-radius:var(--corner-radius);height:calc(100% - 10px);width:var(--corner-radius);top:5px;left:0}.toast-card.toast-default .toast-card-border{background-color:#444}.toast-card.toast-error .toast-card-border{background-color:#f44336}.toast-card.toast-info .toast-card-border{background-color:#2196f3}.toast-card.toast-success .toast-card-border{background-color:#8bc34a}.toast-card .link,.toast-card span{display:inline-block;padding:4px 6px;margin:0 2px;background-color:#8882;text-decoration:none;color:#000;transition:.2s ease-out;border-radius:var(--corner-radius)}.toast-card .link:hover{background-color:#8883}.toast-card .link:active{background-color:#8884}@keyframes loading{0%,100%{top:0;left:50%}25%{top:50%;left:100%}50%{top:100%;left:50%}75%{top:50%;left:0}}.toast-card .loading{width:14px;height:14px;display:inline-block;margin-right:14px;position:relative}.toast-card .loading::after{content:"";width:10px;height:10px;background-color:#8884;border-radius:50%;display:block;transform:translateX(-50%) translateY(-50%);position:absolute;top:0;left:50%;animation:1s cubic-bezier(.22,.61,.36,1) infinite loading}`; -offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/toast.min.js"] = (()=>{return(t,s)=>{var e;(function(t){t["Default"]="default";t["Info"]="info";t["Success"]="success";t["Error"]="error"})(e||(e={}));class a{constructor(t="",s="",a=e.Default){this.creationTime=new Date;this.type=a;this.message=t;this.title=s;this.duration=3e3}show(){r.cards.splice(0,0,this);if(this.duration!==undefined){setTimeout(()=>this.dismiss(),this.duration)}}dismiss(){if(r.cards.includes(this)){r.cards.splice(r.cards.indexOf(this),1)}}get element(){return dq(`.toast-card[key='${this.key}']`)}get key(){return this.creationTime.toISOString()}static get container(){return document.querySelector(".toast-card-container")}static createToastContainer(){if(!document.querySelector(".toast-card-container")){document.body.insertAdjacentHTML("beforeend",`\n \n \n `)}}static internalShow(t,s,e,r){const n=new a(t,s,r);n.duration=e;n.show();return n}static show(t,s,a){return this.internalShow(t,s,a,e.Default)}static info(t,s,a){return this.internalShow(t,s,a,e.Info)}static success(t,s,a){return this.internalShow(t,s,a,e.Success)}static error(t,s,a){return this.internalShow(t,s,a,e.Error)}}s.applyStyle("toastStyle");Vue.component("toast-card",{props:["card"],template:`\n
\n
\n
\n

{{card.title}}

\n
\n \n \n \n
\n
\n
\n
\n `});a.createToastContainer();const r=new Vue({el:".toast-card-container",data:{cards:[]}});return{export:a}}})(); +offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/toast.min.js"] = (()=>{return(t,s)=>{var a;(function(t){t["Default"]="default";t["Info"]="info";t["Success"]="success";t["Error"]="error"})(a||(a={}));let e;class r{constructor(t="",s="",e=a.Default){this.creationTime=new Date;this.type=e;this.message=t;this.title=s;this.duration=3e3}show(){r.containerVM.cards.splice(0,0,this);if(this.duration!==undefined){setTimeout(()=>this.dismiss(),this.duration)}}dismiss(){if(r.containerVM.cards.includes(this)){r.containerVM.cards.splice(r.containerVM.cards.indexOf(this),1)}}get element(){return dq(`.toast-card[key='${this.key}']`)}get key(){return this.creationTime.toISOString()}static get containerVM(){if(!e){r.createToastContainer()}return e}static createToastContainer(){if(!document.querySelector(".toast-card-container")){document.body.insertAdjacentHTML("beforeend",`\n \n \n `);e=new Vue({el:".toast-card-container",components:{"toast-card":{props:["card"],template:`\n
\n
\n
\n

{{card.title}}

\n
\n \n \n \n
\n
\n
\n
\n `}},data:{cards:[]}})}}static internalShow(t,s,a,e){const n=new r(t,s,e);n.duration=a;n.show();return n}static show(t,s,e){return this.internalShow(t,s,e,a.Default)}static info(t,s,e){return this.internalShow(t,s,e,a.Info)}static success(t,s,e){return this.internalShow(t,s,e,a.Success)}static error(t,s,e){return this.internalShow(t,s,e,a.Error)}}s.applyStyle("toastStyle");return{export:r}}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/touch-navbar.min.js"] = (()=>{return(e,r)=>{SpinQuery.count(()=>document.querySelectorAll("ul.fr>li.nav-item:not(.profile-info), .nav-user-center .nav-item"),6,e=>{e.forEach(e=>{e.style.cursor="pointer";const r=e.querySelector("a.t");r.removeAttribute("href")})})}})(); offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/touch-player.min.css"] = `.touch-video-box-wrapper{display:flex;align-items:center;justify-content:center;width:100%;height:100%;position:absolute;top:0;left:0;z-index:14;pointer-events:none}.touch-video-box{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:rgba(0,0,0,.85);position:relative;max-width:520px;max-height:240px;border:4px solid transparent;transform-origin:center}.round-corner .touch-video-box{border-radius:var(--corner-radius)}.touch-video-box-wrapper.simple{align-items:flex-start}.touch-video-box.animation{transition:.2s cubic-bezier(.18,.89,.32,1.28)}.touch-video-info{color:#fff;font-size:2rem;text-align:center;display:flex;align-items:center;justify-content:center;flex-direction:column;height:100%;width:100%}.touch-row{flex-grow:1;display:flex;align-items:center;justify-content:center;width:100%}.touch-info{display:block;color:var(--theme-color)}.touch-result{display:block;font-size:1.5rem;line-height:150%}.touch-speed{display:block;background:rgba(0,0,0,.1);padding:.5em}.touch-progress{position:absolute;bottom:0;left:0;background:var(--theme-color);width:0;height:4px}.round-corner .touch-progress{border-radius:2px}.touch-row-item{flex:1 0 0;display:none;align-items:center;justify-content:center}.touch-row-item-wide{flex:1.5 0 0;display:flex;align-items:center;justify-content:center}.videoshot{background-color:transparent;background-image:none;transform-origin:center;transform:scale(.9)}.adjust-closed{opacity:0;transform:scale(.9)}.adjust-opened{opacity:1;transform:scale(1)}.touch-video-info.speed .touch-row-item{display:flex}.touch-video-info.cancel .touch-progress,.touch-video-info.cancel .touch-result{opacity:0}.disable-original-hover .bilibili-player-video-control-bottom,.disable-original-hover .bilibili-player-video-control-mask{opacity:0!important;visibility:hidden!important}.disable-original-hover .bilibili-player-video-control-wrap,.disable-original-hover.touch-video-control-show .bilibili-player-video-control-bottom,.disable-original-hover.touch-video-control-show .bilibili-player-video-control-mask{opacity:1!important;visibility:visible!important}.bilibili-player-video-control-top,.disable-original-hover .bilibili-player-video-control-top{left:0!important;right:0!important;bottom:0!important}.bilibili-player-video-control-top,.bilibili-player-video-progress-detail{bottom:0!important}.video-control-show .bilibili-player-video-progress-detail{bottom:36px!important}.disable-original-hover.touch-video-control-show .bilibili-player-video-control-top{left:0!important;right:0!important;bottom:38px!important}div.bilibili-player-video-control{height:38px!important;align-items:center!important}.bilibili-player-video-btn{flex-grow:1!important;height:100%!important;display:flex!important;align-items:center!important;justify-content:center!important}.bilibili-player-video-inputbar,.bilibili-player-video-progress{flex-grow:30!important}.bilibili-player-video-quality-menu{display:flex!important;align-items:center!important;justify-content:center!important}.bilibili-player-iconfont-color,.bilibili-player-iconfont-danmaku,.bilibili-player-iconfont-danmaku-off,.bilibili-player-iconfont-fullscreen,.bilibili-player-iconfont-pause,.bilibili-player-iconfont-repeat,.bilibili-player-iconfont-setting,.bilibili-player-iconfont-start,.bilibili-player-iconfont-volume,.bilibili-player-iconfont-volume-max,.bilibili-player-iconfont-volume-min,.bilibili-player-iconfont-web-fullscreen,.bilibili-player-iconfont-widescreen{font-size:2.5rem!important}.bilibili-player-iconfont-next{font-size:2rem!important}.bilibili-player-video-btn-setting-panel,.bilibili-player-video-danmaku-setting-wrap,.bilibili-player.mode-fullscreen .bilibili-player-video-sendbar,.bpui-selectmenu-list{left:unset!important;bottom:38px!important}.bilibili-player-video-volumebar-wrp{left:unset!important}.bilibili-player-video-control-wrap{padding:0!important}.bilibili-player-video-control-bottom{padding:0!important;align-items:center!important}.bilibili-player-iconfont-next,.bilibili-player-iconfont-setting,.bilibili-player-video-btn-volume.video-state-volume-max .bilibili-player-iconfont-volume-max,.bilibili-player-video-btn-volume.video-state-volume-min .bilibili-player-iconfont-volume-min,.bilibili-player-video-btn-volume:not(.video-state-volume-max):not(.video-state-volume-min) .bilibili-player-iconfont-volume,.bilibili-player-video-control-bottom-left{display:flex!important;align-items:center!important}.bilibili-player-video-btn-danmaku{flex-grow:0!important;display:flex!important;align-items:center!important;height:100%!important;margin:0!important;padding:0!important}.bilibili-player.mode-webfullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control-bottom-right{flex-grow:1!important}.bilibili-player.mode-fullscreen .bilibili-player-video-sendbar{bottom:0!important}.bilibili-player .bilibili-player-area .bilibili-player-video-control .bilibili-player-video-btn.bilibili-player-video-btn-fullscreen{margin-right:0!important;padding-right:8px!important}.bilibili-player .bilibili-player-area .bilibili-player-video-control .bilibili-player-video-btn.bilibili-player-video-btn-start{padding-left:8px!important;flex-grow:1.2!important;margin-right:0!important;margin-left:0!important}.bilibili-player .bilibili-player-area .bilibili-player-video-control .bilibili-player-video-btn{padding:0 3px!important}.bilibili-player .bilibili-player-area .bilibili-player-video-control-bottom,.bilibili-player .bilibili-player-area .bilibili-player-video-control-bottom-right,.bilibili-player-video-control-bottom-left{height:100%!important;margin:0!important}.bilibili-player-video-btn-setting-panel-hover-bridge{display:none!important}.disable-original-hover .bilibili-player-video-control-wrap:hover .bilibili-player-video-control-top .bilibili-player-video-progress-slider,.disable-original-hover.bilibili-player-area.video-control-show .bilibili-player-video-control-top .bilibili-player-video-progress-slider{height:2px!important}.disable-original-hover.bilibili-player-area .bilibili-player-video-control .bilibili-player-video-progress-detail.show{bottom:1px!important}.disable-original-hover.bilibili-player-area .subtitle-position.subtitle-position-bc,.disable-original-hover.bilibili-player-area .subtitle-position.subtitle-position-bl,.disable-original-hover.bilibili-player-area .subtitle-position.subtitle-position-br{bottom:20px!important}.disable-original-hover.touch-video-control-show .subtitle-position.subtitle-position-bc,.disable-original-hover.touch-video-control-show .subtitle-position.subtitle-position-bl,.disable-original-hover.touch-video-control-show .subtitle-position.subtitle-position-br{bottom:44px!important}.bilibili-player.mode-fullscreen .disable-original-hover.touch-video-control-show .subtitle-position.subtitle-position-bc,.bilibili-player.mode-fullscreen .disable-original-hover.touch-video-control-show .subtitle-position.subtitle-position-bl,.bilibili-player.mode-fullscreen .disable-original-hover.touch-video-control-show .subtitle-position.subtitle-position-br,.bilibili-player.mode-webfullscreen .disable-original-hover.touch-video-control-show .subtitle-position.subtitle-position-bc,.bilibili-player.mode-webfullscreen .disable-original-hover.touch-video-control-show .subtitle-position.subtitle-position-bl,.bilibili-player.mode-webfullscreen .disable-original-hover.touch-video-control-show .subtitle-position.subtitle-position-br{bottom:60px!important}.bilibili-player:not(.mode-webfullscreen):not(.mode-fullscreen) .bilibili-player-area:not(.disable-original-hover) .bilibili-player-video-control-wrap:hover .bilibili-player-video-control-top .bilibili-player-video-progress-slider,.bilibili-player:not(.mode-webfullscreen):not(.mode-fullscreen) .bilibili-player-area:not(.disable-original-hover).video-control-show .bilibili-player-video-control-top .bilibili-player-video-progress-slider{height:74px!important}.bilibili-player.mode-fullscreen .disable-original-hover .bilibili-player-video-control-top{opacity:1!important}#bofqi *{-webkit-tap-highlight-color:transparent!important}@media screen and (min-width:750px){.bilibili-player.mode-fullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control-bottom-center .bilibili-player-video-sendbar .bilibili-player-video-inputbar,.bilibili-player.mode-webfullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control-bottom-center .bilibili-player-video-sendbar .bilibili-player-video-inputbar{background:#fff1!important}.bilibili-player.mode-fullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control,.bilibili-player.mode-webfullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control{height:100%!important;margin:0!important}.bilibili-player.mode-fullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control-bottom,.bilibili-player.mode-webfullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control-bottom{margin:0!important}.bilibili-player.mode-fullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control-bottom-left,.bilibili-player.mode-webfullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control-bottom-left{height:100%!important}.bilibili-player-video-btn.bilibili-player-video-btn-start{flex-grow:.5!important}.player .bilibili-player.mode-fullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control-top,.player .bilibili-player.mode-webfullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control-top{left:0!important;right:0!important}.player .bilibili-player.mode-fullscreen .disable-original-hover.bilibili-player-video-control-wrap .bilibili-player-video-control-top,.player .bilibili-player.mode-webfullscreen .disable-original-hover.bilibili-player-video-control-wrap .bilibili-player-video-control-top{left:0!important;right:0!important;bottom:0!important}.player .bilibili-player.mode-fullscreen .disable-original-hover.touch-video-control-show .bilibili-player-video-control-top,.player .bilibili-player.mode-webfullscreen .disable-original-hover.touch-video-control-show .bilibili-player-video-control-top{left:0!important;right:0!important;bottom:54px!important}.mode-fullscreen .bilibili-player-area.mouse-hover:not(.disable-original-hover) .bilibili-player-video-control-top,.mode-fullscreen .bilibili-player-area.video-control-show:not(.disable-original-hover) .bilibili-player-video-control-top,.mode-webfullscreen .bilibili-player-area.mouse-hover:not(.disable-original-hover) .bilibili-player-video-control-top,.mode-webfullscreen .bilibili-player-area.video-control-show:not(.disable-original-hover) .bilibili-player-video-control-top{left:0!important;right:0!important;bottom:48px!important}}`; offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/touch-player.min.js"] = (()=>{return(t,e)=>{const i=t=>{let e=0;let i=0;while(t&&!isNaN(t.offsetLeft)&&!isNaN(t.offsetTop)){e+=t.offsetLeft-t.scrollLeft;i+=t.offsetTop-t.scrollTop;t=t.offsetParent}return{x:e,y:i}};const s=t=>{t=Math.abs(t);const e=Math.floor(t/3600);const i=Math.floor((t-e*3600)/60);const s=t-e*3600-i*60;let o=fixed(s)+"秒";if(i>0){o=i+"分"+o}if(e>0){o=e+"时"+o}return o};const o=t=>{t=Math.abs(t);const e=Math.floor(t/3600);const i=Math.floor((t-e*3600)/60);const s=t-e*3600-i*60;let o=(s<10?"0":"")+fixed(s);o=(i<10?"0":"")+i+":"+o;o=(e<10?"0":"")+e+":"+o;return o};class n{constructor(t){this.action=new l(t);this.onTouchStart=null;this.onTouchEnd=null;this.direction=null;t.addEventListener("touchstart",t=>{this.xDown=t.touches[0].clientX;this.yDown=t.touches[0].clientY;if(this.onTouchStart){this.onTouchStart(t)}});t.addEventListener("touchmove",e=>{if(!this.xDown||!this.yDown){return}const s=e.touches[0].clientX;const o=e.touches[0].clientY;const n=i(t);const l={x:(e.touches[0].pageX-n.x)/t.clientWidth,y:(e.touches[0].pageY-n.y)/t.clientHeight,width:t.clientWidth,height:t.clientHeight};const a=this.xDown-s;const c=this.yDown-o;if(!this.direction){let t="";if(Math.abs(a)>Math.abs(c)){t="horizontal"}else{t="vertical"}this.direction=t}else{if(this.direction==="vertical"){this.action.startAction(this.direction,c,l)}else if(this.direction==="horizontal"){this.action.startAction(this.direction,-a,l)}}if(e.cancelable){e.preventDefault()}});t.addEventListener("touchend",t=>{this.xDown=null;this.yDown=null;this.direction=null;if(this.onTouchEnd){this.onTouchEnd(t)}})}}class l{constructor(t){this.lowSpeedForward=null;this.lowSpeedBackward=null;this.mediumSpeedForward=null;this.mediumSpeedBackward=null;this.highSpeedForward=null;this.highSpeedBackward=null;this.volumeUp=null;this.volumeDown=null;this.brightnessUp=null;this.brightnessDown=null;this.speedCancel=null;this.minSwipeDistance=20;this.onActionStart=null;this.onActionEnd=null;this.element=t;this.touchStart=false;this.startPosition=null;this.lastAction=null;t.addEventListener("touchstart",()=>{this.touchStart=true});t.addEventListener("touchend",()=>{this.startPosition=null;this.onActionEnd&&this.onActionEnd(this.lastAction);this.lastAction=null})}startAction(t,e,i){if(this.touchStart){this.onActionStart&&this.onActionStart(t);this.startPosition=i;this.touchStart=false}if(t==="vertical"){let t;let s;if(this.startPosition.x<1/2){t=this.brightnessUp;s=this.brightnessDown;const o=Math.round(200*(e-this.minSwipeDistance)/(1.5*i.height));if(e>0){t&&t(o)}else{s&&s(o)}this.lastAction={type:"brightness",brightness:o}}else{t=this.volumeUp;s=this.volumeDown;const o=Math.round(200*(e-this.minSwipeDistance)/(1.5*i.height));if(e>0){t&&t(o)}else{s&&s(o)}this.lastAction={type:"volume",volume:o}}}else if(t==="horizontal"){if(i.y<1/3&&(i.x<.1||i.x>.9)){this.speedCancel&&this.speedCancel();this.lastAction=null}else{let t=0;let i;let s;if(this.startPosition.y<1/3){t=.05;i=this.lowSpeedForward;s=this.lowSpeedBackward}else if(this.startPosition.y>=1/3&&this.startPosition.y<=2/3){t=.2;i=this.mediumSpeedForward;s=this.mediumSpeedBackward}else{t=1;i=this.highSpeedForward;s=this.highSpeedBackward}if(e>0){const s=(e-this.minSwipeDistance)*t;i&&i(s);this.lastAction={type:"playback",seconds:s}}else{const i=(e+this.minSwipeDistance)*t;s&&s(i);this.lastAction={type:"playback",seconds:i}}}}}}class a{constructor(){this.aid=unsafeWindow.aid;this.cid=unsafeWindow.cid;this.cidData=null;this.supportWebp=a.supportWebp}getVideoshot(t,e){if(!(this.aid&&this.cid)){return}if(!this.cidData){Ajax.getText(`https://api.bilibili.com/x/player/videoshot?aid=${this.aid}&cid=${this.cid}&index=1`).then(i=>{this.cidData=JSON.parse(i).data;this.getVideoshot(t,e)})}else{const i=this.cidData;const s=i.index;let o=0;for(let e=0;e=s[e]&&tt.replace(".jpg",".jpg@.webp"))}const l=parseInt(i.pv_x_len)||10;const a=parseInt(i.pv_y_len)||10;const c=parseInt(i.pv_x_size)||160;const r=parseInt(i.pv_y_size)||90;const h=-(o%100%l)*c;const d=-Math.floor(o%100/a)*r;e({width:c,height:r,backgroundImage:`url(${n[Math.floor(o/100)]})`,backgroundPosition:`${h}px ${d}px`})}}static get supportWebp(){try{const t=document.createElement("canvas");if(t.getContext&&t.getContext("2d")){try{return t.toDataURL("image/webp").indexOf("data:image/webp")===0}catch(t){return false}}else{return false}}catch(t){return false}}}function c(t){t.unbind("click")}function r(t){if($(".touch-video-box").length!==0){return}$(".bilibili-player-video-subtitle").before(`\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
`);let e=$("video");const i=e.prop("duration");const l=new n(t.get(0));const c=document.querySelector(".touch-video-info");const r=document.querySelector(".touch-video-box");let h=100;let d=Math.round(e.prop("volume")*100);const u=t=>{t/=100;if(t<0){t=0}else if(t>1){t=1}e.prop("volume",t);$(".bilibili-player-video-volume-num").text(Math.round(t*100));$(".bui-thumb").css("transform",`translateY(-${48*t}px)`);$(".bui-track-vertical .bui-bar").css("transform",`scaleY(${t})`);if(t===0){$(".bilibili-player-video-btn-volume").addClass("video-state-volume-min");$(".bilibili-player-video-btn-volume").removeClass("video-state-volume-max");e.prop("muted",true)}else if(t===1){$(".bilibili-player-video-btn-volume").removeClass("video-state-volume-min");$(".bilibili-player-video-btn-volume").addClass("video-state-volume-max");e.prop("muted",false)}else{$(".bilibili-player-video-btn-volume").removeClass("video-state-volume-min");$(".bilibili-player-video-btn-volume").removeClass("video-state-volume-max");e.prop("muted",false)}};l.action.onActionStart=(t=>{r.classList.add("adjust-opened");c.classList[t==="vertical"?"remove":"add"]("speed");e=$("video");d=Math.round(e.prop("volume")*100);const i=e.css("filter").match(/brightness\((.+)\)/);h=Math.trunc((i?i[1]:1)*100)});const p=new a;const v=t=>{return n=>{const l=e.prop("currentTime");const a=fixed(100*l/i);let r=l+n;let h=fixed(100*r/i);let d=n;if(r>i){r=i;h=100;d=i-l}else if(r<0){r=0;h=0;d=l}const u=`${o(l)} (${a}%)
👇
${o(r)} (${h}%)`;c.classList.remove("cancel");c.querySelector(".touch-speed").innerHTML=`${t}速`;c.querySelector(".touch-info").innerHTML=`进度: ${n>0?"+":"-"}${s(d)}`;c.querySelector(".touch-result").innerHTML=u;p.getVideoshot(r,t=>$(".videoshot").css(t));$(".touch-progress").css("width",`${h}%`)}};l.action.lowSpeedBackward=v("低");l.action.lowSpeedForward=v("低");l.action.mediumSpeedBackward=v("中");l.action.mediumSpeedForward=v("中");l.action.highSpeedBackward=v("高");l.action.highSpeedForward=v("高");const f=t=>{let e=d+t;let i=Math.abs(t);if(e>100){e=100;i=100-d}else if(e<0){e=0;i=d}const s=`${d} 👉 ${e}`;u(e);c.classList.remove("cancel");c.querySelector(".touch-info").innerHTML=`音量: ${t>0?"+":"-"}${i}`;c.querySelector(".touch-result").innerHTML=s;$(".touch-progress").css("width",`${e}%`)};l.action.volumeUp=f;l.action.volumeDown=f;const b=t=>{let i=h+t;let s=Math.abs(t);if(i>100){i=100;s=100-h}else if(i<0){i=0;s=h}const o=`${h} 👉 ${i}`;e.css("filter",`brightness(${i/100})`);c.classList.remove("cancel");c.querySelector(".touch-info").innerHTML=`亮度: ${t>0?"+":"-"}${s}`;c.querySelector(".touch-result").innerHTML=o;$(".touch-progress").css("width",`${i}%`)};l.action.brightnessUp=b;l.action.brightnessDown=b;l.action.speedCancel=(()=>{c.querySelector(".touch-info").innerHTML=`取消时间调整`;c.classList.add("cancel")});l.action.onActionEnd=(t=>{if(!unsafeWindow.touchPlayerDebug){if(t){if(t.type==="playback"){let s=e.prop("currentTime");s+=t.seconds;if(s<0){s=0}else if(s>i){s=i}e.prop("currentTime",s)}else if(t.type==="volume"){const t=JSON.parse(localStorage.bilibili_player_settings);t.video_status.volume=e.prop("volume");localStorage.bilibili_player_settings=JSON.stringify(t)}}r.classList.remove("adjust-opened")}})}function h(t){if(!t.hasClass("disable-original-hover")){t.addClass("disable-original-hover");const e=unsafeWindow.$(".bilibili-player-video");const i="touch-video-control-show";const s=e.data("events").click[0].handler;const o=new DoubleClickEvent(t=>s(t),()=>t.toggleClass(i));e.unbind("click");o.bind(e[0])}}const d=()=>{SpinQuery.any(()=>$(".bilibili-player-iconfont,.bilibili-player-video-quality-menu"),c);SpinQuery.condition(()=>$(".bilibili-player-video"),t=>t.length>0&&$("video").length>0&&$("video").prop("duration"),r);if(t.touchVideoPlayerDoubleTapControl){new SpinQuery(()=>$(".bilibili-player-area"),t=>t.length>0&&unsafeWindow.$&&unsafeWindow.$(".bilibili-player-video").data("events"),h).start()}};Observer.videoChange(d);e.applyStyle("touchPlayerStyle")}})(); diff --git a/bilibili-evolved.preview.user.js b/bilibili-evolved.preview.user.js index 3100f137b..ca6e4fa40 100644 --- a/bilibili-evolved.preview.user.js +++ b/bilibili-evolved.preview.user.js @@ -962,7 +962,7 @@ class ColorProcessor { const onlineData = {}; onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/about.min.css"] = `.bilibili-evolved-about{height:100%;width:450px;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:16px 36px 0;margin-bottom:36px;display:flex;flex-direction:column;overflow:auto}.about-content .name{font-size:24pt;display:none;align-items:center}.about-content .name svg{width:100%}body.dark .about-content .name.dark,body:not(.dark) .about-content .name.light{display:flex}.about-content .version{font-size:10pt;font-weight:700;opacity:.6;margin-top:6px;margin-bottom:6px;align-self:center}.about-content .love{font-size:10pt;margin-bottom:24px;align-self:center}.about-content .love a{color:inherit!important}.about-content section{font-size:10pt;margin-top:16px}.about-content section .title{display:flex;justify-content:center;text-transform:uppercase;font-weight:700;font-size:13pt;letter-spacing:3px;margin:8px 0 16px}.about-content section .supporter,.about-content section a{color:var(--theme-color)!important;margin-right:8px;display:inline-flex}.about-content section .supporter{user-select:none}.about-content section .supporter:not(:last-child)::after,.about-content section a:not(:last-child)::after{content:","}@keyframes spinner{to{transform:translate(-50%,-50%) rotate(360deg)}}.about-content section.participants .fetching{margin-right:8px;position:relative;display:inline-flex}.about-content section.participants .fetching::before{content:"Loading..."}`; onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/about.min.html"] = ``; -onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/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 s=GM_info.script.name.match(/Bilibili Evolved \((.*)\)/);const a=s?s[1]:"Stable";new Vue({el:".bilibili-evolved-about",data:{version:t.currentVersion,clientType:a,logoImage:null,logoImageDark:null,branch:null,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),fetching:true,participants:[],websites:[{name:"GitHub",link:"https://github.com/the1812/Bilibili-Evolved/"},{name:"Greasy Fork",link:"https://greasyfork.org/zh-CN/scripts/373563-bilibili-evolved"}],components:[{name:"Vue.js",link:"https://cn.vuejs.org/index.html"},{name:"JSZip",link:"https://stuk.github.io/jszip/"},{name:"jQuery",link:"http://jquery.com/"},{name:"debounce",link:"https://github.com/component/debounce/"},{name:"Slip.js",link:"https://github.com/kornelski/slip"},{name:"MDI",link:"https://materialdesignicons.com"}]},mounted(){document.querySelector(".bilibili-evolved-about").addEventListener("be:about-load",()=>{this.init()},{once:true})},methods:{async getLogos(){this.logoImage=await Ajax.getText(`https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/images/bilibili-evolved-wide.svg`);this.logoImageDark=await Ajax.getText(`https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/images/bilibili-evolved-wide-dark.svg`)},async init(){this.branch=/Preview|Local/.test(a)?"preview":"master";this.getLogos();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}`).catch(()=>{e=[{name:"电波无法到达(´・_・`)",link:null}]});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);this.fetching=false}}})})()}})(); +onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/about.min.js"] = (()=>{return(t,e)=>{(async()=>{const i=await e.importAsync("aboutHtml");document.body.insertAdjacentHTML("beforeend",i);document.querySelector(".bilibili-evolved-about").addEventListener("be:about-load",()=>{const e=(t,e)=>t.charCodeAt(0)-e.charCodeAt(0);const i=(t,i)=>e(t.name,i.name);const o=GM_info.script.name.match(/Bilibili Evolved \((.*)\)/);const n=o?o[1]:"Stable";new Vue({el:".bilibili-evolved-about",data:{version:t.currentVersion,clientType:n,logoImage:null,logoImageDark:null,branch:null,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(i),fetching:true,participants:[],websites:[{name:"GitHub",link:"https://github.com/the1812/Bilibili-Evolved/"},{name:"Greasy Fork",link:"https://greasyfork.org/zh-CN/scripts/373563-bilibili-evolved"}],components:[{name:"Vue.js",link:"https://cn.vuejs.org/index.html"},{name:"JSZip",link:"https://stuk.github.io/jszip/"},{name:"jQuery",link:"http://jquery.com/"},{name:"debounce",link:"https://github.com/component/debounce/"},{name:"Slip.js",link:"https://github.com/kornelski/slip"},{name:"MDI",link:"https://materialdesignicons.com"}]},mounted(){this.init()},methods:{async getLogos(){this.logoImage=await Ajax.getText(`https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/images/bilibili-evolved-wide.svg`);this.logoImageDark=await Ajax.getText(`https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/images/bilibili-evolved-wide-dark.svg`)},async init(){this.branch=/Preview|Local/.test(n)?"preview":"master";this.getLogos();const t=new Set;let e=[];let o=1;do{e=await Ajax.getJson(`https://api.github.com/repos/the1812/Bilibili-Evolved/issues?state=all&direction=asc&per_page=100&page=${o}`).catch(()=>{e=[{name:"电波无法到达(´・_・`)",link:null}]});o++;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(i);this.fetching=false}}})},{once:true})})()}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/aria2-rpc.min.js"] = (()=>{return(t,e)=>{function o(){const e=t.aria2RpcOption;const o=e.host.match(/^http[s]?:\/\//)?e.host:"http://"+e.host;const r="aria2.addUri";return{option:e,host:o,methodName:r}}async function r(t,e=false){try{let o=await t();if(typeof o==="string"){o=JSON.parse(o)}if(o.error!==undefined){if(o.error.code===1){logError(`请求遭到拒绝, 请检查您的密钥相关设置.`)}else{logError(`请求发生错误, code = ${o.error.code}, message = ${o.error.message}`)}return false}if(!e){Toast.success(`成功发送了请求, GID = ${o.result}`,"aria2 RPC",5e3)}return true}catch(t){logError(`无法连接到RPC主机.`);return false}}async function s(t,e=false){const{option:s,host:n,methodName:a}=o();return await r(async()=>{const e=window.btoa(unescape(encodeURIComponent(JSON.stringify(t.params))));const o=`${n}:${s.port}/jsonrpc?method=${a}&id=${t.id}¶ms=${e}`;console.log(`RPC request:`,o);if(o.startsWith("http:")){return await new Promise((t,e)=>{GM_xmlhttpRequest({method:"GET",url:o,responseType:"json",onload:e=>t(e.response),onerror:t=>e(t)})})}else{return await Ajax.getJson(o)}},e)}async function n(t,e=false){const{option:s,host:n,methodName:a}=o();return await r(async()=>{const e=`${n}:${s.port}/jsonrpc`;const o={method:a,id:t.id,params:t.params};if(e.startsWith("http:")){return await new Promise((t,r)=>{GM_xmlhttpRequest({method:"POST",url:e,responseType:"json",data:JSON.stringify(o),onload:e=>t(e.response),onerror:t=>r(t)})})}else{return await Ajax.postJson(e,o)}},e)}async function a(e,o=false){const r=t.aria2RpcOption;for(const t of e){let e;if(r.method==="get"){e=await s(t,o)}else{e=await n(t,o)}if(o===true&&e===false){logError(`${decodeURIComponent(t.id)} 导出失败`)}}}return{export:{sendRpc:a}}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/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)}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/auto-draw.min.js"] = (()=>{return(t,n)=>{(async()=>{if(!/^https:\/\/live\.bilibili\.com\/[\d]+/.test(document.URL)){return}const t=await SpinQuery.condition(()=>dq(".chat-popups-section"),t=>t.querySelector("chat-draw-area")===null);if(!t){console.warn("[自动领奖] 未能找到弹窗容器");return}Observer.childListSubtree(t,()=>{let t;console.log("draw button = ",dq(".chat-popups-section .draw>span:nth-child(3)"));t=dq(".chat-popups-section .draw>span:nth-child(3)");if(t===null){const t=dq(".chat-popups-section .function-bar>span:nth-child(3)");if(t!==null){const n=Observer.attributes(t,()=>{if(t.style.display!=="none"){n.forEach(t=>t.stop());t.click()}})}}if(t!==null){t.click()}})})()}})(); @@ -1019,7 +1019,7 @@ onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/m onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/full-tweets-title.min.js"] = (()=>{return(t,n)=>{const i=`\n.dynamic-m .info {\n height: auto !important;\n}\n.dynamic-m .info a {\n white-space: normal !important;\n}\n.custom-navbar .video-activity-card .title {\n display: block !important;\n max-height: unset !important;\n}\n.custom-navbar .video-activity-card .cover {\n height: unset !important;\n}\n`;return n.toggleStyle(i,"full-tweets-title")}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/gui-settings.min.css"] = `.gui-settings-icon-panel{height:auto;display:flex;flex-direction:column;justify-content:center;align-items:center;position:fixed;top:calc(50% + var(--side-bar-offset));left:0;width:32px;z-index:99999;transform:translateY(-50%);user-select:none}.gui-settings-icon-panel i{transition:.2s;opacity:.6;transform:rotate(360deg);font-size:12px}.gui-settings-widgets:hover i,.gui-settings:hover i{opacity:.75;transform:rotate(0)}.gui-settings,.gui-settings-widgets{display:flex;justify-content:center;align-items:center;cursor:pointer;-webkit-tap-highlight-color:transparent;margin:16px 0;width:24px;height:24px;transition:.2s;opacity:1;transform-origin:center!important;transform:translateX(-16px);background-color:#dddc;border-radius:0 50% 50% 0;padding:6px;box-sizing:content-box}body.dark .gui-settings,body.dark .gui-settings-widgets{background-color:rgba(0,0,0,.3)}.gui-settings-widgets:hover,.gui-settings:hover{opacity:1;transform:translateX(0)}.gui-settings-footer,.gui-settings-header{flex-grow:0;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;z-index:10;padding:32px}.gui-settings-footer{height:80px;justify-content:center;position:relative}.gui-settings-content{flex-grow:1;overflow:auto;position:relative;overscroll-behavior:contain}.gui-settings-content ul{padding:0;margin:0}.gui-settings-content ul li{font-size:16px;margin-bottom:18px;display:flex;height:24px;transition:.2s;box-sizing:content-box}.gui-settings-content ul li.disabled,.gui-settings-content ul li:not(.category).folded{height:0;margin:0;overflow:hidden}.gui-settings-content ul li.indent-0{margin-left:16px}.gui-settings-content ul li.indent-1{margin-left:80px}.gui-settings-content ul li.indent-2{margin-left:144px}.gui-settings-content ul li.indent-center{align-items:center;justify-content:center}.gui-settings-content ul li.category{padding:16px 0;margin-bottom:18px;border-top:1px dashed #8884;border-bottom:1px dashed #8884;background:#fff;position:-webkit-sticky;position:sticky;top:0;z-index:101;cursor:pointer;transition:.2s ease-out;-webkit-tap-highlight-color:transparent}.gui-settings-content ul li.category.folded{margin-bottom:-1px}.gui-settings-content ul li.category *{opacity:.8}.gui-settings-title{font-size:16pt;flex:0 0 auto}.gui-settings-box .gui-settings-title{margin-right:64px}.gui-settings-search[type=text]{flex:1 0 auto;height:auto;border:none;padding:6px;font-size:12pt;width:40%;border-bottom:1px solid #8884;transition:.2s;color:inherit;background:0 0;box-sizing:border-box;outline:0!important}.gui-settings-close{width:24px;height:24px;padding:16px}.gui-settings-header .gui-settings-close{cursor:pointer;-webkit-tap-highlight-color:transparent}.gui-settings-textbox-container{display:flex;justify-content:center;align-items:center;-webkit-tap-highlight-color:transparent}.gui-settings-dropdown-span,.gui-settings-textbox-container span{margin:0 16px;transition:.2s}.gui-settings-textbox-container input{border:none;height:100%;max-width:90px;padding:4px 8px;background:#8884;transition:.2s;font-size:16px}.gui-settings-textbox-container input:disabled,.gui-settings-textbox-container.disabled div,.gui-settings-textbox-container.disabled span{opacity:.5}.gui-settings-checkbox-container{cursor:pointer;display:flex;width:100%;justify-content:start;align-items:center;padding:0 16px;-webkit-tap-highlight-color:transparent}.gui-settings-checkbox-container input{visibility:collapse;transition:.2s;width:0;position:absolute}.gui-settings-checkbox-container .gui-settings-ok{width:24px;height:24px;margin-right:16px;transition:.2s}.gui-settings-checkbox-container input~.gui-settings-ok{background-color:#8884}.gui-settings-checkbox-container input:checked~.gui-settings-ok{background-color:var(--theme-color)}.gui-settings-checkbox-container input~.gui-settings-ok>i{opacity:0;transform-origin:center;transform:scale(.9)}.gui-settings-checkbox-container input:checked~.gui-settings-ok>i{opacity:1}.gui-settings-checkbox-container input:disabled~.gui-settings-ok,.gui-settings-checkbox-container input:disabled~span{opacity:.5}button.gui-settings-button{padding:6px 20px;margin:0 4px;max-height:34px;border:none;background:#8884;font-size:16px;cursor:pointer;transition:.2s ease-out;font-family:inherit;-webkit-tap-highlight-color:transparent}button.gui-settings-button:hover{opacity:.9}button.gui-settings-button:active{opacity:.8}button.gui-settings-button:focus{outline:0}.custom-color-preview{width:28px;height:28px;border-radius:50%;background:var(--theme-color);margin-right:16px;position:relative;cursor:pointer;box-sizing:border-box;box-shadow:0 2px 4px 0 var(--theme-color-40)}.predefined-colors{transition:.2s;display:flex;opacity:0;background:#fff;width:168px;height:168px;position:absolute;box-shadow:rgba(0,0,0,.2) 0 4px 8px 0;top:32px;left:calc(-84px + 50%);transform:scale(0);transform-origin:top;z-index:9}.predefined-colors.opened{opacity:1;transform:scale(1)}.predefined-colors-grid{display:grid;grid-template-columns:auto auto auto auto;margin:0;flex-grow:1}.predefined-colors-grid-block{width:100%;height:100%;justify-self:center;align-self:center;cursor:pointer;transform-origin:center;transition:.1s ease-out}.predefined-colors-grid-block:hover{transform:scale(1.1);box-shadow:0 0 8px 1px #0004}input[key]:focus{outline:0}input[type=text][key]{height:auto;border:none}.gui-settings-label{margin:0 16px;font-size:16px}.hidden{display:none!important}@supports (backdrop-filter:blur(24px)) or (-webkit-backdrop-filter:blur(24px)){.gui-settings-box.blur li.category{-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);background:0 0}.gui-settings-box.blur,.gui-settings-box.blur .gui-settings-content,.gui-settings-box.blur .gui-settings-footer,.gui-settings-box.blur .gui-settings-header{background:#fff8}.gui-settings-box.blur .gui-settings-content,.gui-settings-box.blur .gui-settings-footer,.gui-settings-box.blur .gui-settings-header{-webkit-backdrop-filter:blur(64px);backdrop-filter:blur(64px)}}li.category i.icon-arrow{transition:.2s ease-out}li.category.folded i.icon-arrow{transform:rotate(180deg)}.gui-settings-dropdown-container{display:flex;align-items:center}.gui-settings-dropdown{position:relative;cursor:pointer;-webkit-tap-highlight-color:transparent;background-color:#8884;display:inline-flex;align-items:center;height:32px}.gui-settings-dropdown>i{transition:.2s ease-out;transform-origin:center;transform:rotate(180deg)}.gui-settings-dropdown>ul{position:absolute;top:calc(100%);width:100%;cursor:pointer;background:#fff;transform-origin:top;transform:scaleY(0);transition:.2s cubic-bezier(.6,-.28,.74,.05);display:flex;flex-direction:column;align-items:center;box-shadow:rgba(0,0,0,.2) 0 4px 8px 0;z-index:100}.gui-settings-dropdown ul li{margin:0;padding:8px 0;height:auto;width:100%;justify-content:center}.gui-settings-dropdown ul li:hover{background:rgba(0,0,0,.16)}.gui-settings-dropdown.opened>ul{transform:scaleY(1);transition-timing-function:cubic-bezier(.18,.89,.32,1.28)}.gui-settings-dropdown.opened>i{transform:rotate(0)}.gui-settings-dropdown input{cursor:pointer;border:none;height:100%;max-width:80px;padding:4px 8px;transition:.2s;font-size:16px;background-color:transparent}.gui-settings-dropdown input[key=defaultPlayerMode]{max-width:120px}.gui-settings-dropdown input[key=defaultBangumiLayout],.gui-settings-dropdown input[key=defaultPlayerLayout],.gui-settings-dropdown input[key=defaultVideoSpeed]{max-width:50px}.gui-settings-box input[key=filenameFormat]{max-width:500px}.gui-settings-mask{height:calc(100% + 5px);width:calc(100% + 5px);opacity:0;background:#000a;position:fixed;top:0;left:0;z-index:99999;pointer-events:none;transition:.3s cubic-bezier(0,.86,.58,1);overscroll-behavior:contain}.gui-settings-mask.opened{opacity:1;pointer-events:initial}.gui-settings-mask.opened.transparent{opacity:0;transition:.3s cubic-bezier(0,.86,.58,1) .3s}.gui-settings-box,.gui-settings-widgets-box{height:100%;width:420px;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:none;flex-direction:column;box-shadow:4px 0 16px 0 #0000}.gui-settings-box.loaded,.gui-settings-widgets-box.loaded{display:flex}.gui-settings-widgets-box{min-width:200px;width:auto}.gui-settings-box.opened,.gui-settings-widgets-box.opened{transform:translateX(0);box-shadow:4px 0 16px 0 #0005}.gui-settings-widgets-box>.title{margin:32px;font-size:16pt}.gui-settings-widgets-box>.widgets-container{padding:32px;display:flex;flex-direction:column;align-items:start;justify-content:start;position:relative;overscroll-behavior:contain;overflow:auto;height:100%}.gui-settings-widgets-box>.widgets-container .empty-tip{font-size:10pt;display:none}.gui-settings-widgets-box>.widgets-container .empty-tip.show{display:block}.gui-settings-widgets-box>.gui-settings-header{justify-content:start}.gui-settings-flat-button,.gui-settings-flat-button a,.gui-settings-flat-button a:hover{display:flex;align-items:center;justify-content:center;color:inherit}.gui-settings-flat-button{width:auto;padding:8px 16px;background:#8882;border:none;color:#000;cursor:pointer;transition:.2s ease-out;font-size:10pt;flex:0 0 auto;margin:4px;border-radius:20px;box-shadow:#0004 0 2px 4px;height:40px;box-sizing:border-box;-webkit-tap-highlight-color:transparent!important}.gui-settings-flat-button:disabled{opacity:.5;cursor:not-allowed}.gui-settings-flat-button:hover:not(:disabled){background:#8884}.gui-settings-flat-button:active:not(:disabled){border-bottom-color:var(--theme-color)}.gui-settings-flat-button:focus{outline:0}.gui-settings-flat-button i{margin-right:8px;line-height:24px;height:24px}.gui-settings-checkbox{width:28px;margin-right:24px;height:12px;background:#8884;border-radius:16px;position:relative}.gui-settings-checkbox::after{content:"";width:20px;height:20px;background:#c6c6c6;position:absolute;border-radius:50%;top:-4px;left:-4px;box-shadow:0 2px 4px 0 #0003;transition:.2s ease-out}.gui-settings-checkbox-container input:checked~.gui-settings-checkbox{background:var(--theme-color-80)}.gui-settings-checkbox-container input:checked~.gui-settings-checkbox::after{background:var(--theme-color)!important;box-shadow:0 2px 4px 0 var(--theme-color-40);left:calc(100% - 16px)}.gui-settings-checkbox-container input:disabled~.gui-settings-checkbox{opacity:.5}.gui-settings-header>i{margin-right:8px}.player-full-win .app-content,.player-full-win .live-room-app .app-content,.player-mode-webfullscreen .player-module{z-index:100000!important}.gui-settings-flat-button .popup{position:absolute;top:calc(100% + 2px);transition:.2s cubic-bezier(.6,-.28,.74,.05);transform-origin:top;transform:scaleY(0) translateX(-50%);left:50%;background:#fff;box-shadow:rgba(0,0,0,.2) 0 4px 8px 0;z-index:200;display:flex;flex-direction:column;align-items:center;width:max-content}.gui-settings-flat-button .popup *{transition:.2s}.gui-settings-flat-button .popup.opened{transform:scaleY(1) translateX(-50%);transition-timing-function:cubic-bezier(.18,.89,.32,1.28)}.gui-settings-flat-button .popup ul{list-style:none;margin:0;padding:0}.gui-settings-box kbd{padding:0 4px;border-radius:4px;border:1px solid #ccc;color:#ccc;border-bottom-width:3px;margin:0 4px}body.round-corner{--corner-radius:4px;--large-corner-radius:8px}.round-corner .gui-settings-box li i.downloading,.round-corner .gui-settings-dropdown,.round-corner .gui-settings-dropdown ul li,.round-corner .gui-settings-dropdown>ul,.round-corner .gui-settings-flat-button .popup,.round-corner .gui-settings-textbox-container input{border-radius:var(--corner-radius)}.gui-settings-box li i.downloading{margin-left:8px;font-style:normal;display:flex;align-items:center;font-size:14px;background:var(--theme-color);color:var(--foreground-color);padding:2px 8px}`; onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/gui-settings.min.html"] = `
附加功能
空空如也哦 = ̄ω ̄=
设置
  • 视频
  • 样式
  • 工具
  • 触摸
  • 其他
`; -onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/gui-settings.min.js"] = (()=>{return(e,t)=>{const{ThemeColors:n}=t.import("theme-colors");const{SettingsSearch:i}=t.import("settings-search");const{Validator:s}=t.import("text-validate");let o=[];let c=[];let r=[];function l(e){let t=e.nextElementSibling;const n=[];while(t!==null&&!t.classList.contains("category")){n.push(t);t=t.nextElementSibling}return n}function a(){r.forEach(t=>t.value=e[t.getAttribute("key")]);c.forEach(t=>t.checked=e[t.getAttribute("key")])}function d(){document.querySelector(".gui-settings-mask").addEventListener("click",()=>{document.querySelectorAll(".gui-settings-widgets-box,.gui-settings-box,.gui-settings-mask,.bilibili-evolved-about").forEach(e=>e.classList.remove("opened"))});r.forEach(t=>{t.setAttribute("placeholder",e[t.getAttribute("key")])});document.querySelectorAll(".gui-settings-content ul li.category").forEach(e=>{e.addEventListener("click",e=>{const t=document.querySelector(".gui-settings-search");if(t.value!==""){t.value="";raiseEvent(t,"input")}e.currentTarget.classList.toggle("folded");l(e.currentTarget).forEach(e=>e.classList.toggle("folded"))})});document.querySelectorAll(".gui-settings-dropdown>input").forEach(e=>{e.addEventListener("click",e=>{e.currentTarget.parentElement.classList.toggle("opened")})})}function u(){c.forEach(t=>{t.addEventListener("change",()=>{const n=t.getAttribute("key");const i=t.checked;e[n]=i})});r.forEach(t=>{t.addEventListener("change",()=>{const n=t.getAttribute("key");const i=s.getValidator(n).validate(t.value);e[n]=i;t.value=i})})}function g(){const e=o.map(e=>[e.getAttribute("dependencies").split(" ").map(e=>o.find(t=>t.getAttribute("key")===e)),e]);const t=e=>e.nodeName.toUpperCase()==="LI"?e:t(e.parentElement);e.forEach(([e,n])=>{if(e[0]===undefined){return}const i=()=>{if(e.every(e=>e.checked)){t(n).classList.remove("disabled")}else{t(n).classList.add("disabled")}};e.forEach(e=>e.addEventListener("change",i));i()})}function f(){if(typeof offlineData!=="undefined"){}}function p(){if(!CSS.supports("backdrop-filter","blur(24px)")&&!CSS.supports("-webkit-backdrop-filter","blur(24px)")){o.find(e=>e.getAttribute("key")==="blurVideoControl").disabled=true;e.blurVideoControl=false}if(window.devicePixelRatio===1){o.find(e=>e.getAttribute("key")==="harunaScale").disabled=true;o.find(e=>e.getAttribute("key")==="imageResolution").disabled=true;e.harunaScale=false;e.imageResolution=false}}function b(){for(const[e,t]of Object.entries(Resource.displayNames)){const n=o.find(t=>t.getAttribute("key")===e);if(!n){continue}switch(n.type){case"checkbox":n.nextElementSibling.nextElementSibling.innerHTML=t;break;case"text":const e=n.parentElement;if(e.classList.contains("gui-settings-textbox-container")){n.previousElementSibling.innerHTML=t}else if(e.classList.contains("gui-settings-dropdown")){e.previousElementSibling.innerHTML=t}break;default:break}}}(async()=>{t.applyStyle("guiSettingsStyle");t.applyImportantStyle("iconsStyle");document.body.classList.add("round-corner");const e=document.body&&unsafeWindow.parent.window!==unsafeWindow;if(e){document.querySelector(".gui-settings-icon-panel").style.display="none"}const s=t.data.guiSettingsHtml.text;document.body.insertAdjacentHTML("beforeend",s);const{style:l}=await t.importAsync("mdi");if(!l){document.body.insertAdjacentHTML("afterbegin",``)}t.applyDropdownOptions();const m=document.querySelector(".widgets-container");const y=m.querySelector(".empty-tip");Observer.childList(m,()=>{if(m.childElementCount<=1){y.classList.add("show")}else{y.classList.remove("show")}});(new n).setupDom();const h=document.querySelectorAll(".gui-settings-widgets-box,.gui-settings-box");const E=document.querySelector(".gui-settings-icon-panel");E.addEventListener("mouseover",()=>{raiseEvent(E,"be:load");h.forEach(e=>e.classList.add("loaded"));o=[...document.querySelectorAll("input[key]")];c=o.filter(e=>e.type==="checkbox");r=o.filter(e=>e.type==="text"&&!e.parentElement.classList.contains("gui-settings-dropdown"));d();f();a();g();u();p();b();new i},{once:true})})()}})(); +onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/gui-settings.min.js"] = (()=>{return(e,t)=>{const{ThemeColors:n}=t.import("theme-colors");const{SettingsSearch:i}=t.import("settings-search");const{Validator:s}=t.import("text-validate");let o=[];let r=[];let c=[];function l(e){let t=e.nextElementSibling;const n=[];while(t!==null&&!t.classList.contains("category")){n.push(t);t=t.nextElementSibling}return n}function a(){c.forEach(t=>t.value=e[t.getAttribute("key")]);r.forEach(t=>t.checked=e[t.getAttribute("key")])}function d(){document.querySelector(".gui-settings-mask").addEventListener("click",()=>{document.querySelectorAll(".gui-settings-widgets-box,.gui-settings-box,.gui-settings-mask,.bilibili-evolved-about").forEach(e=>e.classList.remove("opened"))});c.forEach(t=>{t.setAttribute("placeholder",e[t.getAttribute("key")])});document.querySelectorAll(".gui-settings-content ul li.category").forEach(e=>{e.addEventListener("click",e=>{const t=document.querySelector(".gui-settings-search");if(t.value!==""){t.value="";raiseEvent(t,"input")}e.currentTarget.classList.toggle("folded");l(e.currentTarget).forEach(e=>e.classList.toggle("folded"))})});document.querySelectorAll(".gui-settings-dropdown>input").forEach(e=>{e.addEventListener("click",e=>{e.currentTarget.parentElement.classList.toggle("opened")})})}function u(){r.forEach(t=>{t.addEventListener("change",()=>{const n=t.getAttribute("key");const i=t.checked;e[n]=i})});c.forEach(t=>{t.addEventListener("change",()=>{const n=t.getAttribute("key");const i=s.getValidator(n).validate(t.value);e[n]=i;t.value=i})})}function g(){const e=o.map(e=>[e.getAttribute("dependencies").split(" ").map(e=>o.find(t=>t.getAttribute("key")===e)),e]);const t=e=>e.nodeName.toUpperCase()==="LI"?e:t(e.parentElement);e.forEach(([e,n])=>{if(e[0]===undefined){return}const i=()=>{if(e.every(e=>e.checked)){t(n).classList.remove("disabled")}else{t(n).classList.add("disabled")}};e.forEach(e=>e.addEventListener("change",i));i()})}function f(){if(typeof offlineData!=="undefined"){}}function b(){if(!CSS.supports("backdrop-filter","blur(24px)")&&!CSS.supports("-webkit-backdrop-filter","blur(24px)")){o.find(e=>e.getAttribute("key")==="blurVideoControl").disabled=true;e.blurVideoControl=false}if(window.devicePixelRatio===1){o.find(e=>e.getAttribute("key")==="harunaScale").disabled=true;o.find(e=>e.getAttribute("key")==="imageResolution").disabled=true;e.harunaScale=false;e.imageResolution=false}}function p(){for(const[e,t]of Object.entries(Resource.displayNames)){const n=o.find(t=>t.getAttribute("key")===e);if(!n){continue}switch(n.type){case"checkbox":n.nextElementSibling.nextElementSibling.innerHTML=t;break;case"text":const e=n.parentElement;if(e.classList.contains("gui-settings-textbox-container")){n.previousElementSibling.innerHTML=t}else if(e.classList.contains("gui-settings-dropdown")){e.previousElementSibling.innerHTML=t}break;default:break}}}(async()=>{t.applyStyle("guiSettingsStyle");t.applyImportantStyle("iconsStyle");document.body.classList.add("round-corner");const e=document.body&&unsafeWindow.parent.window!==unsafeWindow;if(e){document.querySelector(".gui-settings-icon-panel").style.display="none"}const s=t.data.guiSettingsHtml.text;document.body.insertAdjacentHTML("beforeend",s);const{style:l}=await t.importAsync("mdi");if(!l){document.body.insertAdjacentHTML("afterbegin",``)}t.applyDropdownOptions();const m=document.querySelector(".widgets-container");const y=m.querySelector(".empty-tip");Observer.childList(m,()=>{if(m.childElementCount<=1){y.classList.add("show")}else{y.classList.remove("show")}});(new n).setupDom();const h=document.querySelectorAll(".gui-settings-widgets-box,.gui-settings-box");const E=document.querySelector(".gui-settings-icon-panel");E.addEventListener("mouseover",()=>{raiseEvent(E,"be:load");raiseEvent(dq(".bilibili-evolved-about"),"be:about-load");h.forEach(e=>e.classList.add("loaded"));o=[...document.querySelectorAll("input[key]")];r=o.filter(e=>e.type==="checkbox");c=o.filter(e=>e.type==="text"&&!e.parentElement.classList.contains("gui-settings-dropdown"));d();f();a();g();u();b();p();new i},{once:true})})()}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/haruna-scale.min.js"] = (()=>{return(n,e)=>{const t="haruna-scale";const a=()=>{if(document.getElementById(t)===null){e.applyStyleFromText(`\n .haruna-ctnr,\n .avatar-btn\n {\n transform: scale(${1/window.devicePixelRatio}) !important;\n }\n `,t)}};a();return{reload:a,unload:()=>{const n=document.getElementById(t);n&&n.remove()}}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/hide-bangumi-reviews.min.js"] = (()=>{return(e,n)=>{return n.toggleStyle(`\n #review_module { display: none !important; }\n `,`hide-bangumi-reviews-style`)}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/hide-banner.min.css"] = `#banner_link,.custom-navbar .blur-layer,.z-top-container.has-banner>.header{display:none!important}.b-header-mask-wrp .b-header-mask-bg,div.blur-bg{opacity:0!important}`; @@ -1066,12 +1066,12 @@ onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/m onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/remove-top-mask.min.js"] = (()=>{return(e,t)=>{const o=`.bilibili-player-video-top { display: none !important; }`;const n="remove-top-mask-style";const l=()=>t.applyStyleFromText(``);const r=()=>{const e=document.getElementById(n);if(e){e.remove()}};l();return{reload:l,unload:r}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/remove-watermark.min.js"] = (()=>{return(e,n)=>{const t="remove-live-watermark";const l=()=>{if(document.getElementById(t)===null){n.applyStyleFromText(`\n .bilibili-live-player-video-logo\n {\n display: none !important;\n }\n `,t)}};l();return{reload:l,unload:()=>{const e=document.getElementById(t);e&&e.remove()}}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/screenshot.min.css"] = `.video-take-screenshot{padding:0 4px 0 12px;height:100%;cursor:pointer;display:none!important}.video-take-screenshot.touch{padding:0 6px 0 10px;margin-left:12px}.bilibili-player-video-control-bottom .video-take-screenshot{display:flex!important}.video-take-screenshot.touch span{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.video-take-screenshot i{font-size:20px;color:#fff;transform:scale(1);opacity:.9;transition:.4s cubic-bezier(.18,.89,.32,1.28);display:block}.bilibili-player.mode-fullscreen .video-take-screenshot i,.bilibili-player.mode-webfullscreen .video-take-screenshot i{font-size:24px}.video-take-screenshot:hover i{transform:scale(1.05);opacity:1}.video-take-screenshot:active i{transform:scale(.95);opacity:1}.video-screenshot-container{position:relative;--screenshot-width:240px;--screenshot-width-negative:calc(0px - var(--screenshot-width));--screenshot-height:135px;--thumbnail-margin-vertical:12px;--thumbnail-margin-horizontal:24px;--screenshot-list-width:calc(2 * var(--thumbnail-margin-horizontal) + var(--screenshot-width))}.video-screenshot-batch{position:fixed;bottom:0;right:0;z-index:20000;display:flex;width:var(--screenshot-list-width);align-items:center;justify-content:space-evenly}.video-screenshot-batch button{background:#000c;color:#fff;border:none;border-radius:10px 10px 0 0;font-size:12pt;cursor:pointer;outline:0!important;padding:8px 12px;display:flex;justify-content:center;align-items:center}.video-screenshot-batch button i{font-size:14pt;margin-right:4px}.video-screenshot-container,.video-screenshot-container *{transition:.2s ease-out}.video-screenshot-list{position:fixed;top:0;right:0;z-index:20000;padding:var(--thumbnail-margin-vertical) 0;pointer-events:none;height:calc(100% - 2 * var(--thumbnail-margin-vertical) - 48px);width:var(--screenshot-list-width);overflow:auto}.video-screenshot-list *{pointer-events:initial}.video-screenshot-list-enter{opacity:0;transform:translateX(var(--screenshot-width-negative))}.video-screenshot-list-leave-to{opacity:0;transform:translateX(var(--screenshot-width))}.video-screenshot-thumbnail img{max-width:var(--screenshot-width);max-height:var(--screenshot-height);display:block;background-color:#000}.video-screenshot-thumbnail{margin:var(--thumbnail-margin-vertical) var(--thumbnail-margin-horizontal);position:relative;transition:.35s cubic-bezier(.18,.89,.32,1.28);width:var(--screenshot-width);height:var(--screenshot-height);background-color:#000;display:flex;justify-content:center;align-items:center}@keyframes spinner{to{transform:translate(-50%,-50%) rotate(360deg)}}.video-screenshot-thumbnail .loading::before{content:"";box-sizing:border-box;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(0);width:24px;height:24px;border-radius:50%;border:3px solid #8888;border-top-color:var(--theme-color);animation:.6s linear infinite spinner}.video-screenshot-thumbnail.video-screenshot-list-leave-active{position:absolute;transition:.35s cubic-bezier(.6,-.28,.74,.05)}.video-screenshot-thumbnail .mask{position:absolute;opacity:0;top:0;left:0;width:100%;height:100%;background:#0008;display:flex;justify-content:space-around;align-items:center;transition:none;pointer-events:none}.video-screenshot-thumbnail:hover .mask{opacity:1}.video-screenshot-thumbnail .mask .time{color:#fff;position:absolute;bottom:0;left:4px;font-size:10pt}.video-screenshot-thumbnail .mask button{background:#000a;color:#fff;border:none;border-radius:50%;font-size:24pt;cursor:pointer;width:48px;height:48px;pointer-events:initial;outline:0!important}`; -onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/screenshot.min.js"] = (()=>{return(e,t)=>{const{getFriendlyTitle:i}=t.import("title");const n=document.createElement("canvas");class s{constructor(e,t,i=false){this.url="";this.timeStamp=(new Date).getTime();this.withDanmaku=false;this.video=e;this.videoTime=t;this.withDanmaku=i;this.createUrl()}async createUrl(){n.width=this.video.videoWidth;n.height=this.video.videoHeight;const e=n.getContext("2d");if(e===null){logError("视频截图失败: canvas 未创建或创建失败.");return}e.drawImage(this.video,0,0);if(this.withDanmaku){const t=dq("canvas.bilibili-player-video-danmaku");if(t!==null){e.drawImage(t,0,0,this.video.videoWidth,this.video.videoHeight)}}n.toBlob(e=>{if(e===null){logError("视频截图失败: 创建 blob 失败.");return}this.blob=e;this.url=URL.createObjectURL(e)},"image/png")}get filename(){return`${i()} @${this.time.replace(/:/g,"-")} ${this.timeStamp.toString()}.png`}get id(){return this.videoTime.toString()+this.timeStamp.toString()}get time(){const e=Math.trunc(this.videoTime/3600).toString();const t=Math.trunc(this.videoTime/60).toString();const i=(this.videoTime%60).toFixed(2);if(e==="0"){return`${t.padStart(2,"0")}:${i.padStart(5,"0")}`}return`${e}:${t.padStart(2,"0")}:${i.padStart(5,"0")}`}revoke(){URL.revokeObjectURL(this.url)}}const o=(e,t=false)=>{const i=e.currentTime;return new s(e,i,t)};t.applyStyle("videoScreenshotStyle");document.body.insertAdjacentHTML("beforeend",`\n
\n \n \n \n
\n \n \n \n
\n
\n`);Vue.component("video-screenshot",{props:{objectUrl:String,filename:String,time:String},template:`\n
\n \n
\n \n \n \n {{time}}\n
\n
\n
\n
\n `,methods:{discard(){this.$emit("discard")},save(){this.$el.querySelector(".link").click();this.discard()}}});const r=new Vue({el:".video-screenshot-container",data:{screenshots:[],batchFilename:i()+".zip"},methods:{discard(e){this.screenshots.splice(this.screenshots.indexOf(e),1);e.revoke()},async saveAll(){const e=new JSZip;this.screenshots.forEach(t=>{e.file(t.filename,t.blob,{date:new Date(t.timeStamp)})});const t=await e.generateAsync({type:"blob"});const i=this.$el.querySelector(".batch-link");i.href=URL.createObjectURL(t);i.click();URL.revokeObjectURL(i.href);i.href="";this.discardAll()},discardAll(){this.screenshots.forEach(e=>e.revoke());this.screenshots=[]}},computed:{showBatch(){return this.screenshots.length>=2}}});const c=`\n
\n \n
`;Observer.videoChange(async()=>{const t=await SpinQuery.select("#bofqi video");if(t===null){return}const i=await SpinQuery.select(".bilibili-player-video-time");if(i===null||document.querySelector(".video-take-screenshot")){return}i.insertAdjacentHTML("afterend",c);const n=document.querySelector(".video-take-screenshot");n.addEventListener("click",async e=>{const t=await SpinQuery.select("#bofqi video");const i=o(t,e.shiftKey);r.screenshots.unshift(i)});document.addEventListener("keydown",e=>{if(document.activeElement&&["input","textarea"].includes(document.activeElement.nodeName.toLowerCase())){return}if(e.ctrlKey&&e.altKey&&e.key.toLowerCase()==="c"){e.stopPropagation();e.preventDefault();n.click()}});if(e.touchVideoPlayer){document.querySelectorAll(".video-take-screenshot").forEach(e=>e.classList.add("touch"))}});return{export:{takeScreenshot:o,screenShotsList:r},unload:()=>document.querySelectorAll(".bilibili-player-video-control-bottom .video-take-screenshot,.video-screenshot-container").forEach(e=>e.setAttribute("style","display: none !important")),reload:()=>document.querySelectorAll(".bilibili-player-video-control-bottom .video-take-screenshot,.video-screenshot-container").forEach(e=>e.setAttribute("style","display: flex !important"))}}})(); +onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/screenshot.min.js"] = (()=>{return(e,t)=>{const{getFriendlyTitle:i}=t.import("title");const n=document.createElement("canvas");class s{constructor(e,t,i=false){this.url="";this.timeStamp=(new Date).getTime();this.withDanmaku=false;this.video=e;this.videoTime=t;this.withDanmaku=i;this.createUrl()}async createUrl(){n.width=this.video.videoWidth;n.height=this.video.videoHeight;const e=n.getContext("2d");if(e===null){logError("视频截图失败: canvas 未创建或创建失败.");return}e.drawImage(this.video,0,0);if(this.withDanmaku){const t=dq("canvas.bilibili-player-video-danmaku");if(t!==null){e.drawImage(t,0,0,this.video.videoWidth,this.video.videoHeight)}}n.toBlob(e=>{if(e===null){logError("视频截图失败: 创建 blob 失败.");return}this.blob=e;this.url=URL.createObjectURL(e)},"image/png")}get filename(){return`${i()} @${this.time.replace(/:/g,"-")} ${this.timeStamp.toString()}.png`}get id(){return this.videoTime.toString()+this.timeStamp.toString()}get time(){const e=Math.trunc(this.videoTime/3600).toString();const t=Math.trunc(this.videoTime/60).toString();const i=(this.videoTime%60).toFixed(2);if(e==="0"){return`${t.padStart(2,"0")}:${i.padStart(5,"0")}`}return`${e}:${t.padStart(2,"0")}:${i.padStart(5,"0")}`}revoke(){URL.revokeObjectURL(this.url)}}const o=(e,t=false)=>{const i=e.currentTime;return new s(e,i,t)};let r={screenshots:[]};Observer.videoChange(async()=>{if(!dq(".video-screenshot-container")){t.applyStyle("videoScreenshotStyle");document.body.insertAdjacentHTML("beforeend",`\n
\n \n \n \n
\n \n \n \n
\n
\n `);Vue.component("video-screenshot",{props:{objectUrl:String,filename:String,time:String},template:`\n
\n \n
\n \n \n \n {{time}}\n
\n
\n
\n
\n `,methods:{discard(){this.$emit("discard")},save(){this.$el.querySelector(".link").click();this.discard()}}});r=new Vue({el:".video-screenshot-container",data:{screenshots:[],batchFilename:i()+".zip"},methods:{discard(e){this.screenshots.splice(this.screenshots.indexOf(e),1);e.revoke()},async saveAll(){const e=new JSZip;this.screenshots.forEach(t=>{e.file(t.filename,t.blob,{date:new Date(t.timeStamp)})});const t=await e.generateAsync({type:"blob"});const i=this.$el.querySelector(".batch-link");i.href=URL.createObjectURL(t);i.click();URL.revokeObjectURL(i.href);i.href="";this.discardAll()},discardAll(){this.screenshots.forEach(e=>e.revoke());this.screenshots=[]}},computed:{showBatch(){return this.screenshots.length>=2}}})}const n=await SpinQuery.select("#bofqi video");if(n===null){return}const s=await SpinQuery.select(".bilibili-player-video-time");if(s===null||document.querySelector(".video-take-screenshot")){return}const c=`\n
\n \n
`;s.insertAdjacentHTML("afterend",c);const a=document.querySelector(".video-take-screenshot");a.addEventListener("click",async e=>{const t=await SpinQuery.select("#bofqi video");const i=o(t,e.shiftKey);r.screenshots.unshift(i)});document.addEventListener("keydown",e=>{if(document.activeElement&&["input","textarea"].includes(document.activeElement.nodeName.toLowerCase())){return}if(e.ctrlKey&&e.altKey&&e.key.toLowerCase()==="c"){e.stopPropagation();e.preventDefault();a.click()}});if(e.touchVideoPlayer){document.querySelectorAll(".video-take-screenshot").forEach(e=>e.classList.add("touch"))}});return{export:{takeScreenshot:o,screenShotsList:r},unload:()=>document.querySelectorAll(".bilibili-player-video-control-bottom .video-take-screenshot,.video-screenshot-container").forEach(e=>e.setAttribute("style","display: none !important")),reload:()=>document.querySelectorAll(".bilibili-player-video-control-bottom .video-take-screenshot,.video-screenshot-container").forEach(e=>e.setAttribute("style","display: flex !important"))}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/scrollbar.min.css"] = `::-webkit-scrollbar{width:5px!important;height:5px!important}::-webkit-scrollbar-corner,::-webkit-scrollbar-track{background:0 0!important}::-webkit-resizer,::-webkit-scrollbar-thumb{background:#aaa}::-webkit-scrollbar-thumb:hover{background:#888}*{scrollbar-color:#aaa transparent;scrollbar-width:thin!important}`; onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/search.vue.min.js"] = (()=>{return(e,t)=>{const r=``;return{export:Object.assign({template:r},{})}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/seeds-to-coins.min.js"] = (()=>{return(s,e)=>{const t=`https://api.live.bilibili.com/pay/v1/Exchange/silver2coin`;return{widget:{content:`\n \n \n 瓜子换硬币\n `,success:()=>{const s=async()=>{const s=await Ajax.getJsonWithCredentials(t);if(s.code!==0){Toast.info(s.message,"瓜子换硬币",3e3)}else{Toast.success(`${s.message}\n剩余银瓜子:${s.data.silver}`,"瓜子换硬币",3e3)}};const e=dq("#seeds-to-coins");e.addEventListener("click",async()=>{try{e.disabled=true;await s()}finally{e.disabled=false}})}}}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/settings-search.min.js"] = (()=>{return(t,e)=>{class s{constructor(){this.input=document.querySelector(".gui-settings-search");const t=[...document.querySelectorAll(".gui-settings-content>ul>li")];const e=t=>e=>e.classList.contains("category")===t;this.categories=t.filter(e(true));this.items=t.filter(e(false));this.importToolTips().then(()=>this.input.addEventListener("input",()=>this.keywordChange()))}async importToolTips(){if(typeof getI18nKey==="undefined"){console.error("请更新脚本后再使用设置搜索功能.");return}const{toolTips:t}=await e.importAsync(`settings-tooltip.${getI18nKey()}`);this.toolTips=t}keywordChange(){const t=this.input.value.trim();if(!t){this.categories.concat(this.items).forEach(t=>t.classList.add("folded"));return}this.items.forEach(e=>{const s=e.querySelector("input").getAttribute("key");const i=this.toolTips.get(s);let o=Resource.displayNames[s];if(i!==undefined){o+=i.replace(/<.*>|<\/.*>/g,"")}if(o.includes(t)){e.classList.remove("folded");const t=e.getAttribute("data-dependencies");if(t!==undefined){t.split(" ").forEach(t=>{const e=this.items.find(e=>e.getAttribute("data-key")===t);if(e!==undefined){e.classList.remove("folded")}})}}else{e.classList.add("folded")}});this.foldCategories()}foldCategories(){for(const e of this.categories){function t(){let t=e.nextElementSibling;while(t!==null&&!t.classList.contains("category")){if(!t.classList.contains("folded")){return"remove"}t=t.nextElementSibling}return"add"}e.classList[t()]("folded")}}}return{export:{SettingsSearch:s}}}})(); -onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/settings-side-bar.min.js"] = (()=>{return(e,t)=>{if(document.querySelector(".gui-settings-icon-panel")===null){document.body.insertAdjacentHTML("beforeend",`\n
\n
\n \n
\n
\n \n
\n
`);dq(".gui-settings").addEventListener("click",e=>{if(e.shiftKey===false){dqa(".gui-settings-box,.gui-settings-mask").forEach(e=>e.classList.add("opened"))}else{dqa(".bilibili-evolved-about,.gui-settings-mask").forEach(e=>e.classList.add("opened"));raiseEvent(document.querySelector(".bilibili-evolved-about"),"be:about-load")}});dq(".gui-settings-widgets").addEventListener("click",e=>{if(e.shiftKey===false){dqa(".gui-settings-widgets-box,.gui-settings-mask").forEach(e=>e.classList.add("opened"))}else{debugger}});const e=dq(".gui-settings-icon-panel .gui-settings-widgets>i");const t=dq(".gui-settings-icon-panel .gui-settings>i");let i=false;let s=false;const n=()=>{t.classList.remove("icon-info");t.classList.add("icon-settings");t.parentElement.title="设置";e.classList.remove("icon-time");e.classList.add("icon-widgets");e.parentElement.title="附加功能";i=false;s=false};const d=()=>{t.classList.remove("icon-settings");t.classList.add("icon-info");t.parentElement.title="关于";e.classList.remove("icon-widgets");e.classList.add("icon-time");e.parentElement.title="「ザ・ワールド」";if(!i){document.body.addEventListener("keyup",n,{once:true});i=true}if(!s){window.addEventListener("blur",n,{once:true});s=true}};document.body.addEventListener("keydown",e=>{if(document.activeElement&&["input","textarea"].includes(document.activeElement.nodeName.toLowerCase())){return}if(e.shiftKey===true){d()}})}const i=(t=e.sideBarOffset)=>{document.body.style.setProperty("--side-bar-offset",t+"%")};addSettingsListener("sideBarOffset",i);i()}})(); +onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/settings-side-bar.min.js"] = (()=>{return(e,t)=>{if(document.querySelector(".gui-settings-icon-panel")===null){document.body.insertAdjacentHTML("beforeend",`\n
\n
\n \n
\n
\n \n
\n
`);dq(".gui-settings").addEventListener("click",e=>{if(e.shiftKey===false){dqa(".gui-settings-box,.gui-settings-mask").forEach(e=>e.classList.add("opened"))}else{dqa(".bilibili-evolved-about,.gui-settings-mask").forEach(e=>e.classList.add("opened"))}});dq(".gui-settings-widgets").addEventListener("click",e=>{if(e.shiftKey===false){dqa(".gui-settings-widgets-box,.gui-settings-mask").forEach(e=>e.classList.add("opened"))}else{debugger}});const e=dq(".gui-settings-icon-panel .gui-settings-widgets>i");const t=dq(".gui-settings-icon-panel .gui-settings>i");let s=false;let i=false;const n=()=>{t.classList.remove("icon-info");t.classList.add("icon-settings");t.parentElement.title="设置";e.classList.remove("icon-time");e.classList.add("icon-widgets");e.parentElement.title="附加功能";s=false;i=false};const d=()=>{t.classList.remove("icon-settings");t.classList.add("icon-info");t.parentElement.title="关于";e.classList.remove("icon-widgets");e.classList.add("icon-time");e.parentElement.title="「ザ・ワールド」";if(!s){document.body.addEventListener("keyup",n,{once:true});s=true}if(!i){window.addEventListener("blur",n,{once:true});i=true}};document.body.addEventListener("keydown",e=>{if(document.activeElement&&["input","textarea"].includes(document.activeElement.nodeName.toLowerCase())){return}if(e.shiftKey===true){d()}})}const s=(t=e.sideBarOffset)=>{document.body.style.setProperty("--side-bar-offset",t+"%")};addSettingsListener("sideBarOffset",s);s()}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/settings-tooltip.en-US.min.js"] = (()=>{return(e,o)=>{const t=new Map([["useDefaultPlayerMode",`Set the default player mode. Could be Normal, Widescreen, Web fullscreen or Fullscreen.`],["defaultPlayerMode",`Select the default player mode.`],["applyPlayerModeOnPlay",`Apply mode on video play instead of page load.`],["useDefaultPlayerLayout",`Set the default player layout.\n- Old: The legacy layout\n- New: The default new layout\nWarning: Some features won't work on old layout.`],["defaultPlayerLayout",`Video player layout`],["defaultBangumiLayout",`Bangumi player layout`],["useDefaultVideoQuality",`Auto select the specified video quality. If the highest quality of video in lower than your choice, the highest quality will be used.`],["defaultVideoQuality","Select the default video quality."],["autoLightOff",`Auto turn off the light when video starts playing, and turn on the light after complete.`],["useDefaultDanmakuSettings",`Set the default settings about danmakus.`],["enableDanmaku",`Disable this if you want to turn off danmakus by default.`],["rememberDanmakuSettings",`Remember the "Prevent blocking subtitles" and "Smart danmaku mask" settings. If you change these settings on player, every video will apply these settings by default.`],["expandDanmakuList",`Auto expand the danmaku list.`],["autoPlay",`Auto start playing video on page load.`],["autoContinue",`If playback history exists, auto continue from it.`],["skipChargeList",`Skip charge acknowledgements on the end of some videos.`],["framePlayback",`Append 2 buttons to the right of video time to seek video by frame. Support keyboard shortcut Shift+/. (Old layout can only use keyboard shortcut)`],["playerFocus",`Auto scroll to the player when you enter the page.`],["playerFocusOffset",`Set the scroll offset. (in px unit)`],["customStyleColor",`Set the theme color for custom navbar, dark mode and more. Click the color circle to choose from 16 predefined colors, or input any valid hex color in textbox. (#rrggbb or #rgb)`],["useDarkStyle",`Dark style looks much better at night, and will widely apply theme color.`],["darkSchedule",`Schedule the dark mode time.`],["compactLayout",`Use compact layout for homepage, reduce margin and remove rounded corner of video cards, use vector icons in categories.`],["useCommentStyle",`- Remove "Follow" button on hot comments\n- Remove the level badge of user\n- Remove the platform info (like From Android client)\n- Move post time to upper right.\n- Use vector icons\nTip: You can still access the removed "Follow" and level badge by hovering on their avatars.`],["simplifyLiveroom",`- Hide master icon\n- Hide fan badge\n- Hide event title\n- Hide user level\n- Hide captain icon\n- Hide global notice\n- Hide welcome message (xxx master entered room)\n- Hide lottery draw notifications\n- Disable room skin\nTip: Every item can be toggled individually in Add-ons.`],["blurVideoControl",`Use background blur effect for video controls.`],["customControlBackground",`Use a filled black rectangle as background of video controls instead of the original shadow effect.`],["customControlBackgroundOpacity",`Set the opacity of rectangle`],["harunaScale",`Make live room showgirl DPI-aware.`],["removeLiveWatermark",`Remove the watermark of live stream`],["removeVideoTopMask",`Remove the top mask of videos`],["removeAds",`Remove all ads. including slideshow ads, mobile app ads and video ads.`],["watchLaterRedirect",`Redirects all watchlater videos to the normal video page in order to use new layout.`],["favoritesRedirect",`Redirects all videos in favorites from favorites playlist to the individual video page.`],["hideTopSearch",`Use "Search" in place of search recommendations.`],["fullTweetsTitle",`Always expand full title in the activities peek in navbar.`],["fullPageTitle",`Always expand full title of video episodes. (Not work for bangumi)`],["biliplusRedirect",`Append "Jump to BiliPlus" button to Add-ons.`],["imageResolution",`Request hi-resolution images by your screen DPI. But also cause longer loading time.`],["oldTweets",`Replace activities link by the old version, and you can switch between new and old versions in Add-ons.`],["touchNavBar",`Allow to tap on a navbar item to view its popup info, instead of open the top-level link.`],["comboLike",`Allow long press the like button to perform a combo like.`],["touchVideoPlayer",`Increase margin of video control buttons for better touch experience. And enable touch gestures:\n- Left/Right slide to seek\n- Up/Down slide to adjust volume\n- Cancel a gesture on upper left/right corner\n- Slide on different position to use different sensibility.`],["touchVideoPlayerAnimation",`Use experimental animations for touch gestures, but may cause frame drops.`],["touchVideoPlayerDoubleTapControl",`Enable double-tap control: single tap to view/hide control bar, double tap to pause/resume.`],["toast",`Show toasts on the lower left corner of page, including update notifications and error display.`],["toastInternalError",`Show internal error messages, which may be helpful when reporting a bug.`],["useCache",`Use cache to increase load speed of this userscript.`],["outerWatchlater",`Move watchlater button from menu to outside.`],["i18n",`[Experimental] Provides UI translation for some common words.`],["i18nLanguage",`Set the target language.`],["customNavbar",`Enable custom navbar to replace the legacy one. New navbars in live/photos/shop are not affected.`],["customNavbarFill",`Use theme color to fill the navbar.`],["allNavbarFill",`Fill theme color to all navbars, including live/photos/shop.`],["customNavbarShadow",`Drop shadow for custom navbar.`],["customNavbarCompact",`Use compact layout for custom navbar, provides smaller margins and use ... for long titles.`],["customNavbarBlur",`If top banner exists, use background blur effect.`],["playerShadow",`Use theme color shadow for player.`],["narrowDanmaku",`Force preserve danmaku input in web fullscreen mode. May cause buttons on the right out of screen.`],["hideOldEntry",`Hide "Back to old" buttons in new layout.`],["hideBanner",`Hide top banner.`],["allowJumpContinue",`Allow jump to episodes different from current.`],["hideBangumiReviews",`Hide reviews on bangumi page.`],["videoScreenshot",`Append screenshot button to the right of video time. Support keyboard shortcut Ctrl+Alt+C. (Old layout can only use keyboard shortcut)`],["filenameFormat",`Customize the filename format used by Download danmaku, Download video, Video screenshot, View cover.\nThere are a few variables:\n- title: Video title / Live room title\n- ep: Episode title\n- aid: AV ID\n- cid: CID (The unique ID of video, as AV ID may contains multiple episodes)\n- lid: Live room ID\n- y/M/d: Year / Month / Day of month\n- h/m/s/ms: Hour / Minute / Second / Millisecond\n\nThe default format is [title][ - ep], representing video title and episode title. If episode title not exists, only video title is used.\n\nPut your variables inside square brackets, other contents inside brackets (like " - " in "[ - ep]") will only appear when the variable exists. For instance, if the format is [title] - [ep]. Even there's no episode title, that " - " will still appear in filename (which is meaningless). So in default format, when episode title not exists, " - " will also disappear.\n\nA more specific example: To use a "video title + AV ID + time" format, we can use [title][ AVaid] [y]-[M]-[d] [h]-[m]-[s]. And get filenames like "xxxx AV23333 2019-05-29 19-59-44".`],["noLiveAutoplay",`Disable autoplay on live homepage.`],["hideHomeLive",`Hide recommended live rooms on live homepage.`],["sideBarOffset",`Set vertical offset of side bar (in percent). Valid range: -40% ~ 40%.`],["hideCategory",`Hide category bar on main site, you can select category from Home in navbar.`],["foldComment",`Append a "Fold comments" button on the bottom of page when viewing comments in activities. Then you can quickly fold comments without scrolling up.`],["showDeadVideoTitle",`Retrieve title and cover of dead videos in your space`],["useBiliplusRedirect",`Jump to BiliPlus for dead videos.`],["deadVideoTitleProvider",`Select dead video info provider: Watchlater is stable but takes some time, BiliPlus runs fast but it's not implemented yet.`],["useDefaultVideoSpeed",`Set the default video playback rate.`],["defaultVideoSpeed",`Select the default playback rate.`],["seedsToCoins",`Append a Seeds to coins button, click to convert 700 silver seeds to 1 coin, up to one time per day.`],["autoDraw",`Auto click draw button when there're drawing events in live room.`],["keymap",`Enable more keyboard shortcuts for video player:\n- w Web fullscreen\n- t Wide screen / Theater mode\n- r Toggle repeat\n- m Toggle mute\n- d Toggle danmakus\n- l Like\n- c Coin\n- s Favorite\n- Shift + / Playback Speed Adjust`],["doubleClickFullscreen",`Allow double click the player to toggle fullscreen, please note that this feature will not work if 播放器触摸支持 - 启用双击控制 is also enabled.`]]);return{export:{toolTips:t}}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/settings-tooltip.ja-JP.min.js"] = (()=>{return(a,n)=>{const e=new Map([["useDefaultPlayerLayout",`デフォルト・プレーヤー・レイアウトを設定する. できるだけ、適切なページに設定(例えば、番組の放送ページに番組プレーヤーのレイアウトを設定する)、そうでない場合は効果がない可能性があります.\n- 旧版: 伝統的なレイアウト\n- 新版: 動画ページに黙認の新版レイアウト\n注意: 伝統的なレイアウトでは、多くのスクリプト機能が適用されない.`],["defaultPlayerLayout",`動画プレーヤーのレイアウトを設定する.`],["defaultBangumiLayout",`番組プレーヤーのレイアウトを設定する.`],["useDefaultPlayerMode",`デフォルト・プレーヤー・モードが使用するかどうかを制御する、 例えば常规宽屏网页全屏全屏.`],["defaultPlayerMode",`デフォルト・プレーヤー・モードが設定する.`],["applyPlayerModeOnPlay",`再生時にモードを適用する、「いいえ」を選択すると、再生が開始されていないときに適用されます.`],["autoLightOff",`初回放送時には、自動的に消灯モードに入り、再生終了後に自動的に点灯します.`],["useDefaultVideoQuality",`動画を開くときに指定された画質を自動的に選択する. 映像の最高画質が選択された画質より低ければ、映像の最高画質を使用する.`],["defaultVideoQuality",`自動的に選択された映像画質を設定する.`],["useDefaultDanmakuSettings",`デフォルトで弾幕を開くかどうかを設定する.そして、「防挡字幕」と「智能防挡弹幕」を覚えておくかどうかを設定できる.`],["enableDanmaku",`弾幕がデフォルトで開くかどうかを制御する.`],["rememberDanmakuSettings",`弾幕ブロックの設定を覚えるかどうかを制御する、「防挡字幕」と「智能防挡弹幕」を含まれています.これらの設定を動画制御欄で変更すると、すべでの動画にデフォルトでこれらの設定が使用されます.`],["expandDanmakuList",`新版レイアウトでは、他のおすすめ動画が表示されるようにデフォルトで弾幕リストが折りたたまれています.この機能を有効にすると、動画が読み込まれるたびに弾幕リストが自動的に展開されます.`],["expandDescription",`長すぎる動画概要欄はデフォルトで折りたたまれています、この機能を有効にすると完全な動画概要欄が強制的に展開されます.`],["autoContinue",`動画再生時に視聴履歴が検出されると(前回の见た...情報)、自動的に対応する時間に再生される.`],["allowJumpContinue",`履歴のセット数が現在開いているページと矛盾している場合でも、自動的にジャンプします.`],["autoPlay",`動画ページに入ると、自動的に動画の再生が開始されます.`],["skipChargeList",`エンディングの「充电鸣谢」を自動スキップ.`],["framePlayback",`プレーヤーの時間に右側に2つのボタンが追加されました.動画の時間を細かく調整するために使用される. キーボードショートカットに対応しますShift+/. (伝統的なレイアウトでキーボードショートカットのみ使用でき、ボタンは表示されません)`],["videoScreenshot",`プレーヤーの時間に右側に1つのボタンが追加されました.動画スクリーンショットを使用されます. キーボードショートカットに対応しますCtrl+Alt+C. (伝統的なレイアウトでキーボードショートカットのみ使用でき、ボタンは表示されません)`],["playerFocus",`動画/番組の放送ページに入る時、プレーヤーに自動的に移動する.`],["playerFocusOffset",`移動時の垂直オフセット、単位はピクセル(px).`],["outerWatchlater",`動画放送ページの稍后再看を外に移動します.`],["keymap",`動画プレーヤーのためにより多くのショートカットを有効にします:\n- w ウェブの全画面\n- t ワイドモード\n- r サイクル放送\n- m 消音\n- d 弾幕スイッチ\n- l いいね\n- c コインを投げる\n- s お気に入り\n- Shift + / 再生速度を調整する.`],["doubleClickFullscreen",`ダブルクリックして全画面に切り替えることができます.ご注意ください播放器触摸支持 - 启用双击控制と共に使用できない.`],["customStyleColor",`頂欄(スタイルの調整が有効な場合)とダークテーマのテーマ色で埋める、カラープレビューサークルをクリックして、设定の16種類のテーマカラーにできるの、右側のテキストボックスに任意の有効な16進数のカラー値を直接入力することもできます.(#rrggbb#rgb).`],["blurBackgroundOpacity",`设置顶栏对横幅的透明度(0~1), 数值越高顶栏越淡, 当横幅关闭时此选项无效.`],["customNavbar",`カスタム頂欄を使用する.伝統的な頂欄に取って代わる.メインステーション専用です.「生放送」、「アルバム」、「会員購」などには影響しません.`],["customNavbarFill",`テーマ色で頂欄を埋める.`],["allNavbarFill",`テーマ色で他の頂欄を埋める.「生放送」、「アルバム」、「会員購」などが含まれています.`],["customNavbarShadow",`頂欄に投影効果を追加する.`],["customNavbarCompact",`トップページにコンパクトなレイアウトを使する.コンパクトなレイアウトはより小さなスペースを使用し、そして動画のタイトルが長すぎる場合に後者の部分を省略するための 「...」を使用する.`],["customNavbarBlur",`トップの横断幕が存在する場合は、背景のぼかし効果を使用します.`],["useDarkStyle",`ダークテーマでは、ページの明るい部分が暗い色に変わり、夜間の視聴に最適な表示になります.そして多くのテーマカラーを適用します.ぜひお試しください.`],["darkSchedule",`ダークテーマを使用して计画タイムを設定する.この期間を開始または終了すると、ダークテーマは自動的にオンまたはオフになり、終了時刻は開始時刻より短く、翌日と見なされます.例えば18:00から6:00夜の18:00から翌日の6:00までを表しています.`],["darkScheduleStart",`計画期間の開始時刻を設定する.`],["darkScheduleEnd",`計画期間の終了時刻を設定する.`],["compactLayout",`ホームページでコンパクトレイアウトを使用するかどうかを設定します.動画の間隔が狭くなり、フィレットが切り取られ、カテゴリ欄のアイコンは高解像度版を使用します.`],["useCommentStyle",`- 人気コメントのアバターの下にある「フォロー」ボタンを削除します\n- ユーザーの「レベル」アイコンの削除します\n- 発送端末の情報を削除(例えば来自安卓客户端)\n- 送信時刻は右上に移動します\n- ビットアイコンはすべてベクトルアイコンを入れ替えており、高解像度の画面はぼやけません.\n注釈:「フォロー」と「レベル」アイコンはマウスでアバタ上に置くことで,ポップアップした資料カードに表示することができる.`],["simplifyLiveroom",`- 「老爷」アイコンを隠す\n- 「ファン勲章」アイコンを隠す\n- 「活動肩書き」アイコンを隠す\n- 「レベル」アイコンを隠す\n- 「艦長」アイコンを隠す\n- 「全域放送」を隠す\n- 「ウェルカムメッセージ」を隠す (例えば、「xxx老爷进入直播间」)\n- 「ギフト弾幕」を隠す (弾幕リストのみ. 例えば「节奏风暴」など特殊効果は影響を受けません)\n- 「艦長購入のヒント」を隠す (弾幕リストの「xxxは艦長を購入する」)\n- 「抽選のヒント」を隠す (例えば、「艦長」を購入する時、「小飞船」を購入する時、ギフトを抽選のヒント)\n- 配信ルームの「特殊な背景」を無効にする(ダークテーマでは、デフォルトでは「特殊な背景」も無効になっています)\n各項目は、非表示にするかどうかを附加功能の中で個別に選択することができる.`],["preserveRank",`控制是否在搜索框左侧显示排行榜图标.`],["hideBanner",`トップページの横断幕を非表示.`],["playerShadow",`プレーヤーにテーマカラーの投影の追加する.`],["narrowDanmaku",`ウェブの全画面表示されている場合は、幅が狭すぎても弾幕欄を強制的に保持し.この場合には右側の機能ボタンが境界線を押し出してしまう可能性があることに注意する.`],["blurVideoControl",`動画制御欄の背景をぼかします.伝統的な陰影効果は無効になります.`],["customControlBackground",`動画制御欄に半透明な黒を付ける、伝統的な陰影効果を置き換える.`],["customControlBackgroundOpacity",`制御欄に黒の不透明度(0~1)を設定し、数値が大きくなるほど黒が濃くなるように設定します.`],["harunaScale",`スクリーンDPIによって、配信ルームの看板娘のサイズをスケーリングして、ピクセルの解像度を高めます.`],["removeLiveWatermark",`生放送時、隅の透かしを削除する.`],["removeVideoTopMask",`マウスが通過したら、動画の右上隅にあるタイトル層を削除します.`],["hideOldEntry",`放送ページの右側返回旧版を隠す.`],["hideBangumiReviews",`番組ページの採点区を隠す.`],["hideCategory",`ホームページのエリア欄を隠す、それでもエリア欄は頂欄のホームメニューからアクセスできます.`],["removeAds",`ビリビリのさまざまな広告を削除する.ホームページのプロモーションモジュール、モバイルアプリのおすすめ、動画ページの右側にある広告などが含まれます.`],["watchLaterRedirect",`「後で見る」のリンクを通常の再生ページに変更して、新版レイアウトの再生ページを使用する.`],["favoritesRedirect",`個人センターの「お気に入り」の動画を通常の再生ページに変更して、「お気に入り」再生の放送ページではなく.`],["hideTopSearch",`検索欄の推薦語を搜索に置き換える.`],["fullTweetsTitle",`頂欄の情報プレビューページでは、常に完全なタイトルが展開されます.`],["fullPageTitle",`動画選集一覧では、常に完全なタイトルが展開されます.`],["showDeadVideoTitle",`個人センターの中に、失効した動画のタイトルとサムネイルを復元する.`],["useBiliplusRedirect",`失効した動画のリンクを「BiliPlus」ページに変更して.`],["deadVideoTitleProvider",`失効した動画の情報源: 「後で見る」は安定していますが、少し時間がかかります; 「BiliPlus」のスピードは速いですが、書き残していますので、しばらく開けません.`],["biliplusRedirect",`動画、番組、個人センターページで、追加機能转到BiliPlusをクリックして、BiliPlusの対応するページに移動します.`],["imageResolution",`スクリーンDPIによって、より高い解像度の画像を読み込む.(例えば、スクリーンのDPIが200%に調整されている場合、解像度は2倍になり、読み込み時間は長くなります.)`],["oldTweets",`「新版レイアウトの情報」リンクを 「旧版レイアウトの情報」に置き換え、追加機能で 「新版レイアウトの情報」/「旧版レイアウトの情報」を切り替えます.`],["i18n",`インタフェースの一般的なテキストの翻訳を提供する.`],["i18nLanguage",`翻訳言語`],["noLiveAutoplay",`生放送のホームページのおすすめライブルームで自動的に再生を開始することは禁止されています.`],["hideHomeLive",`生放送のホームページのおすすめライブルームを隠す.`],["foldComment",`情報ページにコメントを表示しているときに下部に「コメントを閉じる」ボタンを追加します.`],["seedsToCoins",`追加機能に瓜子换硬币ボタンを追加し、クリックして1日に1回に制限されて、1コインに700銀ヒマワリの種を交換してください.`],["touchNavBar",`頂欄の右側の1級リンクを削除します(大会員から履歴まで).タッチスクリーンデバイスですばやく情報を便利にします.削除されたリンクページはそれぞれのプレビューの中から查看更多に入ることができます.`],["comboLike",`「おすすめ三連」(「いいね」を長押した)のタッチサポートを有効にする.`],["touchVideoPlayer",`制御欄のボタン間隔を大きくして、タッチ操作をより正確にする.プレーヤーのタッチサポートを有効にする:\n- 左右にスワイプして再生の進行状況を調整します\n- 上下にスワイプして音量を調整します\n- 進行状況の調整は左上と右上でキャンセルできます\n- 異なる位置にスワイプすると、3つの異なる感度を使用できます.`],["touchVideoPlayerAnimation",`タッチ調整のヒントボックスにアニメーションの表示と非表示のどうかを決定します.このアニメーションはフレームがドロップされる可能性があります.`],["touchVideoPlayerDoubleTapControl",`操作方法を変更する.クリック:制御欄を表示/非表示, ダブルクリック放送/一時停止.`],["toast",`ウェブページの左下隅に表示スクリプトからのメッセージ、例えば更新通知の送信、エラーメッセージなどです.`],["toastInternalError",`オープンしたら、エラーメッセージは詳細な技術的エラー情報とスタック追跡を表示します.これは通常問題発生の原因を正確に確定するために使用されます.だから、問題を報告する時にこれらの情報はとても役に立ちます.`],["useCache",`スクリプトの読み込み速度を上げるためにキャッシュを使う.`],["filenameFormat",`ファイルの命名形式をカスタマイズする、下载弹幕下载视频视频截图查看封面に作用する.\n使用できる変数は:\n- title: 動画のタイトル/配信ルームのタイトル\n- ep: エピソードタイトル\n- aid: AV番号 (動画アドレス番号)\n- cid: CID (動画の唯一の番号、動画アドレス番号に対応するの動画アドレスは複数の動画を含み得る)\n- lid: 配信ルーム番号\n- y/M/d: 年/月/日\n- h/m/s/ms: 時間/分/秒/ミリ秒\n\nデフォルトの命名形式は[title][ - ep]、動画のタイトル+エピソードタイトル、エピソードタイトルがない場合は動画のタイトルを表示する.\n\n変数は角括弧内に配置され、角括弧内のその他の内容は変数が有効な場合に表示されます. 例えば、命名形式が[title] - [ep]書かれている場合ではエピソードタイトルがなくても、この - ファイル名にも表示されます. デフォルトとして角括弧で囲まれている場合、エピソードタイトルがない、 - が表示されません.\n\n例えば、タイトル+AV番号+時間の命名形式が欲しい、[title][ AVaid] [y]-[M]-[d] [h]-[m]-[s]に設定することができます. xxxx AV23333 2019-06-1 22-22-22ような名前をつけることができます.`],["sideBarOffset",`設定ボタンの垂直オフセット、単位はパーセント、許容範囲は-40%〜40%です.`],["useDefaultVideoSpeed",`デフォルトの再生速度を使用するかどうかを設定します.`],["defaultVideoSpeed",`デフォルトの動画再生速度を設定する.`],["autoDraw",`ライブルームに抽選活動がある場合は、「受け取り」ボタンを自動的にクリックします.`]]);return{export:{toolTips:e}}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/settings-tooltip.loader.min.js"] = (()=>{return(t,e)=>{function n(t){const e=t.querySelector("input");if(e){return e.getAttribute("key")}return null}(async()=>{e.applyStyle("settingsTooltipStyle");const{toolTips:t}=await e.importAsync(`settings-tooltip.${getI18nKey()}`);const s=await SpinQuery.select(".gui-settings-tooltip");if(!s){return}document.querySelectorAll(".gui-settings-content>ul>li").forEach(e=>{e.addEventListener("mouseover",()=>{const i=n(e);if(i===null||t===null){return}const o=t.get(i);if(o!==undefined){s.innerHTML=o;s.classList.add("show")}});e.addEventListener("mouseout",()=>{s.classList.remove("show")})})})()}})(); @@ -1093,7 +1093,7 @@ onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/m onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/theme-colors.min.js"] = (()=>{return(e,r)=>{const t={red:"#e57373",pink:"#F06292",purple:"#BA68C8",deepPurple:"#9575CD",indigo:"#7986CB",blue:"#2196F3",lightBlue:"#00A0D8",cyan:"#00ACC1",teal:"#26A69A",green:"#81C784",lightGreen:"#9CCC65",orange:"#FF9800",deepOrange:"#FF7043",brown:"#A1887F",grey:"#757575",blueGrey:"#78909C"};class o{constructor(){this.reloadColor=(()=>{const e=document.querySelector("html");return function(r){const t=new ColorProcessor(r);const o=e=>t.rgbToString(t.hexToRgba(e));e.style.setProperty("--theme-color",r);for(let t=10;t<=90;t+=10){e.style.setProperty(`--theme-color-${t}`,o(r+t))}e.style.setProperty("--foreground-color",t.foreground);e.style.setProperty("--foreground-color-b",o(t.foreground+"b"));e.style.setProperty("--foreground-color-d",o(t.foreground+"d"));e.style.setProperty("--blue-image-filter",t.blueImageFilter);e.style.setProperty("--pink-image-filter",t.pinkImageFilter);e.style.setProperty("--brightness",t.brightness);e.style.setProperty("--invert-filter",t.filterInvert)}})()}setupDom(){const e=document.querySelector(`input[key='customStyleColor']`);e.addEventListener("change",()=>{this.reloadColor(e.value)});const r=document.querySelector(".predefined-colors-grid");for(const o of Object.values(t)){const t=document.createElement("div");r.insertAdjacentElement("beforeend",t);t.classList.add("predefined-colors-grid-block");t.style.background=o;t.setAttribute("data-color",o);t.addEventListener("click",r=>{const t=r.target.getAttribute("data-color");e.value=t;raiseEvent(e,"input");raiseEvent(e,"change")})}const o=document.querySelector(".predefined-colors");document.querySelector("div.custom-color-preview").addEventListener("click",()=>{o.classList.toggle("opened")})}}return{export:{ThemeColors:o}}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/title.min.js"] = (()=>{return(e,t)=>{function i(e=true){const t=document.title.replace("_番剧_bilibili_哔哩哔哩","").replace("_电影_bilibili_哔哩哔哩","").replace("_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili","").replace(" - 哔哩哔哩直播,二次元弹幕直播平台","").replace(/[\/\\:\*\?"<>\|]/g,"").trim();if(!e||document.URL.indexOf("/bangumi")!==-1){return t}else{const e=document.querySelector("#multi_page .cur-list>ul li.on a");if(e===null){return t}else{const i=e.getAttribute("title");return t+" - "+i}}}function l(e,t=true){const i=new Date;const l={title:document.title.replace(t?/:([^:]+?)_番剧_bilibili_哔哩哔哩/:"_番剧_bilibili_哔哩哔哩","").replace(t?/:([^:]+?)_电影_bilibili_哔哩哔哩/:"_电影_bilibili_哔哩哔哩","").replace(t?/:([^:]+?)_纪录片_bilibili_哔哩哔哩/:"_纪录片_bilibili_哔哩哔哩","").replace("_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili","").replace(/(.*?) - (.*?) - 哔哩哔哩直播,二次元弹幕直播平台/,"$1").trim(),ep:(()=>{if(!t){return null}const e=dq("#eplist_module li.cursor .ep-title");if(e!==null){return e.innerText}const i=document.querySelector("#multi_page .cur-list>ul li.on a");if(i!==null){return i.getAttribute("title")}return null})(),aid:unsafeWindow.aid,cid:unsafeWindow.cid,lid:document.URL.replace(/https:\/\/live\.bilibili\.com\/(\d+).*/,"$1"),y:i.getFullYear().toString(),M:(i.getMonth()+1).toString().padStart(2,"0"),d:i.getDate().toString().padStart(2,"0"),h:i.getHours().toString().padStart(2,"0"),m:i.getMinutes().toString().padStart(2,"0"),s:i.getSeconds().toString().padStart(2,"0"),ms:i.getMilliseconds().toString().substr(0,3)};const r=Object.keys(l).reduce((e,t)=>{return e.replace(new RegExp(`\\[([^\\[\\]]*?)${t}([^\\[\\]]*?)\\]`,"g"),l[t]?`$1${l[t]}$2`:"")},e);return r.replace(/[\/\\:\*\?"<>\|]/g,"")}function r(t=true){if(e.filenameFormat===undefined){return i(t)}return l(e.filenameFormat,t)}return{export:{getFriendlyTitle:r,formatTitle:l}}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/toast.min.css"] = `.toast-card-container{--card-min-width:240px;--card-min-width-negative:-240px;position:fixed;left:0;bottom:0;display:flex;flex-direction:column-reverse;align-items:start;padding-left:16px;z-index:100001;pointer-events:none;overflow:hidden;width:100%;height:100%;transition:.2s ease-out}.toast-card-container *{pointer-events:initial;transition:.2s ease-out}.toast-card.toast-card-container-enter,.toast-card.toast-card-container-leave-to{opacity:0;transform:translateX(var(--card-min-width-negative))}.toast-card{background:#fff;min-width:var(--card-min-width);max-width:60vw;min-height:96px;margin:8px 0;box-shadow:rgba(0,0,0,.2) 0 4px 8px 0;transform-origin:left;overflow:hidden;display:flex;flex-direction:column;border-left-style:solid;transition:.3s cubic-bezier(.18,.89,.32,1.28);position:relative;border-left-width:0;padding-left:var(--corner-radius);border-radius:var(--corner-radius)}.toast-card.toast-card-container-leave-active{position:absolute;transition:.3s cubic-bezier(.6,-.28,.74,.05)}.toast-card-header{display:flex;align-items:center}.toast-card-title{font-size:18px;color:#000;opacity:.5;margin:16px;font-weight:700;flex:1 1 auto}.toast-card-dismiss{height:24px;width:24px;flex:0 0 auto;padding:16px;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:.2s ease-out;transform-origin:center;opacity:.5;box-sizing:content-box}.toast-card-dismiss:hover{transform:scale(1.2)}.toast-card-dismiss:active{transform:scale(1.1)}.toast-card-message{color:#000;font-size:14px;margin:0 16px 16px;white-space:pre-wrap;display:flex;align-items:center;line-height:1.5}.toast-card.toast-default{border-left-color:#444}.toast-card.toast-error{border-left-color:#f44336}.toast-card.toast-info{border-left-color:#2196f3}.toast-card.toast-success{border-left-color:#8bc34a}.toast-card .toast-card-border{position:absolute;height:100%;width:4px;border-radius:var(--corner-radius);height:calc(100% - 10px);width:var(--corner-radius);top:5px;left:0}.toast-card.toast-default .toast-card-border{background-color:#444}.toast-card.toast-error .toast-card-border{background-color:#f44336}.toast-card.toast-info .toast-card-border{background-color:#2196f3}.toast-card.toast-success .toast-card-border{background-color:#8bc34a}.toast-card .link,.toast-card span{display:inline-block;padding:4px 6px;margin:0 2px;background-color:#8882;text-decoration:none;color:#000;transition:.2s ease-out;border-radius:var(--corner-radius)}.toast-card .link:hover{background-color:#8883}.toast-card .link:active{background-color:#8884}@keyframes loading{0%,100%{top:0;left:50%}25%{top:50%;left:100%}50%{top:100%;left:50%}75%{top:50%;left:0}}.toast-card .loading{width:14px;height:14px;display:inline-block;margin-right:14px;position:relative}.toast-card .loading::after{content:"";width:10px;height:10px;background-color:#8884;border-radius:50%;display:block;transform:translateX(-50%) translateY(-50%);position:absolute;top:0;left:50%;animation:1s cubic-bezier(.22,.61,.36,1) infinite loading}`; -onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/toast.min.js"] = (()=>{return(t,s)=>{var e;(function(t){t["Default"]="default";t["Info"]="info";t["Success"]="success";t["Error"]="error"})(e||(e={}));class a{constructor(t="",s="",a=e.Default){this.creationTime=new Date;this.type=a;this.message=t;this.title=s;this.duration=3e3}show(){r.cards.splice(0,0,this);if(this.duration!==undefined){setTimeout(()=>this.dismiss(),this.duration)}}dismiss(){if(r.cards.includes(this)){r.cards.splice(r.cards.indexOf(this),1)}}get element(){return dq(`.toast-card[key='${this.key}']`)}get key(){return this.creationTime.toISOString()}static get container(){return document.querySelector(".toast-card-container")}static createToastContainer(){if(!document.querySelector(".toast-card-container")){document.body.insertAdjacentHTML("beforeend",`\n \n \n `)}}static internalShow(t,s,e,r){const n=new a(t,s,r);n.duration=e;n.show();return n}static show(t,s,a){return this.internalShow(t,s,a,e.Default)}static info(t,s,a){return this.internalShow(t,s,a,e.Info)}static success(t,s,a){return this.internalShow(t,s,a,e.Success)}static error(t,s,a){return this.internalShow(t,s,a,e.Error)}}s.applyStyle("toastStyle");Vue.component("toast-card",{props:["card"],template:`\n
\n
\n
\n

{{card.title}}

\n
\n \n \n \n
\n
\n
\n
\n `});a.createToastContainer();const r=new Vue({el:".toast-card-container",data:{cards:[]}});return{export:a}}})(); +onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/toast.min.js"] = (()=>{return(t,s)=>{var a;(function(t){t["Default"]="default";t["Info"]="info";t["Success"]="success";t["Error"]="error"})(a||(a={}));let e;class r{constructor(t="",s="",e=a.Default){this.creationTime=new Date;this.type=e;this.message=t;this.title=s;this.duration=3e3}show(){r.containerVM.cards.splice(0,0,this);if(this.duration!==undefined){setTimeout(()=>this.dismiss(),this.duration)}}dismiss(){if(r.containerVM.cards.includes(this)){r.containerVM.cards.splice(r.containerVM.cards.indexOf(this),1)}}get element(){return dq(`.toast-card[key='${this.key}']`)}get key(){return this.creationTime.toISOString()}static get containerVM(){if(!e){r.createToastContainer()}return e}static createToastContainer(){if(!document.querySelector(".toast-card-container")){document.body.insertAdjacentHTML("beforeend",`\n \n \n `);e=new Vue({el:".toast-card-container",components:{"toast-card":{props:["card"],template:`\n
\n
\n
\n

{{card.title}}

\n
\n \n \n \n
\n
\n
\n
\n `}},data:{cards:[]}})}}static internalShow(t,s,a,e){const n=new r(t,s,e);n.duration=a;n.show();return n}static show(t,s,e){return this.internalShow(t,s,e,a.Default)}static info(t,s,e){return this.internalShow(t,s,e,a.Info)}static success(t,s,e){return this.internalShow(t,s,e,a.Success)}static error(t,s,e){return this.internalShow(t,s,e,a.Error)}}s.applyStyle("toastStyle");return{export:r}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/touch-navbar.min.js"] = (()=>{return(e,r)=>{SpinQuery.count(()=>document.querySelectorAll("ul.fr>li.nav-item:not(.profile-info), .nav-user-center .nav-item"),6,e=>{e.forEach(e=>{e.style.cursor="pointer";const r=e.querySelector("a.t");r.removeAttribute("href")})})}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/touch-player.min.css"] = `.touch-video-box-wrapper{display:flex;align-items:center;justify-content:center;width:100%;height:100%;position:absolute;top:0;left:0;z-index:14;pointer-events:none}.touch-video-box{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:rgba(0,0,0,.85);position:relative;max-width:520px;max-height:240px;border:4px solid transparent;transform-origin:center}.round-corner .touch-video-box{border-radius:var(--corner-radius)}.touch-video-box-wrapper.simple{align-items:flex-start}.touch-video-box.animation{transition:.2s cubic-bezier(.18,.89,.32,1.28)}.touch-video-info{color:#fff;font-size:2rem;text-align:center;display:flex;align-items:center;justify-content:center;flex-direction:column;height:100%;width:100%}.touch-row{flex-grow:1;display:flex;align-items:center;justify-content:center;width:100%}.touch-info{display:block;color:var(--theme-color)}.touch-result{display:block;font-size:1.5rem;line-height:150%}.touch-speed{display:block;background:rgba(0,0,0,.1);padding:.5em}.touch-progress{position:absolute;bottom:0;left:0;background:var(--theme-color);width:0;height:4px}.round-corner .touch-progress{border-radius:2px}.touch-row-item{flex:1 0 0;display:none;align-items:center;justify-content:center}.touch-row-item-wide{flex:1.5 0 0;display:flex;align-items:center;justify-content:center}.videoshot{background-color:transparent;background-image:none;transform-origin:center;transform:scale(.9)}.adjust-closed{opacity:0;transform:scale(.9)}.adjust-opened{opacity:1;transform:scale(1)}.touch-video-info.speed .touch-row-item{display:flex}.touch-video-info.cancel .touch-progress,.touch-video-info.cancel .touch-result{opacity:0}.disable-original-hover .bilibili-player-video-control-bottom,.disable-original-hover .bilibili-player-video-control-mask{opacity:0!important;visibility:hidden!important}.disable-original-hover .bilibili-player-video-control-wrap,.disable-original-hover.touch-video-control-show .bilibili-player-video-control-bottom,.disable-original-hover.touch-video-control-show .bilibili-player-video-control-mask{opacity:1!important;visibility:visible!important}.bilibili-player-video-control-top,.disable-original-hover .bilibili-player-video-control-top{left:0!important;right:0!important;bottom:0!important}.bilibili-player-video-control-top,.bilibili-player-video-progress-detail{bottom:0!important}.video-control-show .bilibili-player-video-progress-detail{bottom:36px!important}.disable-original-hover.touch-video-control-show .bilibili-player-video-control-top{left:0!important;right:0!important;bottom:38px!important}div.bilibili-player-video-control{height:38px!important;align-items:center!important}.bilibili-player-video-btn{flex-grow:1!important;height:100%!important;display:flex!important;align-items:center!important;justify-content:center!important}.bilibili-player-video-inputbar,.bilibili-player-video-progress{flex-grow:30!important}.bilibili-player-video-quality-menu{display:flex!important;align-items:center!important;justify-content:center!important}.bilibili-player-iconfont-color,.bilibili-player-iconfont-danmaku,.bilibili-player-iconfont-danmaku-off,.bilibili-player-iconfont-fullscreen,.bilibili-player-iconfont-pause,.bilibili-player-iconfont-repeat,.bilibili-player-iconfont-setting,.bilibili-player-iconfont-start,.bilibili-player-iconfont-volume,.bilibili-player-iconfont-volume-max,.bilibili-player-iconfont-volume-min,.bilibili-player-iconfont-web-fullscreen,.bilibili-player-iconfont-widescreen{font-size:2.5rem!important}.bilibili-player-iconfont-next{font-size:2rem!important}.bilibili-player-video-btn-setting-panel,.bilibili-player-video-danmaku-setting-wrap,.bilibili-player.mode-fullscreen .bilibili-player-video-sendbar,.bpui-selectmenu-list{left:unset!important;bottom:38px!important}.bilibili-player-video-volumebar-wrp{left:unset!important}.bilibili-player-video-control-wrap{padding:0!important}.bilibili-player-video-control-bottom{padding:0!important;align-items:center!important}.bilibili-player-iconfont-next,.bilibili-player-iconfont-setting,.bilibili-player-video-btn-volume.video-state-volume-max .bilibili-player-iconfont-volume-max,.bilibili-player-video-btn-volume.video-state-volume-min .bilibili-player-iconfont-volume-min,.bilibili-player-video-btn-volume:not(.video-state-volume-max):not(.video-state-volume-min) .bilibili-player-iconfont-volume,.bilibili-player-video-control-bottom-left{display:flex!important;align-items:center!important}.bilibili-player-video-btn-danmaku{flex-grow:0!important;display:flex!important;align-items:center!important;height:100%!important;margin:0!important;padding:0!important}.bilibili-player.mode-webfullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control-bottom-right{flex-grow:1!important}.bilibili-player.mode-fullscreen .bilibili-player-video-sendbar{bottom:0!important}.bilibili-player .bilibili-player-area .bilibili-player-video-control .bilibili-player-video-btn.bilibili-player-video-btn-fullscreen{margin-right:0!important;padding-right:8px!important}.bilibili-player .bilibili-player-area .bilibili-player-video-control .bilibili-player-video-btn.bilibili-player-video-btn-start{padding-left:8px!important;flex-grow:1.2!important;margin-right:0!important;margin-left:0!important}.bilibili-player .bilibili-player-area .bilibili-player-video-control .bilibili-player-video-btn{padding:0 3px!important}.bilibili-player .bilibili-player-area .bilibili-player-video-control-bottom,.bilibili-player .bilibili-player-area .bilibili-player-video-control-bottom-right,.bilibili-player-video-control-bottom-left{height:100%!important;margin:0!important}.bilibili-player-video-btn-setting-panel-hover-bridge{display:none!important}.disable-original-hover .bilibili-player-video-control-wrap:hover .bilibili-player-video-control-top .bilibili-player-video-progress-slider,.disable-original-hover.bilibili-player-area.video-control-show .bilibili-player-video-control-top .bilibili-player-video-progress-slider{height:2px!important}.disable-original-hover.bilibili-player-area .bilibili-player-video-control .bilibili-player-video-progress-detail.show{bottom:1px!important}.disable-original-hover.bilibili-player-area .subtitle-position.subtitle-position-bc,.disable-original-hover.bilibili-player-area .subtitle-position.subtitle-position-bl,.disable-original-hover.bilibili-player-area .subtitle-position.subtitle-position-br{bottom:20px!important}.disable-original-hover.touch-video-control-show .subtitle-position.subtitle-position-bc,.disable-original-hover.touch-video-control-show .subtitle-position.subtitle-position-bl,.disable-original-hover.touch-video-control-show .subtitle-position.subtitle-position-br{bottom:44px!important}.bilibili-player.mode-fullscreen .disable-original-hover.touch-video-control-show .subtitle-position.subtitle-position-bc,.bilibili-player.mode-fullscreen .disable-original-hover.touch-video-control-show .subtitle-position.subtitle-position-bl,.bilibili-player.mode-fullscreen .disable-original-hover.touch-video-control-show .subtitle-position.subtitle-position-br,.bilibili-player.mode-webfullscreen .disable-original-hover.touch-video-control-show .subtitle-position.subtitle-position-bc,.bilibili-player.mode-webfullscreen .disable-original-hover.touch-video-control-show .subtitle-position.subtitle-position-bl,.bilibili-player.mode-webfullscreen .disable-original-hover.touch-video-control-show .subtitle-position.subtitle-position-br{bottom:60px!important}.bilibili-player:not(.mode-webfullscreen):not(.mode-fullscreen) .bilibili-player-area:not(.disable-original-hover) .bilibili-player-video-control-wrap:hover .bilibili-player-video-control-top .bilibili-player-video-progress-slider,.bilibili-player:not(.mode-webfullscreen):not(.mode-fullscreen) .bilibili-player-area:not(.disable-original-hover).video-control-show .bilibili-player-video-control-top .bilibili-player-video-progress-slider{height:74px!important}.bilibili-player.mode-fullscreen .disable-original-hover .bilibili-player-video-control-top{opacity:1!important}#bofqi *{-webkit-tap-highlight-color:transparent!important}@media screen and (min-width:750px){.bilibili-player.mode-fullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control-bottom-center .bilibili-player-video-sendbar .bilibili-player-video-inputbar,.bilibili-player.mode-webfullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control-bottom-center .bilibili-player-video-sendbar .bilibili-player-video-inputbar{background:#fff1!important}.bilibili-player.mode-fullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control,.bilibili-player.mode-webfullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control{height:100%!important;margin:0!important}.bilibili-player.mode-fullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control-bottom,.bilibili-player.mode-webfullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control-bottom{margin:0!important}.bilibili-player.mode-fullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control-bottom-left,.bilibili-player.mode-webfullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control-bottom-left{height:100%!important}.bilibili-player-video-btn.bilibili-player-video-btn-start{flex-grow:.5!important}.player .bilibili-player.mode-fullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control-top,.player .bilibili-player.mode-webfullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control-top{left:0!important;right:0!important}.player .bilibili-player.mode-fullscreen .disable-original-hover.bilibili-player-video-control-wrap .bilibili-player-video-control-top,.player .bilibili-player.mode-webfullscreen .disable-original-hover.bilibili-player-video-control-wrap .bilibili-player-video-control-top{left:0!important;right:0!important;bottom:0!important}.player .bilibili-player.mode-fullscreen .disable-original-hover.touch-video-control-show .bilibili-player-video-control-top,.player .bilibili-player.mode-webfullscreen .disable-original-hover.touch-video-control-show .bilibili-player-video-control-top{left:0!important;right:0!important;bottom:54px!important}.mode-fullscreen .bilibili-player-area.mouse-hover:not(.disable-original-hover) .bilibili-player-video-control-top,.mode-fullscreen .bilibili-player-area.video-control-show:not(.disable-original-hover) .bilibili-player-video-control-top,.mode-webfullscreen .bilibili-player-area.mouse-hover:not(.disable-original-hover) .bilibili-player-video-control-top,.mode-webfullscreen .bilibili-player-area.video-control-show:not(.disable-original-hover) .bilibili-player-video-control-top{left:0!important;right:0!important;bottom:48px!important}}`; onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/min/touch-player.min.js"] = (()=>{return(t,e)=>{const i=t=>{let e=0;let i=0;while(t&&!isNaN(t.offsetLeft)&&!isNaN(t.offsetTop)){e+=t.offsetLeft-t.scrollLeft;i+=t.offsetTop-t.scrollTop;t=t.offsetParent}return{x:e,y:i}};const s=t=>{t=Math.abs(t);const e=Math.floor(t/3600);const i=Math.floor((t-e*3600)/60);const s=t-e*3600-i*60;let o=fixed(s)+"秒";if(i>0){o=i+"分"+o}if(e>0){o=e+"时"+o}return o};const o=t=>{t=Math.abs(t);const e=Math.floor(t/3600);const i=Math.floor((t-e*3600)/60);const s=t-e*3600-i*60;let o=(s<10?"0":"")+fixed(s);o=(i<10?"0":"")+i+":"+o;o=(e<10?"0":"")+e+":"+o;return o};class n{constructor(t){this.action=new l(t);this.onTouchStart=null;this.onTouchEnd=null;this.direction=null;t.addEventListener("touchstart",t=>{this.xDown=t.touches[0].clientX;this.yDown=t.touches[0].clientY;if(this.onTouchStart){this.onTouchStart(t)}});t.addEventListener("touchmove",e=>{if(!this.xDown||!this.yDown){return}const s=e.touches[0].clientX;const o=e.touches[0].clientY;const n=i(t);const l={x:(e.touches[0].pageX-n.x)/t.clientWidth,y:(e.touches[0].pageY-n.y)/t.clientHeight,width:t.clientWidth,height:t.clientHeight};const a=this.xDown-s;const c=this.yDown-o;if(!this.direction){let t="";if(Math.abs(a)>Math.abs(c)){t="horizontal"}else{t="vertical"}this.direction=t}else{if(this.direction==="vertical"){this.action.startAction(this.direction,c,l)}else if(this.direction==="horizontal"){this.action.startAction(this.direction,-a,l)}}if(e.cancelable){e.preventDefault()}});t.addEventListener("touchend",t=>{this.xDown=null;this.yDown=null;this.direction=null;if(this.onTouchEnd){this.onTouchEnd(t)}})}}class l{constructor(t){this.lowSpeedForward=null;this.lowSpeedBackward=null;this.mediumSpeedForward=null;this.mediumSpeedBackward=null;this.highSpeedForward=null;this.highSpeedBackward=null;this.volumeUp=null;this.volumeDown=null;this.brightnessUp=null;this.brightnessDown=null;this.speedCancel=null;this.minSwipeDistance=20;this.onActionStart=null;this.onActionEnd=null;this.element=t;this.touchStart=false;this.startPosition=null;this.lastAction=null;t.addEventListener("touchstart",()=>{this.touchStart=true});t.addEventListener("touchend",()=>{this.startPosition=null;this.onActionEnd&&this.onActionEnd(this.lastAction);this.lastAction=null})}startAction(t,e,i){if(this.touchStart){this.onActionStart&&this.onActionStart(t);this.startPosition=i;this.touchStart=false}if(t==="vertical"){let t;let s;if(this.startPosition.x<1/2){t=this.brightnessUp;s=this.brightnessDown;const o=Math.round(200*(e-this.minSwipeDistance)/(1.5*i.height));if(e>0){t&&t(o)}else{s&&s(o)}this.lastAction={type:"brightness",brightness:o}}else{t=this.volumeUp;s=this.volumeDown;const o=Math.round(200*(e-this.minSwipeDistance)/(1.5*i.height));if(e>0){t&&t(o)}else{s&&s(o)}this.lastAction={type:"volume",volume:o}}}else if(t==="horizontal"){if(i.y<1/3&&(i.x<.1||i.x>.9)){this.speedCancel&&this.speedCancel();this.lastAction=null}else{let t=0;let i;let s;if(this.startPosition.y<1/3){t=.05;i=this.lowSpeedForward;s=this.lowSpeedBackward}else if(this.startPosition.y>=1/3&&this.startPosition.y<=2/3){t=.2;i=this.mediumSpeedForward;s=this.mediumSpeedBackward}else{t=1;i=this.highSpeedForward;s=this.highSpeedBackward}if(e>0){const s=(e-this.minSwipeDistance)*t;i&&i(s);this.lastAction={type:"playback",seconds:s}}else{const i=(e+this.minSwipeDistance)*t;s&&s(i);this.lastAction={type:"playback",seconds:i}}}}}}class a{constructor(){this.aid=unsafeWindow.aid;this.cid=unsafeWindow.cid;this.cidData=null;this.supportWebp=a.supportWebp}getVideoshot(t,e){if(!(this.aid&&this.cid)){return}if(!this.cidData){Ajax.getText(`https://api.bilibili.com/x/player/videoshot?aid=${this.aid}&cid=${this.cid}&index=1`).then(i=>{this.cidData=JSON.parse(i).data;this.getVideoshot(t,e)})}else{const i=this.cidData;const s=i.index;let o=0;for(let e=0;e=s[e]&&tt.replace(".jpg",".jpg@.webp"))}const l=parseInt(i.pv_x_len)||10;const a=parseInt(i.pv_y_len)||10;const c=parseInt(i.pv_x_size)||160;const r=parseInt(i.pv_y_size)||90;const h=-(o%100%l)*c;const d=-Math.floor(o%100/a)*r;e({width:c,height:r,backgroundImage:`url(${n[Math.floor(o/100)]})`,backgroundPosition:`${h}px ${d}px`})}}static get supportWebp(){try{const t=document.createElement("canvas");if(t.getContext&&t.getContext("2d")){try{return t.toDataURL("image/webp").indexOf("data:image/webp")===0}catch(t){return false}}else{return false}}catch(t){return false}}}function c(t){t.unbind("click")}function r(t){if($(".touch-video-box").length!==0){return}$(".bilibili-player-video-subtitle").before(`\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
`);let e=$("video");const i=e.prop("duration");const l=new n(t.get(0));const c=document.querySelector(".touch-video-info");const r=document.querySelector(".touch-video-box");let h=100;let d=Math.round(e.prop("volume")*100);const u=t=>{t/=100;if(t<0){t=0}else if(t>1){t=1}e.prop("volume",t);$(".bilibili-player-video-volume-num").text(Math.round(t*100));$(".bui-thumb").css("transform",`translateY(-${48*t}px)`);$(".bui-track-vertical .bui-bar").css("transform",`scaleY(${t})`);if(t===0){$(".bilibili-player-video-btn-volume").addClass("video-state-volume-min");$(".bilibili-player-video-btn-volume").removeClass("video-state-volume-max");e.prop("muted",true)}else if(t===1){$(".bilibili-player-video-btn-volume").removeClass("video-state-volume-min");$(".bilibili-player-video-btn-volume").addClass("video-state-volume-max");e.prop("muted",false)}else{$(".bilibili-player-video-btn-volume").removeClass("video-state-volume-min");$(".bilibili-player-video-btn-volume").removeClass("video-state-volume-max");e.prop("muted",false)}};l.action.onActionStart=(t=>{r.classList.add("adjust-opened");c.classList[t==="vertical"?"remove":"add"]("speed");e=$("video");d=Math.round(e.prop("volume")*100);const i=e.css("filter").match(/brightness\((.+)\)/);h=Math.trunc((i?i[1]:1)*100)});const p=new a;const v=t=>{return n=>{const l=e.prop("currentTime");const a=fixed(100*l/i);let r=l+n;let h=fixed(100*r/i);let d=n;if(r>i){r=i;h=100;d=i-l}else if(r<0){r=0;h=0;d=l}const u=`${o(l)} (${a}%)
👇
${o(r)} (${h}%)`;c.classList.remove("cancel");c.querySelector(".touch-speed").innerHTML=`${t}速`;c.querySelector(".touch-info").innerHTML=`进度: ${n>0?"+":"-"}${s(d)}`;c.querySelector(".touch-result").innerHTML=u;p.getVideoshot(r,t=>$(".videoshot").css(t));$(".touch-progress").css("width",`${h}%`)}};l.action.lowSpeedBackward=v("低");l.action.lowSpeedForward=v("低");l.action.mediumSpeedBackward=v("中");l.action.mediumSpeedForward=v("中");l.action.highSpeedBackward=v("高");l.action.highSpeedForward=v("高");const f=t=>{let e=d+t;let i=Math.abs(t);if(e>100){e=100;i=100-d}else if(e<0){e=0;i=d}const s=`${d} 👉 ${e}`;u(e);c.classList.remove("cancel");c.querySelector(".touch-info").innerHTML=`音量: ${t>0?"+":"-"}${i}`;c.querySelector(".touch-result").innerHTML=s;$(".touch-progress").css("width",`${e}%`)};l.action.volumeUp=f;l.action.volumeDown=f;const b=t=>{let i=h+t;let s=Math.abs(t);if(i>100){i=100;s=100-h}else if(i<0){i=0;s=h}const o=`${h} 👉 ${i}`;e.css("filter",`brightness(${i/100})`);c.classList.remove("cancel");c.querySelector(".touch-info").innerHTML=`亮度: ${t>0?"+":"-"}${s}`;c.querySelector(".touch-result").innerHTML=o;$(".touch-progress").css("width",`${i}%`)};l.action.brightnessUp=b;l.action.brightnessDown=b;l.action.speedCancel=(()=>{c.querySelector(".touch-info").innerHTML=`取消时间调整`;c.classList.add("cancel")});l.action.onActionEnd=(t=>{if(!unsafeWindow.touchPlayerDebug){if(t){if(t.type==="playback"){let s=e.prop("currentTime");s+=t.seconds;if(s<0){s=0}else if(s>i){s=i}e.prop("currentTime",s)}else if(t.type==="volume"){const t=JSON.parse(localStorage.bilibili_player_settings);t.video_status.volume=e.prop("volume");localStorage.bilibili_player_settings=JSON.stringify(t)}}r.classList.remove("adjust-opened")}})}function h(t){if(!t.hasClass("disable-original-hover")){t.addClass("disable-original-hover");const e=unsafeWindow.$(".bilibili-player-video");const i="touch-video-control-show";const s=e.data("events").click[0].handler;const o=new DoubleClickEvent(t=>s(t),()=>t.toggleClass(i));e.unbind("click");o.bind(e[0])}}const d=()=>{SpinQuery.any(()=>$(".bilibili-player-iconfont,.bilibili-player-video-quality-menu"),c);SpinQuery.condition(()=>$(".bilibili-player-video"),t=>t.length>0&&$("video").length>0&&$("video").prop("duration"),r);if(t.touchVideoPlayerDoubleTapControl){new SpinQuery(()=>$(".bilibili-player-area"),t=>t.length>0&&unsafeWindow.$&&unsafeWindow.$(".bilibili-player-video").data("events"),h).start()}};Observer.videoChange(d);e.applyStyle("touchPlayerStyle")}})(); diff --git a/bilibili-evolved.user.js b/bilibili-evolved.user.js index b211a89f9..f5b855ec2 100644 --- a/bilibili-evolved.user.js +++ b/bilibili-evolved.user.js @@ -962,7 +962,7 @@ class ColorProcessor { const onlineData = {}; onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/about.min.css"] = `.bilibili-evolved-about{height:100%;width:450px;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:16px 36px 0;margin-bottom:36px;display:flex;flex-direction:column;overflow:auto}.about-content .name{font-size:24pt;display:none;align-items:center}.about-content .name svg{width:100%}body.dark .about-content .name.dark,body:not(.dark) .about-content .name.light{display:flex}.about-content .version{font-size:10pt;font-weight:700;opacity:.6;margin-top:6px;margin-bottom:6px;align-self:center}.about-content .love{font-size:10pt;margin-bottom:24px;align-self:center}.about-content .love a{color:inherit!important}.about-content section{font-size:10pt;margin-top:16px}.about-content section .title{display:flex;justify-content:center;text-transform:uppercase;font-weight:700;font-size:13pt;letter-spacing:3px;margin:8px 0 16px}.about-content section .supporter,.about-content section a{color:var(--theme-color)!important;margin-right:8px;display:inline-flex}.about-content section .supporter{user-select:none}.about-content section .supporter:not(:last-child)::after,.about-content section a:not(:last-child)::after{content:","}@keyframes spinner{to{transform:translate(-50%,-50%) rotate(360deg)}}.about-content section.participants .fetching{margin-right:8px;position:relative;display:inline-flex}.about-content section.participants .fetching::before{content:"Loading..."}`; onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/about.min.html"] = ``; -onlineData["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 s=GM_info.script.name.match(/Bilibili Evolved \((.*)\)/);const a=s?s[1]:"Stable";new Vue({el:".bilibili-evolved-about",data:{version:t.currentVersion,clientType:a,logoImage:null,logoImageDark:null,branch:null,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),fetching:true,participants:[],websites:[{name:"GitHub",link:"https://github.com/the1812/Bilibili-Evolved/"},{name:"Greasy Fork",link:"https://greasyfork.org/zh-CN/scripts/373563-bilibili-evolved"}],components:[{name:"Vue.js",link:"https://cn.vuejs.org/index.html"},{name:"JSZip",link:"https://stuk.github.io/jszip/"},{name:"jQuery",link:"http://jquery.com/"},{name:"debounce",link:"https://github.com/component/debounce/"},{name:"Slip.js",link:"https://github.com/kornelski/slip"},{name:"MDI",link:"https://materialdesignicons.com"}]},mounted(){document.querySelector(".bilibili-evolved-about").addEventListener("be:about-load",()=>{this.init()},{once:true})},methods:{async getLogos(){this.logoImage=await Ajax.getText(`https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/images/bilibili-evolved-wide.svg`);this.logoImageDark=await Ajax.getText(`https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/images/bilibili-evolved-wide-dark.svg`)},async init(){this.branch=/Preview|Local/.test(a)?"preview":"master";this.getLogos();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}`).catch(()=>{e=[{name:"电波无法到达(´・_・`)",link:null}]});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);this.fetching=false}}})})()}})(); +onlineData["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);document.querySelector(".bilibili-evolved-about").addEventListener("be:about-load",()=>{const e=(t,e)=>t.charCodeAt(0)-e.charCodeAt(0);const i=(t,i)=>e(t.name,i.name);const o=GM_info.script.name.match(/Bilibili Evolved \((.*)\)/);const n=o?o[1]:"Stable";new Vue({el:".bilibili-evolved-about",data:{version:t.currentVersion,clientType:n,logoImage:null,logoImageDark:null,branch:null,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(i),fetching:true,participants:[],websites:[{name:"GitHub",link:"https://github.com/the1812/Bilibili-Evolved/"},{name:"Greasy Fork",link:"https://greasyfork.org/zh-CN/scripts/373563-bilibili-evolved"}],components:[{name:"Vue.js",link:"https://cn.vuejs.org/index.html"},{name:"JSZip",link:"https://stuk.github.io/jszip/"},{name:"jQuery",link:"http://jquery.com/"},{name:"debounce",link:"https://github.com/component/debounce/"},{name:"Slip.js",link:"https://github.com/kornelski/slip"},{name:"MDI",link:"https://materialdesignicons.com"}]},mounted(){this.init()},methods:{async getLogos(){this.logoImage=await Ajax.getText(`https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/images/bilibili-evolved-wide.svg`);this.logoImageDark=await Ajax.getText(`https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/images/bilibili-evolved-wide-dark.svg`)},async init(){this.branch=/Preview|Local/.test(n)?"preview":"master";this.getLogos();const t=new Set;let e=[];let o=1;do{e=await Ajax.getJson(`https://api.github.com/repos/the1812/Bilibili-Evolved/issues?state=all&direction=asc&per_page=100&page=${o}`).catch(()=>{e=[{name:"电波无法到达(´・_・`)",link:null}]});o++;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(i);this.fetching=false}}})},{once:true})})()}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/aria2-rpc.min.js"] = (()=>{return(t,e)=>{function o(){const e=t.aria2RpcOption;const o=e.host.match(/^http[s]?:\/\//)?e.host:"http://"+e.host;const r="aria2.addUri";return{option:e,host:o,methodName:r}}async function r(t,e=false){try{let o=await t();if(typeof o==="string"){o=JSON.parse(o)}if(o.error!==undefined){if(o.error.code===1){logError(`请求遭到拒绝, 请检查您的密钥相关设置.`)}else{logError(`请求发生错误, code = ${o.error.code}, message = ${o.error.message}`)}return false}if(!e){Toast.success(`成功发送了请求, GID = ${o.result}`,"aria2 RPC",5e3)}return true}catch(t){logError(`无法连接到RPC主机.`);return false}}async function s(t,e=false){const{option:s,host:n,methodName:a}=o();return await r(async()=>{const e=window.btoa(unescape(encodeURIComponent(JSON.stringify(t.params))));const o=`${n}:${s.port}/jsonrpc?method=${a}&id=${t.id}¶ms=${e}`;console.log(`RPC request:`,o);if(o.startsWith("http:")){return await new Promise((t,e)=>{GM_xmlhttpRequest({method:"GET",url:o,responseType:"json",onload:e=>t(e.response),onerror:t=>e(t)})})}else{return await Ajax.getJson(o)}},e)}async function n(t,e=false){const{option:s,host:n,methodName:a}=o();return await r(async()=>{const e=`${n}:${s.port}/jsonrpc`;const o={method:a,id:t.id,params:t.params};if(e.startsWith("http:")){return await new Promise((t,r)=>{GM_xmlhttpRequest({method:"POST",url:e,responseType:"json",data:JSON.stringify(o),onload:e=>t(e.response),onerror:t=>r(t)})})}else{return await Ajax.postJson(e,o)}},e)}async function a(e,o=false){const r=t.aria2RpcOption;for(const t of e){let e;if(r.method==="get"){e=await s(t,o)}else{e=await n(t,o)}if(o===true&&e===false){logError(`${decodeURIComponent(t.id)} 导出失败`)}}}return{export:{sendRpc:a}}}})(); onlineData["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)}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/auto-draw.min.js"] = (()=>{return(t,n)=>{(async()=>{if(!/^https:\/\/live\.bilibili\.com\/[\d]+/.test(document.URL)){return}const t=await SpinQuery.condition(()=>dq(".chat-popups-section"),t=>t.querySelector("chat-draw-area")===null);if(!t){console.warn("[自动领奖] 未能找到弹窗容器");return}Observer.childListSubtree(t,()=>{let t;console.log("draw button = ",dq(".chat-popups-section .draw>span:nth-child(3)"));t=dq(".chat-popups-section .draw>span:nth-child(3)");if(t===null){const t=dq(".chat-popups-section .function-bar>span:nth-child(3)");if(t!==null){const n=Observer.attributes(t,()=>{if(t.style.display!=="none"){n.forEach(t=>t.stop());t.click()}})}}if(t!==null){t.click()}})})()}})(); @@ -1019,7 +1019,7 @@ onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/mi onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/full-tweets-title.min.js"] = (()=>{return(t,n)=>{const i=`\n.dynamic-m .info {\n height: auto !important;\n}\n.dynamic-m .info a {\n white-space: normal !important;\n}\n.custom-navbar .video-activity-card .title {\n display: block !important;\n max-height: unset !important;\n}\n.custom-navbar .video-activity-card .cover {\n height: unset !important;\n}\n`;return n.toggleStyle(i,"full-tweets-title")}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/gui-settings.min.css"] = `.gui-settings-icon-panel{height:auto;display:flex;flex-direction:column;justify-content:center;align-items:center;position:fixed;top:calc(50% + var(--side-bar-offset));left:0;width:32px;z-index:99999;transform:translateY(-50%);user-select:none}.gui-settings-icon-panel i{transition:.2s;opacity:.6;transform:rotate(360deg);font-size:12px}.gui-settings-widgets:hover i,.gui-settings:hover i{opacity:.75;transform:rotate(0)}.gui-settings,.gui-settings-widgets{display:flex;justify-content:center;align-items:center;cursor:pointer;-webkit-tap-highlight-color:transparent;margin:16px 0;width:24px;height:24px;transition:.2s;opacity:1;transform-origin:center!important;transform:translateX(-16px);background-color:#dddc;border-radius:0 50% 50% 0;padding:6px;box-sizing:content-box}body.dark .gui-settings,body.dark .gui-settings-widgets{background-color:rgba(0,0,0,.3)}.gui-settings-widgets:hover,.gui-settings:hover{opacity:1;transform:translateX(0)}.gui-settings-footer,.gui-settings-header{flex-grow:0;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;z-index:10;padding:32px}.gui-settings-footer{height:80px;justify-content:center;position:relative}.gui-settings-content{flex-grow:1;overflow:auto;position:relative;overscroll-behavior:contain}.gui-settings-content ul{padding:0;margin:0}.gui-settings-content ul li{font-size:16px;margin-bottom:18px;display:flex;height:24px;transition:.2s;box-sizing:content-box}.gui-settings-content ul li.disabled,.gui-settings-content ul li:not(.category).folded{height:0;margin:0;overflow:hidden}.gui-settings-content ul li.indent-0{margin-left:16px}.gui-settings-content ul li.indent-1{margin-left:80px}.gui-settings-content ul li.indent-2{margin-left:144px}.gui-settings-content ul li.indent-center{align-items:center;justify-content:center}.gui-settings-content ul li.category{padding:16px 0;margin-bottom:18px;border-top:1px dashed #8884;border-bottom:1px dashed #8884;background:#fff;position:-webkit-sticky;position:sticky;top:0;z-index:101;cursor:pointer;transition:.2s ease-out;-webkit-tap-highlight-color:transparent}.gui-settings-content ul li.category.folded{margin-bottom:-1px}.gui-settings-content ul li.category *{opacity:.8}.gui-settings-title{font-size:16pt;flex:0 0 auto}.gui-settings-box .gui-settings-title{margin-right:64px}.gui-settings-search[type=text]{flex:1 0 auto;height:auto;border:none;padding:6px;font-size:12pt;width:40%;border-bottom:1px solid #8884;transition:.2s;color:inherit;background:0 0;box-sizing:border-box;outline:0!important}.gui-settings-close{width:24px;height:24px;padding:16px}.gui-settings-header .gui-settings-close{cursor:pointer;-webkit-tap-highlight-color:transparent}.gui-settings-textbox-container{display:flex;justify-content:center;align-items:center;-webkit-tap-highlight-color:transparent}.gui-settings-dropdown-span,.gui-settings-textbox-container span{margin:0 16px;transition:.2s}.gui-settings-textbox-container input{border:none;height:100%;max-width:90px;padding:4px 8px;background:#8884;transition:.2s;font-size:16px}.gui-settings-textbox-container input:disabled,.gui-settings-textbox-container.disabled div,.gui-settings-textbox-container.disabled span{opacity:.5}.gui-settings-checkbox-container{cursor:pointer;display:flex;width:100%;justify-content:start;align-items:center;padding:0 16px;-webkit-tap-highlight-color:transparent}.gui-settings-checkbox-container input{visibility:collapse;transition:.2s;width:0;position:absolute}.gui-settings-checkbox-container .gui-settings-ok{width:24px;height:24px;margin-right:16px;transition:.2s}.gui-settings-checkbox-container input~.gui-settings-ok{background-color:#8884}.gui-settings-checkbox-container input:checked~.gui-settings-ok{background-color:var(--theme-color)}.gui-settings-checkbox-container input~.gui-settings-ok>i{opacity:0;transform-origin:center;transform:scale(.9)}.gui-settings-checkbox-container input:checked~.gui-settings-ok>i{opacity:1}.gui-settings-checkbox-container input:disabled~.gui-settings-ok,.gui-settings-checkbox-container input:disabled~span{opacity:.5}button.gui-settings-button{padding:6px 20px;margin:0 4px;max-height:34px;border:none;background:#8884;font-size:16px;cursor:pointer;transition:.2s ease-out;font-family:inherit;-webkit-tap-highlight-color:transparent}button.gui-settings-button:hover{opacity:.9}button.gui-settings-button:active{opacity:.8}button.gui-settings-button:focus{outline:0}.custom-color-preview{width:28px;height:28px;border-radius:50%;background:var(--theme-color);margin-right:16px;position:relative;cursor:pointer;box-sizing:border-box;box-shadow:0 2px 4px 0 var(--theme-color-40)}.predefined-colors{transition:.2s;display:flex;opacity:0;background:#fff;width:168px;height:168px;position:absolute;box-shadow:rgba(0,0,0,.2) 0 4px 8px 0;top:32px;left:calc(-84px + 50%);transform:scale(0);transform-origin:top;z-index:9}.predefined-colors.opened{opacity:1;transform:scale(1)}.predefined-colors-grid{display:grid;grid-template-columns:auto auto auto auto;margin:0;flex-grow:1}.predefined-colors-grid-block{width:100%;height:100%;justify-self:center;align-self:center;cursor:pointer;transform-origin:center;transition:.1s ease-out}.predefined-colors-grid-block:hover{transform:scale(1.1);box-shadow:0 0 8px 1px #0004}input[key]:focus{outline:0}input[type=text][key]{height:auto;border:none}.gui-settings-label{margin:0 16px;font-size:16px}.hidden{display:none!important}@supports (backdrop-filter:blur(24px)) or (-webkit-backdrop-filter:blur(24px)){.gui-settings-box.blur li.category{-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);background:0 0}.gui-settings-box.blur,.gui-settings-box.blur .gui-settings-content,.gui-settings-box.blur .gui-settings-footer,.gui-settings-box.blur .gui-settings-header{background:#fff8}.gui-settings-box.blur .gui-settings-content,.gui-settings-box.blur .gui-settings-footer,.gui-settings-box.blur .gui-settings-header{-webkit-backdrop-filter:blur(64px);backdrop-filter:blur(64px)}}li.category i.icon-arrow{transition:.2s ease-out}li.category.folded i.icon-arrow{transform:rotate(180deg)}.gui-settings-dropdown-container{display:flex;align-items:center}.gui-settings-dropdown{position:relative;cursor:pointer;-webkit-tap-highlight-color:transparent;background-color:#8884;display:inline-flex;align-items:center;height:32px}.gui-settings-dropdown>i{transition:.2s ease-out;transform-origin:center;transform:rotate(180deg)}.gui-settings-dropdown>ul{position:absolute;top:calc(100%);width:100%;cursor:pointer;background:#fff;transform-origin:top;transform:scaleY(0);transition:.2s cubic-bezier(.6,-.28,.74,.05);display:flex;flex-direction:column;align-items:center;box-shadow:rgba(0,0,0,.2) 0 4px 8px 0;z-index:100}.gui-settings-dropdown ul li{margin:0;padding:8px 0;height:auto;width:100%;justify-content:center}.gui-settings-dropdown ul li:hover{background:rgba(0,0,0,.16)}.gui-settings-dropdown.opened>ul{transform:scaleY(1);transition-timing-function:cubic-bezier(.18,.89,.32,1.28)}.gui-settings-dropdown.opened>i{transform:rotate(0)}.gui-settings-dropdown input{cursor:pointer;border:none;height:100%;max-width:80px;padding:4px 8px;transition:.2s;font-size:16px;background-color:transparent}.gui-settings-dropdown input[key=defaultPlayerMode]{max-width:120px}.gui-settings-dropdown input[key=defaultBangumiLayout],.gui-settings-dropdown input[key=defaultPlayerLayout],.gui-settings-dropdown input[key=defaultVideoSpeed]{max-width:50px}.gui-settings-box input[key=filenameFormat]{max-width:500px}.gui-settings-mask{height:calc(100% + 5px);width:calc(100% + 5px);opacity:0;background:#000a;position:fixed;top:0;left:0;z-index:99999;pointer-events:none;transition:.3s cubic-bezier(0,.86,.58,1);overscroll-behavior:contain}.gui-settings-mask.opened{opacity:1;pointer-events:initial}.gui-settings-mask.opened.transparent{opacity:0;transition:.3s cubic-bezier(0,.86,.58,1) .3s}.gui-settings-box,.gui-settings-widgets-box{height:100%;width:420px;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:none;flex-direction:column;box-shadow:4px 0 16px 0 #0000}.gui-settings-box.loaded,.gui-settings-widgets-box.loaded{display:flex}.gui-settings-widgets-box{min-width:200px;width:auto}.gui-settings-box.opened,.gui-settings-widgets-box.opened{transform:translateX(0);box-shadow:4px 0 16px 0 #0005}.gui-settings-widgets-box>.title{margin:32px;font-size:16pt}.gui-settings-widgets-box>.widgets-container{padding:32px;display:flex;flex-direction:column;align-items:start;justify-content:start;position:relative;overscroll-behavior:contain;overflow:auto;height:100%}.gui-settings-widgets-box>.widgets-container .empty-tip{font-size:10pt;display:none}.gui-settings-widgets-box>.widgets-container .empty-tip.show{display:block}.gui-settings-widgets-box>.gui-settings-header{justify-content:start}.gui-settings-flat-button,.gui-settings-flat-button a,.gui-settings-flat-button a:hover{display:flex;align-items:center;justify-content:center;color:inherit}.gui-settings-flat-button{width:auto;padding:8px 16px;background:#8882;border:none;color:#000;cursor:pointer;transition:.2s ease-out;font-size:10pt;flex:0 0 auto;margin:4px;border-radius:20px;box-shadow:#0004 0 2px 4px;height:40px;box-sizing:border-box;-webkit-tap-highlight-color:transparent!important}.gui-settings-flat-button:disabled{opacity:.5;cursor:not-allowed}.gui-settings-flat-button:hover:not(:disabled){background:#8884}.gui-settings-flat-button:active:not(:disabled){border-bottom-color:var(--theme-color)}.gui-settings-flat-button:focus{outline:0}.gui-settings-flat-button i{margin-right:8px;line-height:24px;height:24px}.gui-settings-checkbox{width:28px;margin-right:24px;height:12px;background:#8884;border-radius:16px;position:relative}.gui-settings-checkbox::after{content:"";width:20px;height:20px;background:#c6c6c6;position:absolute;border-radius:50%;top:-4px;left:-4px;box-shadow:0 2px 4px 0 #0003;transition:.2s ease-out}.gui-settings-checkbox-container input:checked~.gui-settings-checkbox{background:var(--theme-color-80)}.gui-settings-checkbox-container input:checked~.gui-settings-checkbox::after{background:var(--theme-color)!important;box-shadow:0 2px 4px 0 var(--theme-color-40);left:calc(100% - 16px)}.gui-settings-checkbox-container input:disabled~.gui-settings-checkbox{opacity:.5}.gui-settings-header>i{margin-right:8px}.player-full-win .app-content,.player-full-win .live-room-app .app-content,.player-mode-webfullscreen .player-module{z-index:100000!important}.gui-settings-flat-button .popup{position:absolute;top:calc(100% + 2px);transition:.2s cubic-bezier(.6,-.28,.74,.05);transform-origin:top;transform:scaleY(0) translateX(-50%);left:50%;background:#fff;box-shadow:rgba(0,0,0,.2) 0 4px 8px 0;z-index:200;display:flex;flex-direction:column;align-items:center;width:max-content}.gui-settings-flat-button .popup *{transition:.2s}.gui-settings-flat-button .popup.opened{transform:scaleY(1) translateX(-50%);transition-timing-function:cubic-bezier(.18,.89,.32,1.28)}.gui-settings-flat-button .popup ul{list-style:none;margin:0;padding:0}.gui-settings-box kbd{padding:0 4px;border-radius:4px;border:1px solid #ccc;color:#ccc;border-bottom-width:3px;margin:0 4px}body.round-corner{--corner-radius:4px;--large-corner-radius:8px}.round-corner .gui-settings-box li i.downloading,.round-corner .gui-settings-dropdown,.round-corner .gui-settings-dropdown ul li,.round-corner .gui-settings-dropdown>ul,.round-corner .gui-settings-flat-button .popup,.round-corner .gui-settings-textbox-container input{border-radius:var(--corner-radius)}.gui-settings-box li i.downloading{margin-left:8px;font-style:normal;display:flex;align-items:center;font-size:14px;background:var(--theme-color);color:var(--foreground-color);padding:2px 8px}`; onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/gui-settings.min.html"] = `
附加功能
空空如也哦 = ̄ω ̄=
设置
  • 视频
  • 样式
  • 工具
  • 触摸
  • 其他
`; -onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/gui-settings.min.js"] = (()=>{return(e,t)=>{const{ThemeColors:n}=t.import("theme-colors");const{SettingsSearch:i}=t.import("settings-search");const{Validator:s}=t.import("text-validate");let o=[];let c=[];let r=[];function l(e){let t=e.nextElementSibling;const n=[];while(t!==null&&!t.classList.contains("category")){n.push(t);t=t.nextElementSibling}return n}function a(){r.forEach(t=>t.value=e[t.getAttribute("key")]);c.forEach(t=>t.checked=e[t.getAttribute("key")])}function d(){document.querySelector(".gui-settings-mask").addEventListener("click",()=>{document.querySelectorAll(".gui-settings-widgets-box,.gui-settings-box,.gui-settings-mask,.bilibili-evolved-about").forEach(e=>e.classList.remove("opened"))});r.forEach(t=>{t.setAttribute("placeholder",e[t.getAttribute("key")])});document.querySelectorAll(".gui-settings-content ul li.category").forEach(e=>{e.addEventListener("click",e=>{const t=document.querySelector(".gui-settings-search");if(t.value!==""){t.value="";raiseEvent(t,"input")}e.currentTarget.classList.toggle("folded");l(e.currentTarget).forEach(e=>e.classList.toggle("folded"))})});document.querySelectorAll(".gui-settings-dropdown>input").forEach(e=>{e.addEventListener("click",e=>{e.currentTarget.parentElement.classList.toggle("opened")})})}function u(){c.forEach(t=>{t.addEventListener("change",()=>{const n=t.getAttribute("key");const i=t.checked;e[n]=i})});r.forEach(t=>{t.addEventListener("change",()=>{const n=t.getAttribute("key");const i=s.getValidator(n).validate(t.value);e[n]=i;t.value=i})})}function g(){const e=o.map(e=>[e.getAttribute("dependencies").split(" ").map(e=>o.find(t=>t.getAttribute("key")===e)),e]);const t=e=>e.nodeName.toUpperCase()==="LI"?e:t(e.parentElement);e.forEach(([e,n])=>{if(e[0]===undefined){return}const i=()=>{if(e.every(e=>e.checked)){t(n).classList.remove("disabled")}else{t(n).classList.add("disabled")}};e.forEach(e=>e.addEventListener("change",i));i()})}function f(){if(typeof offlineData!=="undefined"){}}function p(){if(!CSS.supports("backdrop-filter","blur(24px)")&&!CSS.supports("-webkit-backdrop-filter","blur(24px)")){o.find(e=>e.getAttribute("key")==="blurVideoControl").disabled=true;e.blurVideoControl=false}if(window.devicePixelRatio===1){o.find(e=>e.getAttribute("key")==="harunaScale").disabled=true;o.find(e=>e.getAttribute("key")==="imageResolution").disabled=true;e.harunaScale=false;e.imageResolution=false}}function b(){for(const[e,t]of Object.entries(Resource.displayNames)){const n=o.find(t=>t.getAttribute("key")===e);if(!n){continue}switch(n.type){case"checkbox":n.nextElementSibling.nextElementSibling.innerHTML=t;break;case"text":const e=n.parentElement;if(e.classList.contains("gui-settings-textbox-container")){n.previousElementSibling.innerHTML=t}else if(e.classList.contains("gui-settings-dropdown")){e.previousElementSibling.innerHTML=t}break;default:break}}}(async()=>{t.applyStyle("guiSettingsStyle");t.applyImportantStyle("iconsStyle");document.body.classList.add("round-corner");const e=document.body&&unsafeWindow.parent.window!==unsafeWindow;if(e){document.querySelector(".gui-settings-icon-panel").style.display="none"}const s=t.data.guiSettingsHtml.text;document.body.insertAdjacentHTML("beforeend",s);const{style:l}=await t.importAsync("mdi");if(!l){document.body.insertAdjacentHTML("afterbegin",``)}t.applyDropdownOptions();const m=document.querySelector(".widgets-container");const y=m.querySelector(".empty-tip");Observer.childList(m,()=>{if(m.childElementCount<=1){y.classList.add("show")}else{y.classList.remove("show")}});(new n).setupDom();const h=document.querySelectorAll(".gui-settings-widgets-box,.gui-settings-box");const E=document.querySelector(".gui-settings-icon-panel");E.addEventListener("mouseover",()=>{raiseEvent(E,"be:load");h.forEach(e=>e.classList.add("loaded"));o=[...document.querySelectorAll("input[key]")];c=o.filter(e=>e.type==="checkbox");r=o.filter(e=>e.type==="text"&&!e.parentElement.classList.contains("gui-settings-dropdown"));d();f();a();g();u();p();b();new i},{once:true})})()}})(); +onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/gui-settings.min.js"] = (()=>{return(e,t)=>{const{ThemeColors:n}=t.import("theme-colors");const{SettingsSearch:i}=t.import("settings-search");const{Validator:s}=t.import("text-validate");let o=[];let r=[];let c=[];function l(e){let t=e.nextElementSibling;const n=[];while(t!==null&&!t.classList.contains("category")){n.push(t);t=t.nextElementSibling}return n}function a(){c.forEach(t=>t.value=e[t.getAttribute("key")]);r.forEach(t=>t.checked=e[t.getAttribute("key")])}function d(){document.querySelector(".gui-settings-mask").addEventListener("click",()=>{document.querySelectorAll(".gui-settings-widgets-box,.gui-settings-box,.gui-settings-mask,.bilibili-evolved-about").forEach(e=>e.classList.remove("opened"))});c.forEach(t=>{t.setAttribute("placeholder",e[t.getAttribute("key")])});document.querySelectorAll(".gui-settings-content ul li.category").forEach(e=>{e.addEventListener("click",e=>{const t=document.querySelector(".gui-settings-search");if(t.value!==""){t.value="";raiseEvent(t,"input")}e.currentTarget.classList.toggle("folded");l(e.currentTarget).forEach(e=>e.classList.toggle("folded"))})});document.querySelectorAll(".gui-settings-dropdown>input").forEach(e=>{e.addEventListener("click",e=>{e.currentTarget.parentElement.classList.toggle("opened")})})}function u(){r.forEach(t=>{t.addEventListener("change",()=>{const n=t.getAttribute("key");const i=t.checked;e[n]=i})});c.forEach(t=>{t.addEventListener("change",()=>{const n=t.getAttribute("key");const i=s.getValidator(n).validate(t.value);e[n]=i;t.value=i})})}function g(){const e=o.map(e=>[e.getAttribute("dependencies").split(" ").map(e=>o.find(t=>t.getAttribute("key")===e)),e]);const t=e=>e.nodeName.toUpperCase()==="LI"?e:t(e.parentElement);e.forEach(([e,n])=>{if(e[0]===undefined){return}const i=()=>{if(e.every(e=>e.checked)){t(n).classList.remove("disabled")}else{t(n).classList.add("disabled")}};e.forEach(e=>e.addEventListener("change",i));i()})}function f(){if(typeof offlineData!=="undefined"){}}function b(){if(!CSS.supports("backdrop-filter","blur(24px)")&&!CSS.supports("-webkit-backdrop-filter","blur(24px)")){o.find(e=>e.getAttribute("key")==="blurVideoControl").disabled=true;e.blurVideoControl=false}if(window.devicePixelRatio===1){o.find(e=>e.getAttribute("key")==="harunaScale").disabled=true;o.find(e=>e.getAttribute("key")==="imageResolution").disabled=true;e.harunaScale=false;e.imageResolution=false}}function p(){for(const[e,t]of Object.entries(Resource.displayNames)){const n=o.find(t=>t.getAttribute("key")===e);if(!n){continue}switch(n.type){case"checkbox":n.nextElementSibling.nextElementSibling.innerHTML=t;break;case"text":const e=n.parentElement;if(e.classList.contains("gui-settings-textbox-container")){n.previousElementSibling.innerHTML=t}else if(e.classList.contains("gui-settings-dropdown")){e.previousElementSibling.innerHTML=t}break;default:break}}}(async()=>{t.applyStyle("guiSettingsStyle");t.applyImportantStyle("iconsStyle");document.body.classList.add("round-corner");const e=document.body&&unsafeWindow.parent.window!==unsafeWindow;if(e){document.querySelector(".gui-settings-icon-panel").style.display="none"}const s=t.data.guiSettingsHtml.text;document.body.insertAdjacentHTML("beforeend",s);const{style:l}=await t.importAsync("mdi");if(!l){document.body.insertAdjacentHTML("afterbegin",``)}t.applyDropdownOptions();const m=document.querySelector(".widgets-container");const y=m.querySelector(".empty-tip");Observer.childList(m,()=>{if(m.childElementCount<=1){y.classList.add("show")}else{y.classList.remove("show")}});(new n).setupDom();const h=document.querySelectorAll(".gui-settings-widgets-box,.gui-settings-box");const E=document.querySelector(".gui-settings-icon-panel");E.addEventListener("mouseover",()=>{raiseEvent(E,"be:load");raiseEvent(dq(".bilibili-evolved-about"),"be:about-load");h.forEach(e=>e.classList.add("loaded"));o=[...document.querySelectorAll("input[key]")];r=o.filter(e=>e.type==="checkbox");c=o.filter(e=>e.type==="text"&&!e.parentElement.classList.contains("gui-settings-dropdown"));d();f();a();g();u();b();p();new i},{once:true})})()}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/haruna-scale.min.js"] = (()=>{return(n,e)=>{const t="haruna-scale";const a=()=>{if(document.getElementById(t)===null){e.applyStyleFromText(`\n .haruna-ctnr,\n .avatar-btn\n {\n transform: scale(${1/window.devicePixelRatio}) !important;\n }\n `,t)}};a();return{reload:a,unload:()=>{const n=document.getElementById(t);n&&n.remove()}}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/hide-bangumi-reviews.min.js"] = (()=>{return(e,n)=>{return n.toggleStyle(`\n #review_module { display: none !important; }\n `,`hide-bangumi-reviews-style`)}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/hide-banner.min.css"] = `#banner_link,.custom-navbar .blur-layer,.z-top-container.has-banner>.header{display:none!important}.b-header-mask-wrp .b-header-mask-bg,div.blur-bg{opacity:0!important}`; @@ -1066,12 +1066,12 @@ onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/mi onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/remove-top-mask.min.js"] = (()=>{return(e,t)=>{const o=`.bilibili-player-video-top { display: none !important; }`;const n="remove-top-mask-style";const l=()=>t.applyStyleFromText(``);const r=()=>{const e=document.getElementById(n);if(e){e.remove()}};l();return{reload:l,unload:r}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/remove-watermark.min.js"] = (()=>{return(e,n)=>{const t="remove-live-watermark";const l=()=>{if(document.getElementById(t)===null){n.applyStyleFromText(`\n .bilibili-live-player-video-logo\n {\n display: none !important;\n }\n `,t)}};l();return{reload:l,unload:()=>{const e=document.getElementById(t);e&&e.remove()}}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/screenshot.min.css"] = `.video-take-screenshot{padding:0 4px 0 12px;height:100%;cursor:pointer;display:none!important}.video-take-screenshot.touch{padding:0 6px 0 10px;margin-left:12px}.bilibili-player-video-control-bottom .video-take-screenshot{display:flex!important}.video-take-screenshot.touch span{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.video-take-screenshot i{font-size:20px;color:#fff;transform:scale(1);opacity:.9;transition:.4s cubic-bezier(.18,.89,.32,1.28);display:block}.bilibili-player.mode-fullscreen .video-take-screenshot i,.bilibili-player.mode-webfullscreen .video-take-screenshot i{font-size:24px}.video-take-screenshot:hover i{transform:scale(1.05);opacity:1}.video-take-screenshot:active i{transform:scale(.95);opacity:1}.video-screenshot-container{position:relative;--screenshot-width:240px;--screenshot-width-negative:calc(0px - var(--screenshot-width));--screenshot-height:135px;--thumbnail-margin-vertical:12px;--thumbnail-margin-horizontal:24px;--screenshot-list-width:calc(2 * var(--thumbnail-margin-horizontal) + var(--screenshot-width))}.video-screenshot-batch{position:fixed;bottom:0;right:0;z-index:20000;display:flex;width:var(--screenshot-list-width);align-items:center;justify-content:space-evenly}.video-screenshot-batch button{background:#000c;color:#fff;border:none;border-radius:10px 10px 0 0;font-size:12pt;cursor:pointer;outline:0!important;padding:8px 12px;display:flex;justify-content:center;align-items:center}.video-screenshot-batch button i{font-size:14pt;margin-right:4px}.video-screenshot-container,.video-screenshot-container *{transition:.2s ease-out}.video-screenshot-list{position:fixed;top:0;right:0;z-index:20000;padding:var(--thumbnail-margin-vertical) 0;pointer-events:none;height:calc(100% - 2 * var(--thumbnail-margin-vertical) - 48px);width:var(--screenshot-list-width);overflow:auto}.video-screenshot-list *{pointer-events:initial}.video-screenshot-list-enter{opacity:0;transform:translateX(var(--screenshot-width-negative))}.video-screenshot-list-leave-to{opacity:0;transform:translateX(var(--screenshot-width))}.video-screenshot-thumbnail img{max-width:var(--screenshot-width);max-height:var(--screenshot-height);display:block;background-color:#000}.video-screenshot-thumbnail{margin:var(--thumbnail-margin-vertical) var(--thumbnail-margin-horizontal);position:relative;transition:.35s cubic-bezier(.18,.89,.32,1.28);width:var(--screenshot-width);height:var(--screenshot-height);background-color:#000;display:flex;justify-content:center;align-items:center}@keyframes spinner{to{transform:translate(-50%,-50%) rotate(360deg)}}.video-screenshot-thumbnail .loading::before{content:"";box-sizing:border-box;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(0);width:24px;height:24px;border-radius:50%;border:3px solid #8888;border-top-color:var(--theme-color);animation:.6s linear infinite spinner}.video-screenshot-thumbnail.video-screenshot-list-leave-active{position:absolute;transition:.35s cubic-bezier(.6,-.28,.74,.05)}.video-screenshot-thumbnail .mask{position:absolute;opacity:0;top:0;left:0;width:100%;height:100%;background:#0008;display:flex;justify-content:space-around;align-items:center;transition:none;pointer-events:none}.video-screenshot-thumbnail:hover .mask{opacity:1}.video-screenshot-thumbnail .mask .time{color:#fff;position:absolute;bottom:0;left:4px;font-size:10pt}.video-screenshot-thumbnail .mask button{background:#000a;color:#fff;border:none;border-radius:50%;font-size:24pt;cursor:pointer;width:48px;height:48px;pointer-events:initial;outline:0!important}`; -onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/screenshot.min.js"] = (()=>{return(e,t)=>{const{getFriendlyTitle:i}=t.import("title");const n=document.createElement("canvas");class s{constructor(e,t,i=false){this.url="";this.timeStamp=(new Date).getTime();this.withDanmaku=false;this.video=e;this.videoTime=t;this.withDanmaku=i;this.createUrl()}async createUrl(){n.width=this.video.videoWidth;n.height=this.video.videoHeight;const e=n.getContext("2d");if(e===null){logError("视频截图失败: canvas 未创建或创建失败.");return}e.drawImage(this.video,0,0);if(this.withDanmaku){const t=dq("canvas.bilibili-player-video-danmaku");if(t!==null){e.drawImage(t,0,0,this.video.videoWidth,this.video.videoHeight)}}n.toBlob(e=>{if(e===null){logError("视频截图失败: 创建 blob 失败.");return}this.blob=e;this.url=URL.createObjectURL(e)},"image/png")}get filename(){return`${i()} @${this.time.replace(/:/g,"-")} ${this.timeStamp.toString()}.png`}get id(){return this.videoTime.toString()+this.timeStamp.toString()}get time(){const e=Math.trunc(this.videoTime/3600).toString();const t=Math.trunc(this.videoTime/60).toString();const i=(this.videoTime%60).toFixed(2);if(e==="0"){return`${t.padStart(2,"0")}:${i.padStart(5,"0")}`}return`${e}:${t.padStart(2,"0")}:${i.padStart(5,"0")}`}revoke(){URL.revokeObjectURL(this.url)}}const o=(e,t=false)=>{const i=e.currentTime;return new s(e,i,t)};t.applyStyle("videoScreenshotStyle");document.body.insertAdjacentHTML("beforeend",`\n
\n \n \n \n
\n \n \n \n
\n
\n`);Vue.component("video-screenshot",{props:{objectUrl:String,filename:String,time:String},template:`\n
\n \n
\n \n \n \n {{time}}\n
\n
\n
\n
\n `,methods:{discard(){this.$emit("discard")},save(){this.$el.querySelector(".link").click();this.discard()}}});const r=new Vue({el:".video-screenshot-container",data:{screenshots:[],batchFilename:i()+".zip"},methods:{discard(e){this.screenshots.splice(this.screenshots.indexOf(e),1);e.revoke()},async saveAll(){const e=new JSZip;this.screenshots.forEach(t=>{e.file(t.filename,t.blob,{date:new Date(t.timeStamp)})});const t=await e.generateAsync({type:"blob"});const i=this.$el.querySelector(".batch-link");i.href=URL.createObjectURL(t);i.click();URL.revokeObjectURL(i.href);i.href="";this.discardAll()},discardAll(){this.screenshots.forEach(e=>e.revoke());this.screenshots=[]}},computed:{showBatch(){return this.screenshots.length>=2}}});const c=`\n
\n \n
`;Observer.videoChange(async()=>{const t=await SpinQuery.select("#bofqi video");if(t===null){return}const i=await SpinQuery.select(".bilibili-player-video-time");if(i===null||document.querySelector(".video-take-screenshot")){return}i.insertAdjacentHTML("afterend",c);const n=document.querySelector(".video-take-screenshot");n.addEventListener("click",async e=>{const t=await SpinQuery.select("#bofqi video");const i=o(t,e.shiftKey);r.screenshots.unshift(i)});document.addEventListener("keydown",e=>{if(document.activeElement&&["input","textarea"].includes(document.activeElement.nodeName.toLowerCase())){return}if(e.ctrlKey&&e.altKey&&e.key.toLowerCase()==="c"){e.stopPropagation();e.preventDefault();n.click()}});if(e.touchVideoPlayer){document.querySelectorAll(".video-take-screenshot").forEach(e=>e.classList.add("touch"))}});return{export:{takeScreenshot:o,screenShotsList:r},unload:()=>document.querySelectorAll(".bilibili-player-video-control-bottom .video-take-screenshot,.video-screenshot-container").forEach(e=>e.setAttribute("style","display: none !important")),reload:()=>document.querySelectorAll(".bilibili-player-video-control-bottom .video-take-screenshot,.video-screenshot-container").forEach(e=>e.setAttribute("style","display: flex !important"))}}})(); +onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/screenshot.min.js"] = (()=>{return(e,t)=>{const{getFriendlyTitle:i}=t.import("title");const n=document.createElement("canvas");class s{constructor(e,t,i=false){this.url="";this.timeStamp=(new Date).getTime();this.withDanmaku=false;this.video=e;this.videoTime=t;this.withDanmaku=i;this.createUrl()}async createUrl(){n.width=this.video.videoWidth;n.height=this.video.videoHeight;const e=n.getContext("2d");if(e===null){logError("视频截图失败: canvas 未创建或创建失败.");return}e.drawImage(this.video,0,0);if(this.withDanmaku){const t=dq("canvas.bilibili-player-video-danmaku");if(t!==null){e.drawImage(t,0,0,this.video.videoWidth,this.video.videoHeight)}}n.toBlob(e=>{if(e===null){logError("视频截图失败: 创建 blob 失败.");return}this.blob=e;this.url=URL.createObjectURL(e)},"image/png")}get filename(){return`${i()} @${this.time.replace(/:/g,"-")} ${this.timeStamp.toString()}.png`}get id(){return this.videoTime.toString()+this.timeStamp.toString()}get time(){const e=Math.trunc(this.videoTime/3600).toString();const t=Math.trunc(this.videoTime/60).toString();const i=(this.videoTime%60).toFixed(2);if(e==="0"){return`${t.padStart(2,"0")}:${i.padStart(5,"0")}`}return`${e}:${t.padStart(2,"0")}:${i.padStart(5,"0")}`}revoke(){URL.revokeObjectURL(this.url)}}const o=(e,t=false)=>{const i=e.currentTime;return new s(e,i,t)};let r={screenshots:[]};Observer.videoChange(async()=>{if(!dq(".video-screenshot-container")){t.applyStyle("videoScreenshotStyle");document.body.insertAdjacentHTML("beforeend",`\n
\n \n \n \n
\n \n \n \n
\n
\n `);Vue.component("video-screenshot",{props:{objectUrl:String,filename:String,time:String},template:`\n
\n \n
\n \n \n \n {{time}}\n
\n
\n
\n
\n `,methods:{discard(){this.$emit("discard")},save(){this.$el.querySelector(".link").click();this.discard()}}});r=new Vue({el:".video-screenshot-container",data:{screenshots:[],batchFilename:i()+".zip"},methods:{discard(e){this.screenshots.splice(this.screenshots.indexOf(e),1);e.revoke()},async saveAll(){const e=new JSZip;this.screenshots.forEach(t=>{e.file(t.filename,t.blob,{date:new Date(t.timeStamp)})});const t=await e.generateAsync({type:"blob"});const i=this.$el.querySelector(".batch-link");i.href=URL.createObjectURL(t);i.click();URL.revokeObjectURL(i.href);i.href="";this.discardAll()},discardAll(){this.screenshots.forEach(e=>e.revoke());this.screenshots=[]}},computed:{showBatch(){return this.screenshots.length>=2}}})}const n=await SpinQuery.select("#bofqi video");if(n===null){return}const s=await SpinQuery.select(".bilibili-player-video-time");if(s===null||document.querySelector(".video-take-screenshot")){return}const c=`\n
\n \n
`;s.insertAdjacentHTML("afterend",c);const a=document.querySelector(".video-take-screenshot");a.addEventListener("click",async e=>{const t=await SpinQuery.select("#bofqi video");const i=o(t,e.shiftKey);r.screenshots.unshift(i)});document.addEventListener("keydown",e=>{if(document.activeElement&&["input","textarea"].includes(document.activeElement.nodeName.toLowerCase())){return}if(e.ctrlKey&&e.altKey&&e.key.toLowerCase()==="c"){e.stopPropagation();e.preventDefault();a.click()}});if(e.touchVideoPlayer){document.querySelectorAll(".video-take-screenshot").forEach(e=>e.classList.add("touch"))}});return{export:{takeScreenshot:o,screenShotsList:r},unload:()=>document.querySelectorAll(".bilibili-player-video-control-bottom .video-take-screenshot,.video-screenshot-container").forEach(e=>e.setAttribute("style","display: none !important")),reload:()=>document.querySelectorAll(".bilibili-player-video-control-bottom .video-take-screenshot,.video-screenshot-container").forEach(e=>e.setAttribute("style","display: flex !important"))}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/scrollbar.min.css"] = `::-webkit-scrollbar{width:5px!important;height:5px!important}::-webkit-scrollbar-corner,::-webkit-scrollbar-track{background:0 0!important}::-webkit-resizer,::-webkit-scrollbar-thumb{background:#aaa}::-webkit-scrollbar-thumb:hover{background:#888}*{scrollbar-color:#aaa transparent;scrollbar-width:thin!important}`; onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/search.vue.min.js"] = (()=>{return(e,t)=>{const r=``;return{export:Object.assign({template:r},{})}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/seeds-to-coins.min.js"] = (()=>{return(s,e)=>{const t=`https://api.live.bilibili.com/pay/v1/Exchange/silver2coin`;return{widget:{content:`\n \n \n 瓜子换硬币\n `,success:()=>{const s=async()=>{const s=await Ajax.getJsonWithCredentials(t);if(s.code!==0){Toast.info(s.message,"瓜子换硬币",3e3)}else{Toast.success(`${s.message}\n剩余银瓜子:${s.data.silver}`,"瓜子换硬币",3e3)}};const e=dq("#seeds-to-coins");e.addEventListener("click",async()=>{try{e.disabled=true;await s()}finally{e.disabled=false}})}}}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/settings-search.min.js"] = (()=>{return(t,e)=>{class s{constructor(){this.input=document.querySelector(".gui-settings-search");const t=[...document.querySelectorAll(".gui-settings-content>ul>li")];const e=t=>e=>e.classList.contains("category")===t;this.categories=t.filter(e(true));this.items=t.filter(e(false));this.importToolTips().then(()=>this.input.addEventListener("input",()=>this.keywordChange()))}async importToolTips(){if(typeof getI18nKey==="undefined"){console.error("请更新脚本后再使用设置搜索功能.");return}const{toolTips:t}=await e.importAsync(`settings-tooltip.${getI18nKey()}`);this.toolTips=t}keywordChange(){const t=this.input.value.trim();if(!t){this.categories.concat(this.items).forEach(t=>t.classList.add("folded"));return}this.items.forEach(e=>{const s=e.querySelector("input").getAttribute("key");const i=this.toolTips.get(s);let o=Resource.displayNames[s];if(i!==undefined){o+=i.replace(/<.*>|<\/.*>/g,"")}if(o.includes(t)){e.classList.remove("folded");const t=e.getAttribute("data-dependencies");if(t!==undefined){t.split(" ").forEach(t=>{const e=this.items.find(e=>e.getAttribute("data-key")===t);if(e!==undefined){e.classList.remove("folded")}})}}else{e.classList.add("folded")}});this.foldCategories()}foldCategories(){for(const e of this.categories){function t(){let t=e.nextElementSibling;while(t!==null&&!t.classList.contains("category")){if(!t.classList.contains("folded")){return"remove"}t=t.nextElementSibling}return"add"}e.classList[t()]("folded")}}}return{export:{SettingsSearch:s}}}})(); -onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/settings-side-bar.min.js"] = (()=>{return(e,t)=>{if(document.querySelector(".gui-settings-icon-panel")===null){document.body.insertAdjacentHTML("beforeend",`\n
\n
\n \n
\n
\n \n
\n
`);dq(".gui-settings").addEventListener("click",e=>{if(e.shiftKey===false){dqa(".gui-settings-box,.gui-settings-mask").forEach(e=>e.classList.add("opened"))}else{dqa(".bilibili-evolved-about,.gui-settings-mask").forEach(e=>e.classList.add("opened"));raiseEvent(document.querySelector(".bilibili-evolved-about"),"be:about-load")}});dq(".gui-settings-widgets").addEventListener("click",e=>{if(e.shiftKey===false){dqa(".gui-settings-widgets-box,.gui-settings-mask").forEach(e=>e.classList.add("opened"))}else{debugger}});const e=dq(".gui-settings-icon-panel .gui-settings-widgets>i");const t=dq(".gui-settings-icon-panel .gui-settings>i");let i=false;let s=false;const n=()=>{t.classList.remove("icon-info");t.classList.add("icon-settings");t.parentElement.title="设置";e.classList.remove("icon-time");e.classList.add("icon-widgets");e.parentElement.title="附加功能";i=false;s=false};const d=()=>{t.classList.remove("icon-settings");t.classList.add("icon-info");t.parentElement.title="关于";e.classList.remove("icon-widgets");e.classList.add("icon-time");e.parentElement.title="「ザ・ワールド」";if(!i){document.body.addEventListener("keyup",n,{once:true});i=true}if(!s){window.addEventListener("blur",n,{once:true});s=true}};document.body.addEventListener("keydown",e=>{if(document.activeElement&&["input","textarea"].includes(document.activeElement.nodeName.toLowerCase())){return}if(e.shiftKey===true){d()}})}const i=(t=e.sideBarOffset)=>{document.body.style.setProperty("--side-bar-offset",t+"%")};addSettingsListener("sideBarOffset",i);i()}})(); +onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/settings-side-bar.min.js"] = (()=>{return(e,t)=>{if(document.querySelector(".gui-settings-icon-panel")===null){document.body.insertAdjacentHTML("beforeend",`\n
\n
\n \n
\n
\n \n
\n
`);dq(".gui-settings").addEventListener("click",e=>{if(e.shiftKey===false){dqa(".gui-settings-box,.gui-settings-mask").forEach(e=>e.classList.add("opened"))}else{dqa(".bilibili-evolved-about,.gui-settings-mask").forEach(e=>e.classList.add("opened"))}});dq(".gui-settings-widgets").addEventListener("click",e=>{if(e.shiftKey===false){dqa(".gui-settings-widgets-box,.gui-settings-mask").forEach(e=>e.classList.add("opened"))}else{debugger}});const e=dq(".gui-settings-icon-panel .gui-settings-widgets>i");const t=dq(".gui-settings-icon-panel .gui-settings>i");let s=false;let i=false;const n=()=>{t.classList.remove("icon-info");t.classList.add("icon-settings");t.parentElement.title="设置";e.classList.remove("icon-time");e.classList.add("icon-widgets");e.parentElement.title="附加功能";s=false;i=false};const d=()=>{t.classList.remove("icon-settings");t.classList.add("icon-info");t.parentElement.title="关于";e.classList.remove("icon-widgets");e.classList.add("icon-time");e.parentElement.title="「ザ・ワールド」";if(!s){document.body.addEventListener("keyup",n,{once:true});s=true}if(!i){window.addEventListener("blur",n,{once:true});i=true}};document.body.addEventListener("keydown",e=>{if(document.activeElement&&["input","textarea"].includes(document.activeElement.nodeName.toLowerCase())){return}if(e.shiftKey===true){d()}})}const s=(t=e.sideBarOffset)=>{document.body.style.setProperty("--side-bar-offset",t+"%")};addSettingsListener("sideBarOffset",s);s()}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/settings-tooltip.en-US.min.js"] = (()=>{return(e,o)=>{const t=new Map([["useDefaultPlayerMode",`Set the default player mode. Could be Normal, Widescreen, Web fullscreen or Fullscreen.`],["defaultPlayerMode",`Select the default player mode.`],["applyPlayerModeOnPlay",`Apply mode on video play instead of page load.`],["useDefaultPlayerLayout",`Set the default player layout.\n- Old: The legacy layout\n- New: The default new layout\nWarning: Some features won't work on old layout.`],["defaultPlayerLayout",`Video player layout`],["defaultBangumiLayout",`Bangumi player layout`],["useDefaultVideoQuality",`Auto select the specified video quality. If the highest quality of video in lower than your choice, the highest quality will be used.`],["defaultVideoQuality","Select the default video quality."],["autoLightOff",`Auto turn off the light when video starts playing, and turn on the light after complete.`],["useDefaultDanmakuSettings",`Set the default settings about danmakus.`],["enableDanmaku",`Disable this if you want to turn off danmakus by default.`],["rememberDanmakuSettings",`Remember the "Prevent blocking subtitles" and "Smart danmaku mask" settings. If you change these settings on player, every video will apply these settings by default.`],["expandDanmakuList",`Auto expand the danmaku list.`],["autoPlay",`Auto start playing video on page load.`],["autoContinue",`If playback history exists, auto continue from it.`],["skipChargeList",`Skip charge acknowledgements on the end of some videos.`],["framePlayback",`Append 2 buttons to the right of video time to seek video by frame. Support keyboard shortcut Shift+/. (Old layout can only use keyboard shortcut)`],["playerFocus",`Auto scroll to the player when you enter the page.`],["playerFocusOffset",`Set the scroll offset. (in px unit)`],["customStyleColor",`Set the theme color for custom navbar, dark mode and more. Click the color circle to choose from 16 predefined colors, or input any valid hex color in textbox. (#rrggbb or #rgb)`],["useDarkStyle",`Dark style looks much better at night, and will widely apply theme color.`],["darkSchedule",`Schedule the dark mode time.`],["compactLayout",`Use compact layout for homepage, reduce margin and remove rounded corner of video cards, use vector icons in categories.`],["useCommentStyle",`- Remove "Follow" button on hot comments\n- Remove the level badge of user\n- Remove the platform info (like From Android client)\n- Move post time to upper right.\n- Use vector icons\nTip: You can still access the removed "Follow" and level badge by hovering on their avatars.`],["simplifyLiveroom",`- Hide master icon\n- Hide fan badge\n- Hide event title\n- Hide user level\n- Hide captain icon\n- Hide global notice\n- Hide welcome message (xxx master entered room)\n- Hide lottery draw notifications\n- Disable room skin\nTip: Every item can be toggled individually in Add-ons.`],["blurVideoControl",`Use background blur effect for video controls.`],["customControlBackground",`Use a filled black rectangle as background of video controls instead of the original shadow effect.`],["customControlBackgroundOpacity",`Set the opacity of rectangle`],["harunaScale",`Make live room showgirl DPI-aware.`],["removeLiveWatermark",`Remove the watermark of live stream`],["removeVideoTopMask",`Remove the top mask of videos`],["removeAds",`Remove all ads. including slideshow ads, mobile app ads and video ads.`],["watchLaterRedirect",`Redirects all watchlater videos to the normal video page in order to use new layout.`],["favoritesRedirect",`Redirects all videos in favorites from favorites playlist to the individual video page.`],["hideTopSearch",`Use "Search" in place of search recommendations.`],["fullTweetsTitle",`Always expand full title in the activities peek in navbar.`],["fullPageTitle",`Always expand full title of video episodes. (Not work for bangumi)`],["biliplusRedirect",`Append "Jump to BiliPlus" button to Add-ons.`],["imageResolution",`Request hi-resolution images by your screen DPI. But also cause longer loading time.`],["oldTweets",`Replace activities link by the old version, and you can switch between new and old versions in Add-ons.`],["touchNavBar",`Allow to tap on a navbar item to view its popup info, instead of open the top-level link.`],["comboLike",`Allow long press the like button to perform a combo like.`],["touchVideoPlayer",`Increase margin of video control buttons for better touch experience. And enable touch gestures:\n- Left/Right slide to seek\n- Up/Down slide to adjust volume\n- Cancel a gesture on upper left/right corner\n- Slide on different position to use different sensibility.`],["touchVideoPlayerAnimation",`Use experimental animations for touch gestures, but may cause frame drops.`],["touchVideoPlayerDoubleTapControl",`Enable double-tap control: single tap to view/hide control bar, double tap to pause/resume.`],["toast",`Show toasts on the lower left corner of page, including update notifications and error display.`],["toastInternalError",`Show internal error messages, which may be helpful when reporting a bug.`],["useCache",`Use cache to increase load speed of this userscript.`],["outerWatchlater",`Move watchlater button from menu to outside.`],["i18n",`[Experimental] Provides UI translation for some common words.`],["i18nLanguage",`Set the target language.`],["customNavbar",`Enable custom navbar to replace the legacy one. New navbars in live/photos/shop are not affected.`],["customNavbarFill",`Use theme color to fill the navbar.`],["allNavbarFill",`Fill theme color to all navbars, including live/photos/shop.`],["customNavbarShadow",`Drop shadow for custom navbar.`],["customNavbarCompact",`Use compact layout for custom navbar, provides smaller margins and use ... for long titles.`],["customNavbarBlur",`If top banner exists, use background blur effect.`],["playerShadow",`Use theme color shadow for player.`],["narrowDanmaku",`Force preserve danmaku input in web fullscreen mode. May cause buttons on the right out of screen.`],["hideOldEntry",`Hide "Back to old" buttons in new layout.`],["hideBanner",`Hide top banner.`],["allowJumpContinue",`Allow jump to episodes different from current.`],["hideBangumiReviews",`Hide reviews on bangumi page.`],["videoScreenshot",`Append screenshot button to the right of video time. Support keyboard shortcut Ctrl+Alt+C. (Old layout can only use keyboard shortcut)`],["filenameFormat",`Customize the filename format used by Download danmaku, Download video, Video screenshot, View cover.\nThere are a few variables:\n- title: Video title / Live room title\n- ep: Episode title\n- aid: AV ID\n- cid: CID (The unique ID of video, as AV ID may contains multiple episodes)\n- lid: Live room ID\n- y/M/d: Year / Month / Day of month\n- h/m/s/ms: Hour / Minute / Second / Millisecond\n\nThe default format is [title][ - ep], representing video title and episode title. If episode title not exists, only video title is used.\n\nPut your variables inside square brackets, other contents inside brackets (like " - " in "[ - ep]") will only appear when the variable exists. For instance, if the format is [title] - [ep]. Even there's no episode title, that " - " will still appear in filename (which is meaningless). So in default format, when episode title not exists, " - " will also disappear.\n\nA more specific example: To use a "video title + AV ID + time" format, we can use [title][ AVaid] [y]-[M]-[d] [h]-[m]-[s]. And get filenames like "xxxx AV23333 2019-05-29 19-59-44".`],["noLiveAutoplay",`Disable autoplay on live homepage.`],["hideHomeLive",`Hide recommended live rooms on live homepage.`],["sideBarOffset",`Set vertical offset of side bar (in percent). Valid range: -40% ~ 40%.`],["hideCategory",`Hide category bar on main site, you can select category from Home in navbar.`],["foldComment",`Append a "Fold comments" button on the bottom of page when viewing comments in activities. Then you can quickly fold comments without scrolling up.`],["showDeadVideoTitle",`Retrieve title and cover of dead videos in your space`],["useBiliplusRedirect",`Jump to BiliPlus for dead videos.`],["deadVideoTitleProvider",`Select dead video info provider: Watchlater is stable but takes some time, BiliPlus runs fast but it's not implemented yet.`],["useDefaultVideoSpeed",`Set the default video playback rate.`],["defaultVideoSpeed",`Select the default playback rate.`],["seedsToCoins",`Append a Seeds to coins button, click to convert 700 silver seeds to 1 coin, up to one time per day.`],["autoDraw",`Auto click draw button when there're drawing events in live room.`],["keymap",`Enable more keyboard shortcuts for video player:\n- w Web fullscreen\n- t Wide screen / Theater mode\n- r Toggle repeat\n- m Toggle mute\n- d Toggle danmakus\n- l Like\n- c Coin\n- s Favorite\n- Shift + / Playback Speed Adjust`],["doubleClickFullscreen",`Allow double click the player to toggle fullscreen, please note that this feature will not work if 播放器触摸支持 - 启用双击控制 is also enabled.`]]);return{export:{toolTips:t}}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/settings-tooltip.ja-JP.min.js"] = (()=>{return(a,n)=>{const e=new Map([["useDefaultPlayerLayout",`デフォルト・プレーヤー・レイアウトを設定する. できるだけ、適切なページに設定(例えば、番組の放送ページに番組プレーヤーのレイアウトを設定する)、そうでない場合は効果がない可能性があります.\n- 旧版: 伝統的なレイアウト\n- 新版: 動画ページに黙認の新版レイアウト\n注意: 伝統的なレイアウトでは、多くのスクリプト機能が適用されない.`],["defaultPlayerLayout",`動画プレーヤーのレイアウトを設定する.`],["defaultBangumiLayout",`番組プレーヤーのレイアウトを設定する.`],["useDefaultPlayerMode",`デフォルト・プレーヤー・モードが使用するかどうかを制御する、 例えば常规宽屏网页全屏全屏.`],["defaultPlayerMode",`デフォルト・プレーヤー・モードが設定する.`],["applyPlayerModeOnPlay",`再生時にモードを適用する、「いいえ」を選択すると、再生が開始されていないときに適用されます.`],["autoLightOff",`初回放送時には、自動的に消灯モードに入り、再生終了後に自動的に点灯します.`],["useDefaultVideoQuality",`動画を開くときに指定された画質を自動的に選択する. 映像の最高画質が選択された画質より低ければ、映像の最高画質を使用する.`],["defaultVideoQuality",`自動的に選択された映像画質を設定する.`],["useDefaultDanmakuSettings",`デフォルトで弾幕を開くかどうかを設定する.そして、「防挡字幕」と「智能防挡弹幕」を覚えておくかどうかを設定できる.`],["enableDanmaku",`弾幕がデフォルトで開くかどうかを制御する.`],["rememberDanmakuSettings",`弾幕ブロックの設定を覚えるかどうかを制御する、「防挡字幕」と「智能防挡弹幕」を含まれています.これらの設定を動画制御欄で変更すると、すべでの動画にデフォルトでこれらの設定が使用されます.`],["expandDanmakuList",`新版レイアウトでは、他のおすすめ動画が表示されるようにデフォルトで弾幕リストが折りたたまれています.この機能を有効にすると、動画が読み込まれるたびに弾幕リストが自動的に展開されます.`],["expandDescription",`長すぎる動画概要欄はデフォルトで折りたたまれています、この機能を有効にすると完全な動画概要欄が強制的に展開されます.`],["autoContinue",`動画再生時に視聴履歴が検出されると(前回の见た...情報)、自動的に対応する時間に再生される.`],["allowJumpContinue",`履歴のセット数が現在開いているページと矛盾している場合でも、自動的にジャンプします.`],["autoPlay",`動画ページに入ると、自動的に動画の再生が開始されます.`],["skipChargeList",`エンディングの「充电鸣谢」を自動スキップ.`],["framePlayback",`プレーヤーの時間に右側に2つのボタンが追加されました.動画の時間を細かく調整するために使用される. キーボードショートカットに対応しますShift+/. (伝統的なレイアウトでキーボードショートカットのみ使用でき、ボタンは表示されません)`],["videoScreenshot",`プレーヤーの時間に右側に1つのボタンが追加されました.動画スクリーンショットを使用されます. キーボードショートカットに対応しますCtrl+Alt+C. (伝統的なレイアウトでキーボードショートカットのみ使用でき、ボタンは表示されません)`],["playerFocus",`動画/番組の放送ページに入る時、プレーヤーに自動的に移動する.`],["playerFocusOffset",`移動時の垂直オフセット、単位はピクセル(px).`],["outerWatchlater",`動画放送ページの稍后再看を外に移動します.`],["keymap",`動画プレーヤーのためにより多くのショートカットを有効にします:\n- w ウェブの全画面\n- t ワイドモード\n- r サイクル放送\n- m 消音\n- d 弾幕スイッチ\n- l いいね\n- c コインを投げる\n- s お気に入り\n- Shift + / 再生速度を調整する.`],["doubleClickFullscreen",`ダブルクリックして全画面に切り替えることができます.ご注意ください播放器触摸支持 - 启用双击控制と共に使用できない.`],["customStyleColor",`頂欄(スタイルの調整が有効な場合)とダークテーマのテーマ色で埋める、カラープレビューサークルをクリックして、设定の16種類のテーマカラーにできるの、右側のテキストボックスに任意の有効な16進数のカラー値を直接入力することもできます.(#rrggbb#rgb).`],["blurBackgroundOpacity",`设置顶栏对横幅的透明度(0~1), 数值越高顶栏越淡, 当横幅关闭时此选项无效.`],["customNavbar",`カスタム頂欄を使用する.伝統的な頂欄に取って代わる.メインステーション専用です.「生放送」、「アルバム」、「会員購」などには影響しません.`],["customNavbarFill",`テーマ色で頂欄を埋める.`],["allNavbarFill",`テーマ色で他の頂欄を埋める.「生放送」、「アルバム」、「会員購」などが含まれています.`],["customNavbarShadow",`頂欄に投影効果を追加する.`],["customNavbarCompact",`トップページにコンパクトなレイアウトを使する.コンパクトなレイアウトはより小さなスペースを使用し、そして動画のタイトルが長すぎる場合に後者の部分を省略するための 「...」を使用する.`],["customNavbarBlur",`トップの横断幕が存在する場合は、背景のぼかし効果を使用します.`],["useDarkStyle",`ダークテーマでは、ページの明るい部分が暗い色に変わり、夜間の視聴に最適な表示になります.そして多くのテーマカラーを適用します.ぜひお試しください.`],["darkSchedule",`ダークテーマを使用して计画タイムを設定する.この期間を開始または終了すると、ダークテーマは自動的にオンまたはオフになり、終了時刻は開始時刻より短く、翌日と見なされます.例えば18:00から6:00夜の18:00から翌日の6:00までを表しています.`],["darkScheduleStart",`計画期間の開始時刻を設定する.`],["darkScheduleEnd",`計画期間の終了時刻を設定する.`],["compactLayout",`ホームページでコンパクトレイアウトを使用するかどうかを設定します.動画の間隔が狭くなり、フィレットが切り取られ、カテゴリ欄のアイコンは高解像度版を使用します.`],["useCommentStyle",`- 人気コメントのアバターの下にある「フォロー」ボタンを削除します\n- ユーザーの「レベル」アイコンの削除します\n- 発送端末の情報を削除(例えば来自安卓客户端)\n- 送信時刻は右上に移動します\n- ビットアイコンはすべてベクトルアイコンを入れ替えており、高解像度の画面はぼやけません.\n注釈:「フォロー」と「レベル」アイコンはマウスでアバタ上に置くことで,ポップアップした資料カードに表示することができる.`],["simplifyLiveroom",`- 「老爷」アイコンを隠す\n- 「ファン勲章」アイコンを隠す\n- 「活動肩書き」アイコンを隠す\n- 「レベル」アイコンを隠す\n- 「艦長」アイコンを隠す\n- 「全域放送」を隠す\n- 「ウェルカムメッセージ」を隠す (例えば、「xxx老爷进入直播间」)\n- 「ギフト弾幕」を隠す (弾幕リストのみ. 例えば「节奏风暴」など特殊効果は影響を受けません)\n- 「艦長購入のヒント」を隠す (弾幕リストの「xxxは艦長を購入する」)\n- 「抽選のヒント」を隠す (例えば、「艦長」を購入する時、「小飞船」を購入する時、ギフトを抽選のヒント)\n- 配信ルームの「特殊な背景」を無効にする(ダークテーマでは、デフォルトでは「特殊な背景」も無効になっています)\n各項目は、非表示にするかどうかを附加功能の中で個別に選択することができる.`],["preserveRank",`控制是否在搜索框左侧显示排行榜图标.`],["hideBanner",`トップページの横断幕を非表示.`],["playerShadow",`プレーヤーにテーマカラーの投影の追加する.`],["narrowDanmaku",`ウェブの全画面表示されている場合は、幅が狭すぎても弾幕欄を強制的に保持し.この場合には右側の機能ボタンが境界線を押し出してしまう可能性があることに注意する.`],["blurVideoControl",`動画制御欄の背景をぼかします.伝統的な陰影効果は無効になります.`],["customControlBackground",`動画制御欄に半透明な黒を付ける、伝統的な陰影効果を置き換える.`],["customControlBackgroundOpacity",`制御欄に黒の不透明度(0~1)を設定し、数値が大きくなるほど黒が濃くなるように設定します.`],["harunaScale",`スクリーンDPIによって、配信ルームの看板娘のサイズをスケーリングして、ピクセルの解像度を高めます.`],["removeLiveWatermark",`生放送時、隅の透かしを削除する.`],["removeVideoTopMask",`マウスが通過したら、動画の右上隅にあるタイトル層を削除します.`],["hideOldEntry",`放送ページの右側返回旧版を隠す.`],["hideBangumiReviews",`番組ページの採点区を隠す.`],["hideCategory",`ホームページのエリア欄を隠す、それでもエリア欄は頂欄のホームメニューからアクセスできます.`],["removeAds",`ビリビリのさまざまな広告を削除する.ホームページのプロモーションモジュール、モバイルアプリのおすすめ、動画ページの右側にある広告などが含まれます.`],["watchLaterRedirect",`「後で見る」のリンクを通常の再生ページに変更して、新版レイアウトの再生ページを使用する.`],["favoritesRedirect",`個人センターの「お気に入り」の動画を通常の再生ページに変更して、「お気に入り」再生の放送ページではなく.`],["hideTopSearch",`検索欄の推薦語を搜索に置き換える.`],["fullTweetsTitle",`頂欄の情報プレビューページでは、常に完全なタイトルが展開されます.`],["fullPageTitle",`動画選集一覧では、常に完全なタイトルが展開されます.`],["showDeadVideoTitle",`個人センターの中に、失効した動画のタイトルとサムネイルを復元する.`],["useBiliplusRedirect",`失効した動画のリンクを「BiliPlus」ページに変更して.`],["deadVideoTitleProvider",`失効した動画の情報源: 「後で見る」は安定していますが、少し時間がかかります; 「BiliPlus」のスピードは速いですが、書き残していますので、しばらく開けません.`],["biliplusRedirect",`動画、番組、個人センターページで、追加機能转到BiliPlusをクリックして、BiliPlusの対応するページに移動します.`],["imageResolution",`スクリーンDPIによって、より高い解像度の画像を読み込む.(例えば、スクリーンのDPIが200%に調整されている場合、解像度は2倍になり、読み込み時間は長くなります.)`],["oldTweets",`「新版レイアウトの情報」リンクを 「旧版レイアウトの情報」に置き換え、追加機能で 「新版レイアウトの情報」/「旧版レイアウトの情報」を切り替えます.`],["i18n",`インタフェースの一般的なテキストの翻訳を提供する.`],["i18nLanguage",`翻訳言語`],["noLiveAutoplay",`生放送のホームページのおすすめライブルームで自動的に再生を開始することは禁止されています.`],["hideHomeLive",`生放送のホームページのおすすめライブルームを隠す.`],["foldComment",`情報ページにコメントを表示しているときに下部に「コメントを閉じる」ボタンを追加します.`],["seedsToCoins",`追加機能に瓜子换硬币ボタンを追加し、クリックして1日に1回に制限されて、1コインに700銀ヒマワリの種を交換してください.`],["touchNavBar",`頂欄の右側の1級リンクを削除します(大会員から履歴まで).タッチスクリーンデバイスですばやく情報を便利にします.削除されたリンクページはそれぞれのプレビューの中から查看更多に入ることができます.`],["comboLike",`「おすすめ三連」(「いいね」を長押した)のタッチサポートを有効にする.`],["touchVideoPlayer",`制御欄のボタン間隔を大きくして、タッチ操作をより正確にする.プレーヤーのタッチサポートを有効にする:\n- 左右にスワイプして再生の進行状況を調整します\n- 上下にスワイプして音量を調整します\n- 進行状況の調整は左上と右上でキャンセルできます\n- 異なる位置にスワイプすると、3つの異なる感度を使用できます.`],["touchVideoPlayerAnimation",`タッチ調整のヒントボックスにアニメーションの表示と非表示のどうかを決定します.このアニメーションはフレームがドロップされる可能性があります.`],["touchVideoPlayerDoubleTapControl",`操作方法を変更する.クリック:制御欄を表示/非表示, ダブルクリック放送/一時停止.`],["toast",`ウェブページの左下隅に表示スクリプトからのメッセージ、例えば更新通知の送信、エラーメッセージなどです.`],["toastInternalError",`オープンしたら、エラーメッセージは詳細な技術的エラー情報とスタック追跡を表示します.これは通常問題発生の原因を正確に確定するために使用されます.だから、問題を報告する時にこれらの情報はとても役に立ちます.`],["useCache",`スクリプトの読み込み速度を上げるためにキャッシュを使う.`],["filenameFormat",`ファイルの命名形式をカスタマイズする、下载弹幕下载视频视频截图查看封面に作用する.\n使用できる変数は:\n- title: 動画のタイトル/配信ルームのタイトル\n- ep: エピソードタイトル\n- aid: AV番号 (動画アドレス番号)\n- cid: CID (動画の唯一の番号、動画アドレス番号に対応するの動画アドレスは複数の動画を含み得る)\n- lid: 配信ルーム番号\n- y/M/d: 年/月/日\n- h/m/s/ms: 時間/分/秒/ミリ秒\n\nデフォルトの命名形式は[title][ - ep]、動画のタイトル+エピソードタイトル、エピソードタイトルがない場合は動画のタイトルを表示する.\n\n変数は角括弧内に配置され、角括弧内のその他の内容は変数が有効な場合に表示されます. 例えば、命名形式が[title] - [ep]書かれている場合ではエピソードタイトルがなくても、この - ファイル名にも表示されます. デフォルトとして角括弧で囲まれている場合、エピソードタイトルがない、 - が表示されません.\n\n例えば、タイトル+AV番号+時間の命名形式が欲しい、[title][ AVaid] [y]-[M]-[d] [h]-[m]-[s]に設定することができます. xxxx AV23333 2019-06-1 22-22-22ような名前をつけることができます.`],["sideBarOffset",`設定ボタンの垂直オフセット、単位はパーセント、許容範囲は-40%〜40%です.`],["useDefaultVideoSpeed",`デフォルトの再生速度を使用するかどうかを設定します.`],["defaultVideoSpeed",`デフォルトの動画再生速度を設定する.`],["autoDraw",`ライブルームに抽選活動がある場合は、「受け取り」ボタンを自動的にクリックします.`]]);return{export:{toolTips:e}}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/settings-tooltip.loader.min.js"] = (()=>{return(t,e)=>{function n(t){const e=t.querySelector("input");if(e){return e.getAttribute("key")}return null}(async()=>{e.applyStyle("settingsTooltipStyle");const{toolTips:t}=await e.importAsync(`settings-tooltip.${getI18nKey()}`);const s=await SpinQuery.select(".gui-settings-tooltip");if(!s){return}document.querySelectorAll(".gui-settings-content>ul>li").forEach(e=>{e.addEventListener("mouseover",()=>{const i=n(e);if(i===null||t===null){return}const o=t.get(i);if(o!==undefined){s.innerHTML=o;s.classList.add("show")}});e.addEventListener("mouseout",()=>{s.classList.remove("show")})})})()}})(); @@ -1093,7 +1093,7 @@ onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/mi onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/theme-colors.min.js"] = (()=>{return(e,r)=>{const t={red:"#e57373",pink:"#F06292",purple:"#BA68C8",deepPurple:"#9575CD",indigo:"#7986CB",blue:"#2196F3",lightBlue:"#00A0D8",cyan:"#00ACC1",teal:"#26A69A",green:"#81C784",lightGreen:"#9CCC65",orange:"#FF9800",deepOrange:"#FF7043",brown:"#A1887F",grey:"#757575",blueGrey:"#78909C"};class o{constructor(){this.reloadColor=(()=>{const e=document.querySelector("html");return function(r){const t=new ColorProcessor(r);const o=e=>t.rgbToString(t.hexToRgba(e));e.style.setProperty("--theme-color",r);for(let t=10;t<=90;t+=10){e.style.setProperty(`--theme-color-${t}`,o(r+t))}e.style.setProperty("--foreground-color",t.foreground);e.style.setProperty("--foreground-color-b",o(t.foreground+"b"));e.style.setProperty("--foreground-color-d",o(t.foreground+"d"));e.style.setProperty("--blue-image-filter",t.blueImageFilter);e.style.setProperty("--pink-image-filter",t.pinkImageFilter);e.style.setProperty("--brightness",t.brightness);e.style.setProperty("--invert-filter",t.filterInvert)}})()}setupDom(){const e=document.querySelector(`input[key='customStyleColor']`);e.addEventListener("change",()=>{this.reloadColor(e.value)});const r=document.querySelector(".predefined-colors-grid");for(const o of Object.values(t)){const t=document.createElement("div");r.insertAdjacentElement("beforeend",t);t.classList.add("predefined-colors-grid-block");t.style.background=o;t.setAttribute("data-color",o);t.addEventListener("click",r=>{const t=r.target.getAttribute("data-color");e.value=t;raiseEvent(e,"input");raiseEvent(e,"change")})}const o=document.querySelector(".predefined-colors");document.querySelector("div.custom-color-preview").addEventListener("click",()=>{o.classList.toggle("opened")})}}return{export:{ThemeColors:o}}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/title.min.js"] = (()=>{return(e,t)=>{function i(e=true){const t=document.title.replace("_番剧_bilibili_哔哩哔哩","").replace("_电影_bilibili_哔哩哔哩","").replace("_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili","").replace(" - 哔哩哔哩直播,二次元弹幕直播平台","").replace(/[\/\\:\*\?"<>\|]/g,"").trim();if(!e||document.URL.indexOf("/bangumi")!==-1){return t}else{const e=document.querySelector("#multi_page .cur-list>ul li.on a");if(e===null){return t}else{const i=e.getAttribute("title");return t+" - "+i}}}function l(e,t=true){const i=new Date;const l={title:document.title.replace(t?/:([^:]+?)_番剧_bilibili_哔哩哔哩/:"_番剧_bilibili_哔哩哔哩","").replace(t?/:([^:]+?)_电影_bilibili_哔哩哔哩/:"_电影_bilibili_哔哩哔哩","").replace(t?/:([^:]+?)_纪录片_bilibili_哔哩哔哩/:"_纪录片_bilibili_哔哩哔哩","").replace("_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili","").replace(/(.*?) - (.*?) - 哔哩哔哩直播,二次元弹幕直播平台/,"$1").trim(),ep:(()=>{if(!t){return null}const e=dq("#eplist_module li.cursor .ep-title");if(e!==null){return e.innerText}const i=document.querySelector("#multi_page .cur-list>ul li.on a");if(i!==null){return i.getAttribute("title")}return null})(),aid:unsafeWindow.aid,cid:unsafeWindow.cid,lid:document.URL.replace(/https:\/\/live\.bilibili\.com\/(\d+).*/,"$1"),y:i.getFullYear().toString(),M:(i.getMonth()+1).toString().padStart(2,"0"),d:i.getDate().toString().padStart(2,"0"),h:i.getHours().toString().padStart(2,"0"),m:i.getMinutes().toString().padStart(2,"0"),s:i.getSeconds().toString().padStart(2,"0"),ms:i.getMilliseconds().toString().substr(0,3)};const r=Object.keys(l).reduce((e,t)=>{return e.replace(new RegExp(`\\[([^\\[\\]]*?)${t}([^\\[\\]]*?)\\]`,"g"),l[t]?`$1${l[t]}$2`:"")},e);return r.replace(/[\/\\:\*\?"<>\|]/g,"")}function r(t=true){if(e.filenameFormat===undefined){return i(t)}return l(e.filenameFormat,t)}return{export:{getFriendlyTitle:r,formatTitle:l}}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/toast.min.css"] = `.toast-card-container{--card-min-width:240px;--card-min-width-negative:-240px;position:fixed;left:0;bottom:0;display:flex;flex-direction:column-reverse;align-items:start;padding-left:16px;z-index:100001;pointer-events:none;overflow:hidden;width:100%;height:100%;transition:.2s ease-out}.toast-card-container *{pointer-events:initial;transition:.2s ease-out}.toast-card.toast-card-container-enter,.toast-card.toast-card-container-leave-to{opacity:0;transform:translateX(var(--card-min-width-negative))}.toast-card{background:#fff;min-width:var(--card-min-width);max-width:60vw;min-height:96px;margin:8px 0;box-shadow:rgba(0,0,0,.2) 0 4px 8px 0;transform-origin:left;overflow:hidden;display:flex;flex-direction:column;border-left-style:solid;transition:.3s cubic-bezier(.18,.89,.32,1.28);position:relative;border-left-width:0;padding-left:var(--corner-radius);border-radius:var(--corner-radius)}.toast-card.toast-card-container-leave-active{position:absolute;transition:.3s cubic-bezier(.6,-.28,.74,.05)}.toast-card-header{display:flex;align-items:center}.toast-card-title{font-size:18px;color:#000;opacity:.5;margin:16px;font-weight:700;flex:1 1 auto}.toast-card-dismiss{height:24px;width:24px;flex:0 0 auto;padding:16px;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:.2s ease-out;transform-origin:center;opacity:.5;box-sizing:content-box}.toast-card-dismiss:hover{transform:scale(1.2)}.toast-card-dismiss:active{transform:scale(1.1)}.toast-card-message{color:#000;font-size:14px;margin:0 16px 16px;white-space:pre-wrap;display:flex;align-items:center;line-height:1.5}.toast-card.toast-default{border-left-color:#444}.toast-card.toast-error{border-left-color:#f44336}.toast-card.toast-info{border-left-color:#2196f3}.toast-card.toast-success{border-left-color:#8bc34a}.toast-card .toast-card-border{position:absolute;height:100%;width:4px;border-radius:var(--corner-radius);height:calc(100% - 10px);width:var(--corner-radius);top:5px;left:0}.toast-card.toast-default .toast-card-border{background-color:#444}.toast-card.toast-error .toast-card-border{background-color:#f44336}.toast-card.toast-info .toast-card-border{background-color:#2196f3}.toast-card.toast-success .toast-card-border{background-color:#8bc34a}.toast-card .link,.toast-card span{display:inline-block;padding:4px 6px;margin:0 2px;background-color:#8882;text-decoration:none;color:#000;transition:.2s ease-out;border-radius:var(--corner-radius)}.toast-card .link:hover{background-color:#8883}.toast-card .link:active{background-color:#8884}@keyframes loading{0%,100%{top:0;left:50%}25%{top:50%;left:100%}50%{top:100%;left:50%}75%{top:50%;left:0}}.toast-card .loading{width:14px;height:14px;display:inline-block;margin-right:14px;position:relative}.toast-card .loading::after{content:"";width:10px;height:10px;background-color:#8884;border-radius:50%;display:block;transform:translateX(-50%) translateY(-50%);position:absolute;top:0;left:50%;animation:1s cubic-bezier(.22,.61,.36,1) infinite loading}`; -onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/toast.min.js"] = (()=>{return(t,s)=>{var e;(function(t){t["Default"]="default";t["Info"]="info";t["Success"]="success";t["Error"]="error"})(e||(e={}));class a{constructor(t="",s="",a=e.Default){this.creationTime=new Date;this.type=a;this.message=t;this.title=s;this.duration=3e3}show(){r.cards.splice(0,0,this);if(this.duration!==undefined){setTimeout(()=>this.dismiss(),this.duration)}}dismiss(){if(r.cards.includes(this)){r.cards.splice(r.cards.indexOf(this),1)}}get element(){return dq(`.toast-card[key='${this.key}']`)}get key(){return this.creationTime.toISOString()}static get container(){return document.querySelector(".toast-card-container")}static createToastContainer(){if(!document.querySelector(".toast-card-container")){document.body.insertAdjacentHTML("beforeend",`\n \n \n `)}}static internalShow(t,s,e,r){const n=new a(t,s,r);n.duration=e;n.show();return n}static show(t,s,a){return this.internalShow(t,s,a,e.Default)}static info(t,s,a){return this.internalShow(t,s,a,e.Info)}static success(t,s,a){return this.internalShow(t,s,a,e.Success)}static error(t,s,a){return this.internalShow(t,s,a,e.Error)}}s.applyStyle("toastStyle");Vue.component("toast-card",{props:["card"],template:`\n
\n
\n
\n

{{card.title}}

\n
\n \n \n \n
\n
\n
\n
\n `});a.createToastContainer();const r=new Vue({el:".toast-card-container",data:{cards:[]}});return{export:a}}})(); +onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/toast.min.js"] = (()=>{return(t,s)=>{var a;(function(t){t["Default"]="default";t["Info"]="info";t["Success"]="success";t["Error"]="error"})(a||(a={}));let e;class r{constructor(t="",s="",e=a.Default){this.creationTime=new Date;this.type=e;this.message=t;this.title=s;this.duration=3e3}show(){r.containerVM.cards.splice(0,0,this);if(this.duration!==undefined){setTimeout(()=>this.dismiss(),this.duration)}}dismiss(){if(r.containerVM.cards.includes(this)){r.containerVM.cards.splice(r.containerVM.cards.indexOf(this),1)}}get element(){return dq(`.toast-card[key='${this.key}']`)}get key(){return this.creationTime.toISOString()}static get containerVM(){if(!e){r.createToastContainer()}return e}static createToastContainer(){if(!document.querySelector(".toast-card-container")){document.body.insertAdjacentHTML("beforeend",`\n \n \n `);e=new Vue({el:".toast-card-container",components:{"toast-card":{props:["card"],template:`\n
\n
\n
\n

{{card.title}}

\n
\n \n \n \n
\n
\n
\n
\n `}},data:{cards:[]}})}}static internalShow(t,s,a,e){const n=new r(t,s,e);n.duration=a;n.show();return n}static show(t,s,e){return this.internalShow(t,s,e,a.Default)}static info(t,s,e){return this.internalShow(t,s,e,a.Info)}static success(t,s,e){return this.internalShow(t,s,e,a.Success)}static error(t,s,e){return this.internalShow(t,s,e,a.Error)}}s.applyStyle("toastStyle");return{export:r}}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/touch-navbar.min.js"] = (()=>{return(e,r)=>{SpinQuery.count(()=>document.querySelectorAll("ul.fr>li.nav-item:not(.profile-info), .nav-user-center .nav-item"),6,e=>{e.forEach(e=>{e.style.cursor="pointer";const r=e.querySelector("a.t");r.removeAttribute("href")})})}})(); onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/touch-player.min.css"] = `.touch-video-box-wrapper{display:flex;align-items:center;justify-content:center;width:100%;height:100%;position:absolute;top:0;left:0;z-index:14;pointer-events:none}.touch-video-box{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:rgba(0,0,0,.85);position:relative;max-width:520px;max-height:240px;border:4px solid transparent;transform-origin:center}.round-corner .touch-video-box{border-radius:var(--corner-radius)}.touch-video-box-wrapper.simple{align-items:flex-start}.touch-video-box.animation{transition:.2s cubic-bezier(.18,.89,.32,1.28)}.touch-video-info{color:#fff;font-size:2rem;text-align:center;display:flex;align-items:center;justify-content:center;flex-direction:column;height:100%;width:100%}.touch-row{flex-grow:1;display:flex;align-items:center;justify-content:center;width:100%}.touch-info{display:block;color:var(--theme-color)}.touch-result{display:block;font-size:1.5rem;line-height:150%}.touch-speed{display:block;background:rgba(0,0,0,.1);padding:.5em}.touch-progress{position:absolute;bottom:0;left:0;background:var(--theme-color);width:0;height:4px}.round-corner .touch-progress{border-radius:2px}.touch-row-item{flex:1 0 0;display:none;align-items:center;justify-content:center}.touch-row-item-wide{flex:1.5 0 0;display:flex;align-items:center;justify-content:center}.videoshot{background-color:transparent;background-image:none;transform-origin:center;transform:scale(.9)}.adjust-closed{opacity:0;transform:scale(.9)}.adjust-opened{opacity:1;transform:scale(1)}.touch-video-info.speed .touch-row-item{display:flex}.touch-video-info.cancel .touch-progress,.touch-video-info.cancel .touch-result{opacity:0}.disable-original-hover .bilibili-player-video-control-bottom,.disable-original-hover .bilibili-player-video-control-mask{opacity:0!important;visibility:hidden!important}.disable-original-hover .bilibili-player-video-control-wrap,.disable-original-hover.touch-video-control-show .bilibili-player-video-control-bottom,.disable-original-hover.touch-video-control-show .bilibili-player-video-control-mask{opacity:1!important;visibility:visible!important}.bilibili-player-video-control-top,.disable-original-hover .bilibili-player-video-control-top{left:0!important;right:0!important;bottom:0!important}.bilibili-player-video-control-top,.bilibili-player-video-progress-detail{bottom:0!important}.video-control-show .bilibili-player-video-progress-detail{bottom:36px!important}.disable-original-hover.touch-video-control-show .bilibili-player-video-control-top{left:0!important;right:0!important;bottom:38px!important}div.bilibili-player-video-control{height:38px!important;align-items:center!important}.bilibili-player-video-btn{flex-grow:1!important;height:100%!important;display:flex!important;align-items:center!important;justify-content:center!important}.bilibili-player-video-inputbar,.bilibili-player-video-progress{flex-grow:30!important}.bilibili-player-video-quality-menu{display:flex!important;align-items:center!important;justify-content:center!important}.bilibili-player-iconfont-color,.bilibili-player-iconfont-danmaku,.bilibili-player-iconfont-danmaku-off,.bilibili-player-iconfont-fullscreen,.bilibili-player-iconfont-pause,.bilibili-player-iconfont-repeat,.bilibili-player-iconfont-setting,.bilibili-player-iconfont-start,.bilibili-player-iconfont-volume,.bilibili-player-iconfont-volume-max,.bilibili-player-iconfont-volume-min,.bilibili-player-iconfont-web-fullscreen,.bilibili-player-iconfont-widescreen{font-size:2.5rem!important}.bilibili-player-iconfont-next{font-size:2rem!important}.bilibili-player-video-btn-setting-panel,.bilibili-player-video-danmaku-setting-wrap,.bilibili-player.mode-fullscreen .bilibili-player-video-sendbar,.bpui-selectmenu-list{left:unset!important;bottom:38px!important}.bilibili-player-video-volumebar-wrp{left:unset!important}.bilibili-player-video-control-wrap{padding:0!important}.bilibili-player-video-control-bottom{padding:0!important;align-items:center!important}.bilibili-player-iconfont-next,.bilibili-player-iconfont-setting,.bilibili-player-video-btn-volume.video-state-volume-max .bilibili-player-iconfont-volume-max,.bilibili-player-video-btn-volume.video-state-volume-min .bilibili-player-iconfont-volume-min,.bilibili-player-video-btn-volume:not(.video-state-volume-max):not(.video-state-volume-min) .bilibili-player-iconfont-volume,.bilibili-player-video-control-bottom-left{display:flex!important;align-items:center!important}.bilibili-player-video-btn-danmaku{flex-grow:0!important;display:flex!important;align-items:center!important;height:100%!important;margin:0!important;padding:0!important}.bilibili-player.mode-webfullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control-bottom-right{flex-grow:1!important}.bilibili-player.mode-fullscreen .bilibili-player-video-sendbar{bottom:0!important}.bilibili-player .bilibili-player-area .bilibili-player-video-control .bilibili-player-video-btn.bilibili-player-video-btn-fullscreen{margin-right:0!important;padding-right:8px!important}.bilibili-player .bilibili-player-area .bilibili-player-video-control .bilibili-player-video-btn.bilibili-player-video-btn-start{padding-left:8px!important;flex-grow:1.2!important;margin-right:0!important;margin-left:0!important}.bilibili-player .bilibili-player-area .bilibili-player-video-control .bilibili-player-video-btn{padding:0 3px!important}.bilibili-player .bilibili-player-area .bilibili-player-video-control-bottom,.bilibili-player .bilibili-player-area .bilibili-player-video-control-bottom-right,.bilibili-player-video-control-bottom-left{height:100%!important;margin:0!important}.bilibili-player-video-btn-setting-panel-hover-bridge{display:none!important}.disable-original-hover .bilibili-player-video-control-wrap:hover .bilibili-player-video-control-top .bilibili-player-video-progress-slider,.disable-original-hover.bilibili-player-area.video-control-show .bilibili-player-video-control-top .bilibili-player-video-progress-slider{height:2px!important}.disable-original-hover.bilibili-player-area .bilibili-player-video-control .bilibili-player-video-progress-detail.show{bottom:1px!important}.disable-original-hover.bilibili-player-area .subtitle-position.subtitle-position-bc,.disable-original-hover.bilibili-player-area .subtitle-position.subtitle-position-bl,.disable-original-hover.bilibili-player-area .subtitle-position.subtitle-position-br{bottom:20px!important}.disable-original-hover.touch-video-control-show .subtitle-position.subtitle-position-bc,.disable-original-hover.touch-video-control-show .subtitle-position.subtitle-position-bl,.disable-original-hover.touch-video-control-show .subtitle-position.subtitle-position-br{bottom:44px!important}.bilibili-player.mode-fullscreen .disable-original-hover.touch-video-control-show .subtitle-position.subtitle-position-bc,.bilibili-player.mode-fullscreen .disable-original-hover.touch-video-control-show .subtitle-position.subtitle-position-bl,.bilibili-player.mode-fullscreen .disable-original-hover.touch-video-control-show .subtitle-position.subtitle-position-br,.bilibili-player.mode-webfullscreen .disable-original-hover.touch-video-control-show .subtitle-position.subtitle-position-bc,.bilibili-player.mode-webfullscreen .disable-original-hover.touch-video-control-show .subtitle-position.subtitle-position-bl,.bilibili-player.mode-webfullscreen .disable-original-hover.touch-video-control-show .subtitle-position.subtitle-position-br{bottom:60px!important}.bilibili-player:not(.mode-webfullscreen):not(.mode-fullscreen) .bilibili-player-area:not(.disable-original-hover) .bilibili-player-video-control-wrap:hover .bilibili-player-video-control-top .bilibili-player-video-progress-slider,.bilibili-player:not(.mode-webfullscreen):not(.mode-fullscreen) .bilibili-player-area:not(.disable-original-hover).video-control-show .bilibili-player-video-control-top .bilibili-player-video-progress-slider{height:74px!important}.bilibili-player.mode-fullscreen .disable-original-hover .bilibili-player-video-control-top{opacity:1!important}#bofqi *{-webkit-tap-highlight-color:transparent!important}@media screen and (min-width:750px){.bilibili-player.mode-fullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control-bottom-center .bilibili-player-video-sendbar .bilibili-player-video-inputbar,.bilibili-player.mode-webfullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control-bottom-center .bilibili-player-video-sendbar .bilibili-player-video-inputbar{background:#fff1!important}.bilibili-player.mode-fullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control,.bilibili-player.mode-webfullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control{height:100%!important;margin:0!important}.bilibili-player.mode-fullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control-bottom,.bilibili-player.mode-webfullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control-bottom{margin:0!important}.bilibili-player.mode-fullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control-bottom-left,.bilibili-player.mode-webfullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control-bottom-left{height:100%!important}.bilibili-player-video-btn.bilibili-player-video-btn-start{flex-grow:.5!important}.player .bilibili-player.mode-fullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control-top,.player .bilibili-player.mode-webfullscreen .bilibili-player-video-control-wrap .bilibili-player-video-control-top{left:0!important;right:0!important}.player .bilibili-player.mode-fullscreen .disable-original-hover.bilibili-player-video-control-wrap .bilibili-player-video-control-top,.player .bilibili-player.mode-webfullscreen .disable-original-hover.bilibili-player-video-control-wrap .bilibili-player-video-control-top{left:0!important;right:0!important;bottom:0!important}.player .bilibili-player.mode-fullscreen .disable-original-hover.touch-video-control-show .bilibili-player-video-control-top,.player .bilibili-player.mode-webfullscreen .disable-original-hover.touch-video-control-show .bilibili-player-video-control-top{left:0!important;right:0!important;bottom:54px!important}.mode-fullscreen .bilibili-player-area.mouse-hover:not(.disable-original-hover) .bilibili-player-video-control-top,.mode-fullscreen .bilibili-player-area.video-control-show:not(.disable-original-hover) .bilibili-player-video-control-top,.mode-webfullscreen .bilibili-player-area.mouse-hover:not(.disable-original-hover) .bilibili-player-video-control-top,.mode-webfullscreen .bilibili-player-area.video-control-show:not(.disable-original-hover) .bilibili-player-video-control-top{left:0!important;right:0!important;bottom:48px!important}}`; onlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/touch-player.min.js"] = (()=>{return(t,e)=>{const i=t=>{let e=0;let i=0;while(t&&!isNaN(t.offsetLeft)&&!isNaN(t.offsetTop)){e+=t.offsetLeft-t.scrollLeft;i+=t.offsetTop-t.scrollTop;t=t.offsetParent}return{x:e,y:i}};const s=t=>{t=Math.abs(t);const e=Math.floor(t/3600);const i=Math.floor((t-e*3600)/60);const s=t-e*3600-i*60;let o=fixed(s)+"秒";if(i>0){o=i+"分"+o}if(e>0){o=e+"时"+o}return o};const o=t=>{t=Math.abs(t);const e=Math.floor(t/3600);const i=Math.floor((t-e*3600)/60);const s=t-e*3600-i*60;let o=(s<10?"0":"")+fixed(s);o=(i<10?"0":"")+i+":"+o;o=(e<10?"0":"")+e+":"+o;return o};class n{constructor(t){this.action=new l(t);this.onTouchStart=null;this.onTouchEnd=null;this.direction=null;t.addEventListener("touchstart",t=>{this.xDown=t.touches[0].clientX;this.yDown=t.touches[0].clientY;if(this.onTouchStart){this.onTouchStart(t)}});t.addEventListener("touchmove",e=>{if(!this.xDown||!this.yDown){return}const s=e.touches[0].clientX;const o=e.touches[0].clientY;const n=i(t);const l={x:(e.touches[0].pageX-n.x)/t.clientWidth,y:(e.touches[0].pageY-n.y)/t.clientHeight,width:t.clientWidth,height:t.clientHeight};const a=this.xDown-s;const c=this.yDown-o;if(!this.direction){let t="";if(Math.abs(a)>Math.abs(c)){t="horizontal"}else{t="vertical"}this.direction=t}else{if(this.direction==="vertical"){this.action.startAction(this.direction,c,l)}else if(this.direction==="horizontal"){this.action.startAction(this.direction,-a,l)}}if(e.cancelable){e.preventDefault()}});t.addEventListener("touchend",t=>{this.xDown=null;this.yDown=null;this.direction=null;if(this.onTouchEnd){this.onTouchEnd(t)}})}}class l{constructor(t){this.lowSpeedForward=null;this.lowSpeedBackward=null;this.mediumSpeedForward=null;this.mediumSpeedBackward=null;this.highSpeedForward=null;this.highSpeedBackward=null;this.volumeUp=null;this.volumeDown=null;this.brightnessUp=null;this.brightnessDown=null;this.speedCancel=null;this.minSwipeDistance=20;this.onActionStart=null;this.onActionEnd=null;this.element=t;this.touchStart=false;this.startPosition=null;this.lastAction=null;t.addEventListener("touchstart",()=>{this.touchStart=true});t.addEventListener("touchend",()=>{this.startPosition=null;this.onActionEnd&&this.onActionEnd(this.lastAction);this.lastAction=null})}startAction(t,e,i){if(this.touchStart){this.onActionStart&&this.onActionStart(t);this.startPosition=i;this.touchStart=false}if(t==="vertical"){let t;let s;if(this.startPosition.x<1/2){t=this.brightnessUp;s=this.brightnessDown;const o=Math.round(200*(e-this.minSwipeDistance)/(1.5*i.height));if(e>0){t&&t(o)}else{s&&s(o)}this.lastAction={type:"brightness",brightness:o}}else{t=this.volumeUp;s=this.volumeDown;const o=Math.round(200*(e-this.minSwipeDistance)/(1.5*i.height));if(e>0){t&&t(o)}else{s&&s(o)}this.lastAction={type:"volume",volume:o}}}else if(t==="horizontal"){if(i.y<1/3&&(i.x<.1||i.x>.9)){this.speedCancel&&this.speedCancel();this.lastAction=null}else{let t=0;let i;let s;if(this.startPosition.y<1/3){t=.05;i=this.lowSpeedForward;s=this.lowSpeedBackward}else if(this.startPosition.y>=1/3&&this.startPosition.y<=2/3){t=.2;i=this.mediumSpeedForward;s=this.mediumSpeedBackward}else{t=1;i=this.highSpeedForward;s=this.highSpeedBackward}if(e>0){const s=(e-this.minSwipeDistance)*t;i&&i(s);this.lastAction={type:"playback",seconds:s}}else{const i=(e+this.minSwipeDistance)*t;s&&s(i);this.lastAction={type:"playback",seconds:i}}}}}}class a{constructor(){this.aid=unsafeWindow.aid;this.cid=unsafeWindow.cid;this.cidData=null;this.supportWebp=a.supportWebp}getVideoshot(t,e){if(!(this.aid&&this.cid)){return}if(!this.cidData){Ajax.getText(`https://api.bilibili.com/x/player/videoshot?aid=${this.aid}&cid=${this.cid}&index=1`).then(i=>{this.cidData=JSON.parse(i).data;this.getVideoshot(t,e)})}else{const i=this.cidData;const s=i.index;let o=0;for(let e=0;e=s[e]&&tt.replace(".jpg",".jpg@.webp"))}const l=parseInt(i.pv_x_len)||10;const a=parseInt(i.pv_y_len)||10;const c=parseInt(i.pv_x_size)||160;const r=parseInt(i.pv_y_size)||90;const h=-(o%100%l)*c;const d=-Math.floor(o%100/a)*r;e({width:c,height:r,backgroundImage:`url(${n[Math.floor(o/100)]})`,backgroundPosition:`${h}px ${d}px`})}}static get supportWebp(){try{const t=document.createElement("canvas");if(t.getContext&&t.getContext("2d")){try{return t.toDataURL("image/webp").indexOf("data:image/webp")===0}catch(t){return false}}else{return false}}catch(t){return false}}}function c(t){t.unbind("click")}function r(t){if($(".touch-video-box").length!==0){return}$(".bilibili-player-video-subtitle").before(`\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
`);let e=$("video");const i=e.prop("duration");const l=new n(t.get(0));const c=document.querySelector(".touch-video-info");const r=document.querySelector(".touch-video-box");let h=100;let d=Math.round(e.prop("volume")*100);const u=t=>{t/=100;if(t<0){t=0}else if(t>1){t=1}e.prop("volume",t);$(".bilibili-player-video-volume-num").text(Math.round(t*100));$(".bui-thumb").css("transform",`translateY(-${48*t}px)`);$(".bui-track-vertical .bui-bar").css("transform",`scaleY(${t})`);if(t===0){$(".bilibili-player-video-btn-volume").addClass("video-state-volume-min");$(".bilibili-player-video-btn-volume").removeClass("video-state-volume-max");e.prop("muted",true)}else if(t===1){$(".bilibili-player-video-btn-volume").removeClass("video-state-volume-min");$(".bilibili-player-video-btn-volume").addClass("video-state-volume-max");e.prop("muted",false)}else{$(".bilibili-player-video-btn-volume").removeClass("video-state-volume-min");$(".bilibili-player-video-btn-volume").removeClass("video-state-volume-max");e.prop("muted",false)}};l.action.onActionStart=(t=>{r.classList.add("adjust-opened");c.classList[t==="vertical"?"remove":"add"]("speed");e=$("video");d=Math.round(e.prop("volume")*100);const i=e.css("filter").match(/brightness\((.+)\)/);h=Math.trunc((i?i[1]:1)*100)});const p=new a;const v=t=>{return n=>{const l=e.prop("currentTime");const a=fixed(100*l/i);let r=l+n;let h=fixed(100*r/i);let d=n;if(r>i){r=i;h=100;d=i-l}else if(r<0){r=0;h=0;d=l}const u=`${o(l)} (${a}%)
👇
${o(r)} (${h}%)`;c.classList.remove("cancel");c.querySelector(".touch-speed").innerHTML=`${t}速`;c.querySelector(".touch-info").innerHTML=`进度: ${n>0?"+":"-"}${s(d)}`;c.querySelector(".touch-result").innerHTML=u;p.getVideoshot(r,t=>$(".videoshot").css(t));$(".touch-progress").css("width",`${h}%`)}};l.action.lowSpeedBackward=v("低");l.action.lowSpeedForward=v("低");l.action.mediumSpeedBackward=v("中");l.action.mediumSpeedForward=v("中");l.action.highSpeedBackward=v("高");l.action.highSpeedForward=v("高");const f=t=>{let e=d+t;let i=Math.abs(t);if(e>100){e=100;i=100-d}else if(e<0){e=0;i=d}const s=`${d} 👉 ${e}`;u(e);c.classList.remove("cancel");c.querySelector(".touch-info").innerHTML=`音量: ${t>0?"+":"-"}${i}`;c.querySelector(".touch-result").innerHTML=s;$(".touch-progress").css("width",`${e}%`)};l.action.volumeUp=f;l.action.volumeDown=f;const b=t=>{let i=h+t;let s=Math.abs(t);if(i>100){i=100;s=100-h}else if(i<0){i=0;s=h}const o=`${h} 👉 ${i}`;e.css("filter",`brightness(${i/100})`);c.classList.remove("cancel");c.querySelector(".touch-info").innerHTML=`亮度: ${t>0?"+":"-"}${s}`;c.querySelector(".touch-result").innerHTML=o;$(".touch-progress").css("width",`${i}%`)};l.action.brightnessUp=b;l.action.brightnessDown=b;l.action.speedCancel=(()=>{c.querySelector(".touch-info").innerHTML=`取消时间调整`;c.classList.add("cancel")});l.action.onActionEnd=(t=>{if(!unsafeWindow.touchPlayerDebug){if(t){if(t.type==="playback"){let s=e.prop("currentTime");s+=t.seconds;if(s<0){s=0}else if(s>i){s=i}e.prop("currentTime",s)}else if(t.type==="volume"){const t=JSON.parse(localStorage.bilibili_player_settings);t.video_status.volume=e.prop("volume");localStorage.bilibili_player_settings=JSON.stringify(t)}}r.classList.remove("adjust-opened")}})}function h(t){if(!t.hasClass("disable-original-hover")){t.addClass("disable-original-hover");const e=unsafeWindow.$(".bilibili-player-video");const i="touch-video-control-show";const s=e.data("events").click[0].handler;const o=new DoubleClickEvent(t=>s(t),()=>t.toggleClass(i));e.unbind("click");o.bind(e[0])}}const d=()=>{SpinQuery.any(()=>$(".bilibili-player-iconfont,.bilibili-player-video-quality-menu"),c);SpinQuery.condition(()=>$(".bilibili-player-video"),t=>t.length>0&&$("video").length>0&&$("video").prop("duration"),r);if(t.touchVideoPlayerDoubleTapControl){new SpinQuery(()=>$(".bilibili-player-area"),t=>t.length>0&&unsafeWindow.$&&unsafeWindow.$(".bilibili-player-video").data("events"),h).start()}};Observer.videoChange(d);e.applyStyle("touchPlayerStyle")}})(); diff --git a/min/about.min.js b/min/about.min.js index 0421df5ef..e53a19697 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 n=(t,e)=>o(t.name,e.name);const s=GM_info.script.name.match(/Bilibili Evolved \((.*)\)/);const a=s?s[1]:"Stable";new Vue({el:".bilibili-evolved-about",data:{version:t.currentVersion,clientType:a,logoImage:null,logoImageDark:null,branch:null,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),fetching:true,participants:[],websites:[{name:"GitHub",link:"https://github.com/the1812/Bilibili-Evolved/"},{name:"Greasy Fork",link:"https://greasyfork.org/zh-CN/scripts/373563-bilibili-evolved"}],components:[{name:"Vue.js",link:"https://cn.vuejs.org/index.html"},{name:"JSZip",link:"https://stuk.github.io/jszip/"},{name:"jQuery",link:"http://jquery.com/"},{name:"debounce",link:"https://github.com/component/debounce/"},{name:"Slip.js",link:"https://github.com/kornelski/slip"},{name:"MDI",link:"https://materialdesignicons.com"}]},mounted(){document.querySelector(".bilibili-evolved-about").addEventListener("be:about-load",()=>{this.init()},{once:true})},methods:{async getLogos(){this.logoImage=await Ajax.getText(`https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/images/bilibili-evolved-wide.svg`);this.logoImageDark=await Ajax.getText(`https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/images/bilibili-evolved-wide-dark.svg`)},async init(){this.branch=/Preview|Local/.test(a)?"preview":"master";this.getLogos();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}`).catch(()=>{e=[{name:"电波无法到达(´・_・`)",link:null}]});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);this.fetching=false}}})})()}})(); \ No newline at end of file +(()=>{return(t,e)=>{(async()=>{const i=await e.importAsync("aboutHtml");document.body.insertAdjacentHTML("beforeend",i);document.querySelector(".bilibili-evolved-about").addEventListener("be:about-load",()=>{const e=(t,e)=>t.charCodeAt(0)-e.charCodeAt(0);const i=(t,i)=>e(t.name,i.name);const o=GM_info.script.name.match(/Bilibili Evolved \((.*)\)/);const n=o?o[1]:"Stable";new Vue({el:".bilibili-evolved-about",data:{version:t.currentVersion,clientType:n,logoImage:null,logoImageDark:null,branch:null,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(i),fetching:true,participants:[],websites:[{name:"GitHub",link:"https://github.com/the1812/Bilibili-Evolved/"},{name:"Greasy Fork",link:"https://greasyfork.org/zh-CN/scripts/373563-bilibili-evolved"}],components:[{name:"Vue.js",link:"https://cn.vuejs.org/index.html"},{name:"JSZip",link:"https://stuk.github.io/jszip/"},{name:"jQuery",link:"http://jquery.com/"},{name:"debounce",link:"https://github.com/component/debounce/"},{name:"Slip.js",link:"https://github.com/kornelski/slip"},{name:"MDI",link:"https://materialdesignicons.com"}]},mounted(){this.init()},methods:{async getLogos(){this.logoImage=await Ajax.getText(`https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/images/bilibili-evolved-wide.svg`);this.logoImageDark=await Ajax.getText(`https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/images/bilibili-evolved-wide-dark.svg`)},async init(){this.branch=/Preview|Local/.test(n)?"preview":"master";this.getLogos();const t=new Set;let e=[];let o=1;do{e=await Ajax.getJson(`https://api.github.com/repos/the1812/Bilibili-Evolved/issues?state=all&direction=asc&per_page=100&page=${o}`).catch(()=>{e=[{name:"电波无法到达(´・_・`)",link:null}]});o++;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(i);this.fetching=false}}})},{once:true})})()}})(); \ No newline at end of file diff --git a/min/bundle.json b/min/bundle.json index 65ffbb849..b9b2e365b 100644 --- a/min/bundle.json +++ b/min/bundle.json @@ -1,7 +1,7 @@ { "about.min.css": "839FB8FA5429AFB22AAE52B0B1114EB5474333D12082554BAD790E75936CF48C", "about.min.html": "AE18D23499F4B636B32267440FAE92D67700FCA2F2AA2FBB4E2692018D66DD5F", - "about.min.js": "0E79611FC34B3EFB4B9428A18C391DF59674D5C41D34023F6F9DEFB656882A9E", + "about.min.js": "B0060D92D0E182A65B8A709627A116F420539BE7EE977C606E6D9C2E18CD4697", "aria2-rpc.min.js": "B13E731DDD503A645A19BB243FF0148BEAC313F0A54454752A07387176F04046", "auto-continue.min.js": "96CD47C367D7397CE1467A69764409BAEFF16E8F535BC8E15523CD0B8A86687E", "auto-draw.min.js": "AE72CF2623DF2D15AD4AF82D125FFAF7EF5B1E6B36D9E9AC646AC98AA6AA8698", @@ -58,7 +58,7 @@ "full-tweets-title.min.js": "DD57BB732ABEF7739CA84AEFF97E86F8984FCC4A8A75B957213622350B2A7C37", "gui-settings.min.css": "9C7CABF974C76DCFAD6DBECAD8CCA7C1EFA1EAEA9977DF5F0013B3F4FA664FCD", "gui-settings.min.html": "AA990C3CE45A68755AA9BED58AC4B13CAFC88C81FEF7C080DFB40A248D269F46", - "gui-settings.min.js": "33DF9A8702A721E660106D225A3BCA000863568FF289E7DBAF90584378E1D273", + "gui-settings.min.js": "6391232B3162CA80CA749F9A66DD9F7EC761B263A1C8A431313A87813428F0B8", "haruna-scale.min.js": "7B0F89A664B6A3D0BE21F7501660058DE3DC0881A81FCDA44B9F3C31BBD73D30", "hide-bangumi-reviews.min.js": "CC3CE6B3F1606F8AB0A4ADAD3B16E6DA9245D0676ACF74B97FB143FBFF0C7223", "hide-banner.min.css": "FF157AF84741AF0564FE2930CC49F524F99A41739DB4C44DC944EC6F4F620A0F", @@ -105,12 +105,12 @@ "remove-top-mask.min.js": "A15C1EC10D2E1A61845B1ADAE51860553F96427059E10443B1E53FAF48F45304", "remove-watermark.min.js": "EF8A48E379DE9400E7FCEA7A455EC966B56ADCE31D722FF02C8111FB92A148AF", "screenshot.min.css": "C8BFD4B0A76A758477B767338ABA1D0A49408EDBA861351EA5CB57070515CE76", - "screenshot.min.js": "DF1F34103A1DB88A7A4F6DDAA3C8F55710FC6C11802CED917A026D66A9F7FE3B", + "screenshot.min.js": "655DE531468A00BCE2F78B406B9A79C6D00F22A299D37BFC8F5C775E15D26DDC", "scrollbar.min.css": "9792340121B6EE6E618A3F62AABD9C992D9C325803DF4879C8A74F02DA0E2213", "search.vue.min.js": "1A4E23DFE187B1A3792F3D8E7847B9F2E8593043A8527C7B1D644CA171FC8376", "seeds-to-coins.min.js": "3F1D383501A6E989255808A82850903EB10931CBE0ADE652AADED69FB9502C57", "settings-search.min.js": "C3B605AF2581F562415B6AA30F7B1D825A74EB0B2B83A5F17A303B7B5646E261", - "settings-side-bar.min.js": "CC0E3477BF8574606720D3261C4A0202713E42B30CFE737403E629CBA97B2A98", + "settings-side-bar.min.js": "C945AD84FC42C8F5C1241A61CBC0E6874BA7393E6230B37C77204497D4855CC2", "settings-tooltip.en-US.min.js": "0D70BE86EABBC87E8E8249AD72B298EA249BD721C46B34764FAF10EE39CE1789", "settings-tooltip.ja-JP.min.js": "E02B7D9AD4AD241AF6EBA5F15B11AC6DC2214A1BBDB868A1F0AB7FF0B373BB74", "settings-tooltip.loader.min.js": "F9DFB09E32B8C814A61EE7E7D354C15A6FEF39BBBC22F476A930526DC26DA558", @@ -132,7 +132,7 @@ "theme-colors.min.js": "3001D5DAD0EFBAEC7F96C51FD3BE2C4677E358AD70D8DD019D2280EA450A34E7", "title.min.js": "0F738220A30AB7707BD1F7EA0380279E55295DDE500D313E8AC39EF713385B2C", "toast.min.css": "6F4343B67FF70C0A1217051F92BC854EE7A510A5AD5F115D98203C61C5A57D27", - "toast.min.js": "F363B62C0C53F6CE5C13A186055EA40C0BC3E73A5FFD11586DDB4A17335CC930", + "toast.min.js": "9B71F0AC57C75F8BDD267839101881ACAC61ED52EC67DEE30B97965D4CB21713", "touch-navbar.min.js": "21EF203296CF795E2471D04E7C44F5FA734FC7EB3EF6187B5AC6D562572D2649", "touch-player.min.css": "70F9BB443A8D1D629EF30BEDD48BC766C2F6640CBA7C6C35B6B002FCD8BF2A66", "touch-player.min.js": "28F2AF5C066CC4C3A2490D844861188907D1BB7B254F4B8A403F0AB3C7F4FB31", diff --git a/min/bundle.zip b/min/bundle.zip index 3e53df573fa0a8f219c295c95ccd4f03d7c3db53..b8c93937a2bc127d0843548b206614a544ef8c3c 100644 GIT binary patch delta 8190 zcmZvB1yohf*Y*v#hYsm(krqUyyFt3UyHf zgur+7_kZ8__h0KfYn?Us?Af#To@ei8&YZbVN0~m1GSwO2;%ndM)|qX7s>6_JiA#$$ z8uFf2p**F^#!IqOB;KIE9f@*i(YEKVOQaNOcsS#|rd4d#Z6Cen* zVclpj+qd~1JYloCq?jspue}Er|t7&V?A35A1 z=RJV6ihQvd9YvY!#H{luW2~9*N~v>NkcUv=h;okf{q(;2Ksp_^$Gj ztl2cJg2Rqf3v)8?{8X?bbW>m_y@k`ycAzO&fpxuW>BT)#9l=M;w43^Tdn$1{Sln_B z>WEp)Oz0<^nb23X=kKxe@tQ$Q`O*Q;1DHc^Q{F>8t+1O7wMJM(Cd?9w58x!Y3ZvH_ zjgrgrRF~mM`B>vrW&}#S7-su$M?`VYkvDGN@=}wG3}x_#4vp&fYmY;zaZ{3lMyDPs zTnLR1j4$B0LX&f$@=>AEES_+P9xaxHDX&G&P}oqb;5Vq3zP0(PCb7VA?`_3|-0h-P zSG_BiE_gS!q8D=PpH#XXd1Lu&#qbNdsTzjLZ1|SFL3n1 zIvjsF;)I!b7Y8D?-pN(%oXSS6Ie%-p_n7Fu<5h9b3uC_Oj4~ctw*x%&OBAr$nQ>Yt zVb<&2i5-=!&!1bPJqosR=!9!?>qsXJbn6eMLQicMn9Ru%r=4zoPqOBqX|+5E#GO#^ zo;i`%Tp{ocBdK(=FZpDAQJ{u#VbruGkPiw=H;J8_nw_m;*%Z(UUE6ECcyy~t_ommC zv!7plu0M@vJDTs$H<>#>+7QBGyCUA59sVqu!*&*LmCYTvDK~yfh!~man&Z&0-Kbs5 zm4_~+jwv`~m^eN8F3@C?vzKo8GLrATBBOLMuF;BD=J>*uVe!I`2ZMCA#vv56*9uK| zKC6wqz|8?pYkPML4axebn=a+7|2&u9cw$AYRA-P7W6b^(XHiTA>+ytq>LTY($Y46i zDa_vnj7+34{<`{S54axg> zoCdL;Jn?|#hho|d>&a{;3{)TAAKA1Tk9)}oK7Pa?&{Xd*=9qG?;X~i+^gXCl>VcB_ zXAPYJ@sj0Wg_&=O^^-<*U#14)dTNHb1(jbFTytm-k(F*6RSZ)h%lU?pz_z!Ol9po! zPJ612TPe(m9kmAgx`OG1V+p;v9vFJFmtQEih(<33856Sc1k;$6yYmPM2{8_FH6Ikz z-Td&zuf&sa>9Wj(GZWXKN`2My#7VBo=%SIQKIXqMRZ|kZi;kJk@~$;Y#XARY&?;2% zluGt5f3uc!>1_{{MaYl4ryb#LbVA62t`J> zMT6CE1!omfq%nN*XT=R$cwIZfAdy@t>wUD+u-DL7Lm`|fIU8B4m*shjT3OG%rH+!n z&zlzCD3p;Q(u5%zu(Zm5lhl=vE{Z-Jed~a}Wbo;2=k_2!V->0sAWUhksBV?jN^;wv zX6&S>e#y4&N-o&zP;O!84eorpl=fm5m8SYuu;spi3C`_)F^%HdqPw0JRbL?RWoCTzAIv46myJwmo`7$`&&+gbgoEyC}78PkL&r1`tIqb=W zdutbwS`g=ar6l3GDwChskcdVGTS>{!N2H$mZN*)o>I0v;jFgw-uoeo3#Xs9+OJ!Yu zyzG1Njs1Z@$_^9p*b9h|NM#^MXhw`qhnGwTWap2aR#lE`oMF#QVZOeVse zlUmcVC`im7jG1cN?ZI9MaDTH`CR8`7rM41gEt=hQ4|`m8OY0%dqL)p00cy_^TT=hny=Jg;UasR$1ZNECcRlVV9(tncVlJd3+A5vVpHJa_7k`JxzkN=6e;AVOtLL?WrnA8e?vdz&cK>q&$*qbd1@|wm#BK}itR3*_k<#wYqQ?E{A87K zj7uAVHThrt$)@SJw#?;4tMF{u(zzl*F{8G!T8i!FjPCeq>Rg@sB#qyyq`6^>LD4aEZxjk_Ag%^cV4iT+>naNH)Cg zPh$*L-lZ0fb1M{f3`brE{(a@msw&?1qPS!3+!>FUlo1%jHq-jqK3Iq@S?Fy9xtlW7Lw^&)+pcMMG9w%&i*+L6z=|NijwlK0ln zv436?ln4YOep&?u-)Q*8fp6UAX%$S=Rg%^`ZXJ95dxn7!0uf0GJi;+_Sew*uD&*(9 zoy%fV3H{G3m6)a0slZ98oS>zxkUYE6XXbY2@@Ivct-)czP`?iOs&%Nm+8uzWM0pS5 zWF})h6#2n(L~R%}%^Vi&eEruzL2$^ij*-dvcat%r#S?jdeYeYHIWjSEDwP?rmCLq; zu1Jxg>m#v)Y}7&a?DdvBSg&wr*92UO_K8gO@(=#_ACxLF-e3JlM0d^JEZwJR6kbuD zr_yc}G$<7$`eckjcR-$#%1I~vF63mR{O*yhV0jIpfFkh)uYI)4A@%zKYL&kW0H5w!Vh#5I_` z6!-2?x1~iyzxH)9dG^7>cn$g%CEHCGyoB7NG|qecds2`6uVSmOc6WE4?LF-}TDbny zIwI)jQP}q`)-TtE+2JRuZkV8JyyIpaJ-{2 zY^Gb9-;p;U@6T>d!RQjgcjw!7gm3frNjf*VaQ*H6otw-J|?**%NDAt@;YsHkKmV5&21F> z)YO4h^TxfFn73VXqj^mA%cZh@{%@!lnG=q|Ky}7%#E{=THM!EKT+^rcCN6L2w zMc4RP^m7c(Fc~VCRSb$_y=r^%<+F0k9o{?)yGprxX@j!G#@4!;Tim`jvr6tPlArnw z<&G-LM5fC})INP<^wNBkCJ{Pc(bHX7Yg5;@b!pW2R*WixAg3#}?Lp$9d$y1EyNgiK z)QgHQ#*&F|H#2@1I_0aWNli)($jDd(ZXi>+B!1t+sFoyQ<>BSGrE=meu7^@~t_tS}Df^J-X6BML{PlN_^Cr;w z^C^{SW;1clSf5YY4QFiDd=L5AR1SjH@aJ1TYK)4SKEgLQ5*b!X_b(W|`UAqY3ru3a zihE+-DD`Ql^tXp>Dq>}3Uw3q=Ft`wp>V%hPqe+c)G##=6b<0}SMn=^-A`KHWpV-_!dgo$u_DdGqay+z!=}-D1-dy-aY|R48RD@KyO16hkylMM# zuB+vE!ljwkS4w3haPe%FKR4XeUSH2tNZkT|MtS0}gNdoVwx2;iFjXlaGq8X6-bsS(AgCess_J zZ3T}Di2k_hI@C9Xm1k!zx2NItwoROf5l<;8WH1xgFOzR)2;Ov>PnMctcA*=~`yf~} z)Az>5MXr9KVa&l`LfvR|u1$vd4-Zwk;g5#rmsU1RpVG<*FjH^2%lAp`3x!q0cL?w24>SnL< zW=RCrC}%Q;H8FfyRIQMuc`|s_NiC{h%IXl~fnPWBpzHRAf&<@7UH7{DOt5-O2_Jnl z{dov3OV?M_NDo#8NB&g-sb`*k-a7(&mHVd6W}J}p$1wT2<19wd{HtL*!oZ%K*-jk3CW%L$mh=N@cpDsT264ZPIC=w~iK%Z=Ox@qr zyGB-68}l3g)debQnxfk-Rn9^&F5;{7oKr!CQ);b`9T& z>&bYs@n;4UKPJ;IzFYJ=ou8!gdIr`zo>zXk_~3RWgj$rW~N3UEs;m>t|qX4k1d;LLDP)x>eUv8op>P84S$Jrx(-Jxl%2p3QmLYSQ+A zF0Cvp_%#isH@4u*M9r)2v_cW;Yc-p}9`3zur?cN?U!>-y4H!|29JfU}IM%09LFWX?uk@oq3r;eujYer{50-t`PSCKuHL|Mf*UVXB434SkWa)Zp^Os5lv3~TC| z-BH7Ni;n$+X_nc^J>o6n$WYt5?w)?86IlzklC9|rgQfI??Tek^iy0`1Pup0>bN=|D zlG7~1bg^?>^xqG=E^COsc{>^-g!%h5w~V)9*MmYJ!T^5)h7CL9{ZWqcH2d;}WC70* zo$qRqyli^R`cp{#{=)pgRmY13t=ja;>120ssp?#C!yYxr*(0-xgsGN@@}S);&l7cNKG`oPhExR^9gU+j`sO9JP8f7no37ae}kQ@M-nN0 zeQ{sRI|EAksnJ7LH_phb)41DO+iA}Pi`}lJl}6SboqS0wJtb8=*-EX5-@_5d7vfP9 zG*eIy^U5C4tTC@4R2$(;C5`wkAtk2z11BiQ+;7(3!ZXAUOVCSv$zdHmJxlCO#yKhe zI;vl?H`@L_S+3XYE6K|Z2H$n&#PDpGMah85u zGrzjDQe-n%Xy-Sp%ye3f+qA#-Y+`LsXl>s@;xtRUs{;Emb#341_y@7ul$?!lqR!_f zs>wTgAGizm`!xD|nSxN)5-+|brGrBH6$SI?$0Iq?SGo9w>N3Z19|_bv*qHkfLC?V= zw-)HML_Xh8#JYpm&HPzVcel6mihcU!%N50_O4^xHX*^x8$84(>pCT9AypQOIs*Mh$ zpG*Z04HmL%WU|v;47}WU-4AoUvU6^2@{*%o<*|s^g@cPPq0fTNed&tfvOS07W1VmG zdV4&+@%nKKOvk9H2ppN_2i&WyACEp!4~xX=}oF=z2ux?FCZ=!T`~EHnav z!ABs7;Eijbk6l2ZpqHDspnE{Jv4_v}HOf;yeqq)N7x{8Ndfug?n;b_9q!qI;?)Nkx z%F8?wpJ-KaX7}p;oC{GOP38Ab$CXzo9137r*)3tkduI0JrKkqZ#Sg&;1C(}db?!>u zElOgZ@1#!=eB*}LI2p&r?H4U@{C_xFUHx;a&MoIXz*go9HLd|}|h9wSGCQ|XX zjL95Bga(}i)?zn-Q?i^@no&#*#vwB!8Na&oRHOE~DhdaT0 zLC3=$qWCpjDeNW%NhuCTZOtr|ryQ+C-MS17x4@R9y1J4`Mr2_ zSFpawV4BgTp=PR-deu&%T}Jj$BH_+9);(9CyHQrwh91xSaXEKPqJL{;nOyRIqcm@# z_O$t+xz5(fd(!kfH>~WM%T+%gZJX|TjN&!BMBqdT@V$J~x-2G^HTG0?9pB}f3wNC4 zH=(5yy`)jBeiiD8oZb7gU~~Mpqt+B@`WMkeAwBQSrVq?Mn@w01fx)`e`MNXxI(oG` z1lzx#_#B?K(GKHFfA7CK>YO;iczYq1ry^7R^g+(ci84Qj{WtS#Ax95Jh3PT}!+uLI z5uc8|&8kR>`I^#xqxPZA!mq&_yB^`8R93T`nV0Amx3PT>#k%&L6O{*XR=k~jv}15GE9X8!hZVio%0%7&BA3~CXM3-JwwcgIyHcK&$2`LMsz31yDuDN0^4@TN2ARQ0#~!Gmbqk$oG4&&89}c+J#JTVg)tQHjLBjD(77XrxDA&SgBa>{?HEr3WRNE%rNI+Y*=BnBXrA!XDV zLna#|BdAn?h=8v$#Ehb4f(3M-QW@e$J^#ZS5u%iMoBbfl1Dx`>t69(j}5EXD&h4@kF zBAK_Zu!0s z0Y9`MI`Bdp5OczUckC#z!;Yc?x2$0=b2_jWYH+3l<6#11 zbzv_Amr!8z5{eS!=|Y0&ntz_C!B<@v(-c0Srw37kaupbM5q{Lai-!&9>cPX4`B9*r zA4L!9^dMd|oV7nsG{8jhiW-FJLquHvb+8Us zEye%T&EK{{4uxq9P_C@jLZhOWB{ol0q`?`MGEl<=3gPAG_K(X5Q`lxUC@_U<`4N~ig#%6j>}HT0+R^|6Lx7~q#R45G zNCg!Y2z0Grc0IL%dC3B1tYAX209I?*1P5@khS*sC`>+gwApfuATYxfaNQU4n8iNRM z@b~fb1oCQdL^w7OGeJiTEOfH-cW?!=_OMV979ur)y$#F^j(AXR197taDXstA<-^Bu zwEtyY9<15G3xxy_vV}B|=inCHphuf9V5$kj^3R-hZDFG>fZPsJMwhf;fKM}q8u-}3 zv#A3Q>|ph^Sq#{j#W4ND{fb4*zgf}%gze!OTY(^ZI2m6+i#-etA2_y$y?y|44lqIu zYe3!sMyS{UwwVatIlx`#e;QiA=LqrRp|{~#db;@na!YuQYv-7M(`g%|JHmw`3En!w zhVuc56U^*MpyLFWsscImcc1rnLB9C^+Xem~7FtyQ(fzwT|0V8ET8Qk=R`EX<0UbDZ zf>)jmAnOdf;sSS^Avyd&et2AnlT#q5H-?!u=M01O6`VOk3M90bAw)3z?(y+;^a=6) zCqwWmhXdSPAbR925aR;L5M^J3m0-5|2m}Oza|3v-fy5z7>i=-=(K&^h6KsdJR8=T5OZBTK^Shm~u!J2owpDyJbn`R!&_6pRtF9p-Srx>9K~J}tQ9qzke*49UcGpP<4kn%?;qa|Rx?5f9zH>* zJfro+jxw0}t$!L5cRg0Zy!Gj;S&Wk!$*!|W6mWdujE6gVYPpd0dv`T*;Bf)ZM3X1R zt=%&-Z8tzTB+_8#qizDdb2Dx9DCrq(c%6xBW$4Y}pkYoQH%pE-M$L?)9CIZaHY~>@ z8Ly**{OVC3iX}YyDnYA3CB_Qp=o|d6$q)ArRZ}h{mwwu$;Gn^mFf+I$8LMfgQvQha zSx!wZ#gKDm?N0f-`Y|3EYiX{>!STU0!9`znofz=Ir{00rLV8rOPTu?c`7iiYvO0%d zWm!XSk8UuRX_s+qurB1kfBIqsM>ifjA@^dd4Th~0;;!gCr#Cab3t+%%E z2T|lV$?KS|o0*e6(Y4O`N%1l7&;Cu4gk>7Z2>-h#+!w@trW4`j6TZa9H*h5VcPhs| z)e=dVPd_q#c_1D3?1;1le>O*SdAqcc75i?s)%J&^(DVhxtNLWB*(m)%FX%;474{NO ziRcIhZ7v=h_3qO4#;$AnMTwCpXt`xu{CK4uCpC#dn+P8%8 z?$o4^V=FmQ&?98HMblxc&Bp7-PqCOsE@gg$Nq7XjSxeFN11&d*)(ag(vI3&QJ_zlJ zYQ{)s(Uk9*AoR^$3e-D;n?y)+q;A-HUh6&{L?(@T%1nez(0g~M6 zl9p>`e3a~6p*7KeNSlUZXhZQjjojbFR1XLDv`Pkr$>PeAMGWvL$oklYG(~M<{2GZ2 zl2ScZ%U1{b{Cp*z^f$4JOO>Fw?ml=;f0eyPtfF!;<+YQ`*lUUd^^HrdRn5&4O>@?} z$77}LRoa;?9lH%rFE$$&z3s4Pf%~10q~5e#?9bYtho5Dh?rkczUWDBrDPGizDh%)p z!M5!zva;=^cvl^cmq8iVr-q`9%_Yr!gwGms)@=|-ex+oumN<{MeX~5F-L6lJ?k3At za0ONO&bE1OhNc%J9n4uzAHS=(C-VhGsM1?NUj6Gh_dY3u{X9yA;fe@fY6xkRa=Uc$ z>(=UtM9+%E;J$p|P4IsCij=aPV~0|b;kd$Z$%({o+NxxNhtsH2-6*CnwM<`->2}1I zJvj|h<}cC?@DKFIu-_LP z_H`M4Ue8NZxO&H<*Hj}$Jm}oKB>ncRfe!yS4IQs7lZgbU0^Vvrho#eYE)V@kUhiVp z)#o<|WjVdyt(j~IOmBNSW_4x{y9%ohXG$HQ>Ypqa2cjQ0f06clWKipXCddl zR(C^^NQ}=(YMIJn7!5bMrJ3 zQO#9E#_!3s-ivtq=oyu=U>b)t-byTS&zn0!Ys+39k2|l*YW-RX3Hf=NR4eE5BBkR( z@0;=f)PGrSB0cK*y>Cx!KG`V{Q6D4OHz~Zo_Np^?;aJor&mg6XSF!X$)q{PwE1#y- z_ht<5=qq`f^gX89N}xSa@YxVAIj>vG)fpZbtI+=-w-tiZfL4D0!;%WOa=F9ENi=Xp zscdY;0;j2;uIcmxF~?%m*hUxX1L;>5MkV?}m)MTWRla4He%qmLdIvt+tZvwT9!B6B zxA$c3;#>bt`~!KzrZ@vEo>9IMdJT{5QHHI5bzTMjakAeNC0j-Ez6xEZ2IHfIvPa|x zjTZ0D1E)k)sViI552+GlSij_OIpTM8M2*gAB)H&Rkv|U(yeV;+EhDWTH^1?!wf6lS zxelk&{280FrXPmane}WA`FcUSRuE2Z?K=vAfEfM>~;e1RHP<;j`ZA+aL_r@R1k##!GgIL+^%`jT}OD*AJ zeAd|yvSuF6ygcZn2*C2M&GgewI|~=>%U{vNU^;Tc`B)3tIzku|4JMydL}!Ir3w;i< z^yZMwS<_gq>eX7zQ)UoSe$0~l;aMVLG+$F}J)%Z~%44o#O0X1q{BiNiWW;0MsCpJ*^gd-XJy7R%UQ8Q@7CPii1S)Fvy=#1+)E}+E~$o#nU_yJ zVLwak?rkHAO1;#42P5_qE&58bg+~yv)7W-xZEd|H=2qaSgTTulR?@pSL=AYGu6yAT zFN?-Sy^wkLj_EEpmD|bTr`#P%+S1tH{NBPpPb@@!$i^|4y$Fs;7QPWhzO)l@C2gB7 z+GC18>U6U|C#dK}7xrVQ#__e4osxiU?ep{rycfVt;s0FAJnN$*aMXV^=K8Qor+M3T?rSg8)^KG{bmAl@kuq5c z|Kc}C+Ig`*3c2`=y*_E+s$`42m_H$v96J%w`@_ydcdeE#*La*2@uS9_pW`nFab7TwDxK1@3_wzDEP*KZ(R7stNpBj zejtG@$T`&?KaNPh0U;2>ln4Yl0)Yr{^2cDj1KfN9g}vOpg>MB+Sj<0K{Xl+UuDkC4 zE~cmI8Wl^^rfKrYDDrx;Gii#n{%4j(*Ah#E+Bfq#^9g&D+JSFE6F43><*6xa%CW7n zqi`>D4{Ui)x}-I zB&V!rNeBHmIiBK+pC?mg+D15eW0t5Cep#k+74+}t4X_~YvMu(*C#}Q5E`iM5=PRxztASnPz43IIr=1KH_I|N%_|)W=^{>Y?o>7V?#lH{Z z1eCtrerFU4l_a}7ZQs4>+ub^a;&47p-fhKBcOQRTb$WU$ ziErdt9{zjDYx+LpOl`|&Up40QuNo1Zrio#h9=Wp9Bi~3(OD@F}X1jHD5oK_uU~hfc zFQ?pk9Tli_@jYCN7e`7dF=|TIWQ4O<@bU2`MbDe&a9=W_I%~D>0v2|QU2SQ^@9eGK zot#Eu&R>%ZuSO6xl@vz0_#(;}YE`gvw;X*jt-n1QLp}#G5%JkYdhv~nlG9nAjP*?7 zu_(EWuu+!Fcn$egljwIByf?a}O_TE~CM6D2ihGCTcICBka-qbq+Xd#=_7nU%2yP}M z_zPEC;_cqP?aNVR`a!+#NlW%UA~y2l_LX3kW9N<%ih41MoNz9=9o`k45tE(|*h|dm z+2iCHrF^uykDZF}ZoMw!t^aED&_&y<%Wm>H$P9^JZqCXara*nq_9bi8+7P;a(^~~C z;Q#%X4>vNAfYx$L%te#2Ui}MINU}{PU6O7)t4Q13%jC$Gngqf+0rls5V#WNb`$JKS zX?U~!!_&9)$VPhiK8Ea<4|lETv0@vEACCLu7Ok@pw=Cw#WT!QgXJq_Xs2w-VB#yr? z&1sj=Cfd_x#7M|DNS-wFOpdm`$a27M@fxLPY4fyJaW&PXko)kbt0Kw5Ge6{ZZsX7g zf2O5BT5@`eSH{FHnz-5nu%};24O)NikYZa;zrV@;U73z8Zjr>FdO2t@EUt=GtK@dP zlXsw)Yaf2J!BTwPX}2jf$e^@+`Gk74JUU1%L&NFQ30FBG_XDvCp|K^NM_%%T%)Ilm z9WU>Bs|?YQ;SV{cJ)bHn%`tzFkQe5=#o3Z^-{-eDd-fOMykhOR0r^i#eUVQQ5A+CB zYlEa4Sd;_0f*8g)JsK!YP8=rMvGXk%3L@+@SJ_sypCmaKw|}MavhHo5ux{p$dNNE@ zdoPUnbA`DbjfpgU$vD%L#JNvqq3HInEOI^8msx*)@ztS=K4sBcZ;55hd8X65vr}**t45@JIYcn1 z5RWV{+ibMWev12JK)*6;;LZ}3Dz7Q&@OQNxwIB~~Lf{9v8OB`Yp*Rgbv4r|pj1zU6 z1$D2AE1R;3q=bHP)7_H{dv(+Reg3iVQOE@y*q2tSN9maKT6_S3zuiCk%{H!}z3ZyH zqP{mV8{oOiz^pei{nojWs@67q>SxB>tf3{_)5M0rZHn=dsg31Af&;r0>=Dg!@K=+z z5XZO98VkR^?_yZP(_(s ztqdwlli@!mtwUxa?_cMaQMh1x)-&R==VvFC?Bk^931-_XFY8IzH`ud#FNCSoA;{8F zmUi{n*Lsb8Z8FX21&(~xRa~}eBSbTNS^5J?wnr&G6$Q&vz2cqVkHeX3>f^}VJR}&j za_z|HjmgK?FURZ&A8-e1RJKMlxf0z4l7iDzE%HeSE-0G zyuU%ke~5Ly5O<~BJanqY#alWhtv!!I>!FEFs?PN(BmVsQj6xv#fJGvj9c%4DsSF?V z__evv2G{QBN#z-lmD85_@COF1b1}<4({go5izVaLU={q{XmBh%4z)wo=g+DwE@E7- zB-MLj%E(a+3(w7f%m8Bzspr~ECexn`cz;EKM?aeG0F?> z@JP{c-OP1tU$On7{80~oki=)EQKU_{x=bX(>vQ4$kB8$eQYS^KL&86u8YSJDR@j(v zL%%*V;@KpdP*>Nm3C8WU9@DVd-P%+&NMI4k)!?tZP+k~)!q}@PoI7;O^vfM-KabEY zLiNYq;xEfqiq_4|MpAcgVZUE89P^GEHX5O6pJcOnFH$X>{zClPwWwKa#JUKwrkk)f z)U&@XFU=wR@iZSJgUm}vUv$N$hAMSBG^>g*h54INQt={L%2C}kr_mO|jWV!Bto%u5gT_vF*#l2QS5WB+3StSJ&2a?H6;L{IH+Zsn3dV(+@V< zHxK@Rz*8Y+tai`hr@fxQQ-1l7s37ZM2?earm5MfDqEz9%A}JHGSczAZZI-JJEY3{b z%!l>PFYS@ZY6Y}!OWKkdK#GRdwVBqwPzLJ-_)D?B->CybE49E$b0}nXKehBXI#Io& zO;8!nNVLvCmdv91h3#>kk1@Uiz?NaUnD{aP#z0^x^`KoG$@&_ExDfd6bh(@nj6W+lna1q2P*ICun} zehQ4Irk|cf3ZxXUGHrE^A@Yl>y3BY?Q?(t-j(22@5-}5enGE;ug@yPu-QA|Z6|@y+ z@O+KAsk)+nWJ9SLd0XhJ098kMrPKj)d8n-w_Dc>1sLM&bBPZ$ueSKIO;NvKmL}X#jg9reMz|5 zqcX;%11Gdci0iz6n_n~ZvX7|rqSCDs0S6sTz2IJtAGSrVzLS|M^0?(64ZCl9a~P*{ zV54p_=&P0vP*jp=XuKJF|I`AHo!vDFxk+JIO>83}tLISDkr5HYsXAG6l7((oP^S_T z*kpQ0+L-NkHB*o-^Ak3Uk_L;tE4PmgvC{h<^5p&MIPxp*RYb+j*WwX_?jc87 zspkRi5zrjv`ySa*plDq%^00q3Jd&?yeBhQ|m_3%S zKw#^~oJ7BUz2px=C{V=KCWoYj#F6cEo{?tyODPATyRwd*F!PXKuPVO8W^9tCqT*a< zCbvHwQJbn1oz|k$pViUM;mAib0aWpEo!>}i$|oKq&EJ`^K0I0N>OSNDJbN;+@95E5 zX+zFwXS(L?9?XqvyV$I2`O}Bku%rf?p6Y#0BCXt6GWJqzKdZv0Hb2J8lw)FDeoy!@ zcaI!r$88KM^^LaDJABR?bQz-?xq;}*t5PGZt^4S1`JK>rMl#nEIihyYUHkET--NZj z*b-KJnWAWSfj>+t!eF~-aOi%9yhLh*m zcU6hx6ojnZkjp)qA|YI%&uMlEX0{JGt7^ZmDtw3fk!)7ogFRO6(v{NeFS8mea^FAd z$V^_m30M={s@c-{6P?@;&bwGGxGXe3srb1=tCs!!BAMo|y!-y=QNI|!&i$+}MW&wD zsMpR%NbFkhd96386Wu!}t-VAKMe_gm{|Jz-3K<~N!I~;0kCGuyGa#k`GHMV%k_%we zAbH{q_vW~JCmHBT=4+hmCL1ZELqYfz|7r-?QNC8O!LNp*{qzY)zfaH+R!I1_e3){SU z9a2Rmf#B?sR)ZUDP64i*jI+%N<78;}yx4mjR`lR^$kZot012b(uwNIDQUgw#;Hg5ZiF zL<15H;k-N%1Q&)79T+u)jgWwILr5KmP#6W+g;CUhx#CAwf>QYX|3p5yaa;?5zLS`P6^2Z47$t;IPI3WDhA^N{L1z0x%B#PHz8}vx_~foE5~_ zLn=5&v1p(a2Rrdw6(VB&Ut4YX`tB~3Hq~1DKs)ADY+EU}qi80I*IFKTh@r{MH7{ z|KA`$`ZoH1&gmeq3%>!o2sd;<-x;1#+dCl48ImHHy?}`c4E4nPo6AvW*c=boafa>0 z0#OX4gxg6BAwb06>6e6og+ibl12J9xzqV%oWlD+~`gf!DZ*@}9Lsaztm9EqMmELx8 z6Y_Qla&!Pl2e^ukV9fvEx}W|(n16mA@{HlNAjSo@j{-$5kkTbXL0JB`Dg*v?9OVkj zngP2jyuAOq0x+&{0Op|76)pjP@YNMkM4d^4%Wm*Y%>o!Vn9KxF<_2-0zpB7FM*Kg3 CkWR?} diff --git a/min/gui-settings.min.js b/min/gui-settings.min.js index ce695f2f4..bc8e767a1 100644 --- a/min/gui-settings.min.js +++ b/min/gui-settings.min.js @@ -1 +1 @@ -(()=>{return(e,t)=>{const{ThemeColors:n}=t.import("theme-colors");const{SettingsSearch:i}=t.import("settings-search");const{Validator:s}=t.import("text-validate");let o=[];let c=[];let r=[];function l(e){let t=e.nextElementSibling;const n=[];while(t!==null&&!t.classList.contains("category")){n.push(t);t=t.nextElementSibling}return n}function a(){r.forEach(t=>t.value=e[t.getAttribute("key")]);c.forEach(t=>t.checked=e[t.getAttribute("key")])}function d(){document.querySelector(".gui-settings-mask").addEventListener("click",()=>{document.querySelectorAll(".gui-settings-widgets-box,.gui-settings-box,.gui-settings-mask,.bilibili-evolved-about").forEach(e=>e.classList.remove("opened"))});r.forEach(t=>{t.setAttribute("placeholder",e[t.getAttribute("key")])});document.querySelectorAll(".gui-settings-content ul li.category").forEach(e=>{e.addEventListener("click",e=>{const t=document.querySelector(".gui-settings-search");if(t.value!==""){t.value="";raiseEvent(t,"input")}e.currentTarget.classList.toggle("folded");l(e.currentTarget).forEach(e=>e.classList.toggle("folded"))})});document.querySelectorAll(".gui-settings-dropdown>input").forEach(e=>{e.addEventListener("click",e=>{e.currentTarget.parentElement.classList.toggle("opened")})})}function u(){c.forEach(t=>{t.addEventListener("change",()=>{const n=t.getAttribute("key");const i=t.checked;e[n]=i})});r.forEach(t=>{t.addEventListener("change",()=>{const n=t.getAttribute("key");const i=s.getValidator(n).validate(t.value);e[n]=i;t.value=i})})}function g(){const e=o.map(e=>[e.getAttribute("dependencies").split(" ").map(e=>o.find(t=>t.getAttribute("key")===e)),e]);const t=e=>e.nodeName.toUpperCase()==="LI"?e:t(e.parentElement);e.forEach(([e,n])=>{if(e[0]===undefined){return}const i=()=>{if(e.every(e=>e.checked)){t(n).classList.remove("disabled")}else{t(n).classList.add("disabled")}};e.forEach(e=>e.addEventListener("change",i));i()})}function f(){if(typeof offlineData!=="undefined"){}}function p(){if(!CSS.supports("backdrop-filter","blur(24px)")&&!CSS.supports("-webkit-backdrop-filter","blur(24px)")){o.find(e=>e.getAttribute("key")==="blurVideoControl").disabled=true;e.blurVideoControl=false}if(window.devicePixelRatio===1){o.find(e=>e.getAttribute("key")==="harunaScale").disabled=true;o.find(e=>e.getAttribute("key")==="imageResolution").disabled=true;e.harunaScale=false;e.imageResolution=false}}function b(){for(const[e,t]of Object.entries(Resource.displayNames)){const n=o.find(t=>t.getAttribute("key")===e);if(!n){continue}switch(n.type){case"checkbox":n.nextElementSibling.nextElementSibling.innerHTML=t;break;case"text":const e=n.parentElement;if(e.classList.contains("gui-settings-textbox-container")){n.previousElementSibling.innerHTML=t}else if(e.classList.contains("gui-settings-dropdown")){e.previousElementSibling.innerHTML=t}break;default:break}}}(async()=>{t.applyStyle("guiSettingsStyle");t.applyImportantStyle("iconsStyle");document.body.classList.add("round-corner");const e=document.body&&unsafeWindow.parent.window!==unsafeWindow;if(e){document.querySelector(".gui-settings-icon-panel").style.display="none"}const s=t.data.guiSettingsHtml.text;document.body.insertAdjacentHTML("beforeend",s);const{style:l}=await t.importAsync("mdi");if(!l){document.body.insertAdjacentHTML("afterbegin",``)}t.applyDropdownOptions();const m=document.querySelector(".widgets-container");const y=m.querySelector(".empty-tip");Observer.childList(m,()=>{if(m.childElementCount<=1){y.classList.add("show")}else{y.classList.remove("show")}});(new n).setupDom();const h=document.querySelectorAll(".gui-settings-widgets-box,.gui-settings-box");const E=document.querySelector(".gui-settings-icon-panel");E.addEventListener("mouseover",()=>{raiseEvent(E,"be:load");h.forEach(e=>e.classList.add("loaded"));o=[...document.querySelectorAll("input[key]")];c=o.filter(e=>e.type==="checkbox");r=o.filter(e=>e.type==="text"&&!e.parentElement.classList.contains("gui-settings-dropdown"));d();f();a();g();u();p();b();new i},{once:true})})()}})(); \ No newline at end of file +(()=>{return(e,t)=>{const{ThemeColors:n}=t.import("theme-colors");const{SettingsSearch:i}=t.import("settings-search");const{Validator:s}=t.import("text-validate");let o=[];let r=[];let c=[];function l(e){let t=e.nextElementSibling;const n=[];while(t!==null&&!t.classList.contains("category")){n.push(t);t=t.nextElementSibling}return n}function a(){c.forEach(t=>t.value=e[t.getAttribute("key")]);r.forEach(t=>t.checked=e[t.getAttribute("key")])}function d(){document.querySelector(".gui-settings-mask").addEventListener("click",()=>{document.querySelectorAll(".gui-settings-widgets-box,.gui-settings-box,.gui-settings-mask,.bilibili-evolved-about").forEach(e=>e.classList.remove("opened"))});c.forEach(t=>{t.setAttribute("placeholder",e[t.getAttribute("key")])});document.querySelectorAll(".gui-settings-content ul li.category").forEach(e=>{e.addEventListener("click",e=>{const t=document.querySelector(".gui-settings-search");if(t.value!==""){t.value="";raiseEvent(t,"input")}e.currentTarget.classList.toggle("folded");l(e.currentTarget).forEach(e=>e.classList.toggle("folded"))})});document.querySelectorAll(".gui-settings-dropdown>input").forEach(e=>{e.addEventListener("click",e=>{e.currentTarget.parentElement.classList.toggle("opened")})})}function u(){r.forEach(t=>{t.addEventListener("change",()=>{const n=t.getAttribute("key");const i=t.checked;e[n]=i})});c.forEach(t=>{t.addEventListener("change",()=>{const n=t.getAttribute("key");const i=s.getValidator(n).validate(t.value);e[n]=i;t.value=i})})}function g(){const e=o.map(e=>[e.getAttribute("dependencies").split(" ").map(e=>o.find(t=>t.getAttribute("key")===e)),e]);const t=e=>e.nodeName.toUpperCase()==="LI"?e:t(e.parentElement);e.forEach(([e,n])=>{if(e[0]===undefined){return}const i=()=>{if(e.every(e=>e.checked)){t(n).classList.remove("disabled")}else{t(n).classList.add("disabled")}};e.forEach(e=>e.addEventListener("change",i));i()})}function f(){if(typeof offlineData!=="undefined"){}}function b(){if(!CSS.supports("backdrop-filter","blur(24px)")&&!CSS.supports("-webkit-backdrop-filter","blur(24px)")){o.find(e=>e.getAttribute("key")==="blurVideoControl").disabled=true;e.blurVideoControl=false}if(window.devicePixelRatio===1){o.find(e=>e.getAttribute("key")==="harunaScale").disabled=true;o.find(e=>e.getAttribute("key")==="imageResolution").disabled=true;e.harunaScale=false;e.imageResolution=false}}function p(){for(const[e,t]of Object.entries(Resource.displayNames)){const n=o.find(t=>t.getAttribute("key")===e);if(!n){continue}switch(n.type){case"checkbox":n.nextElementSibling.nextElementSibling.innerHTML=t;break;case"text":const e=n.parentElement;if(e.classList.contains("gui-settings-textbox-container")){n.previousElementSibling.innerHTML=t}else if(e.classList.contains("gui-settings-dropdown")){e.previousElementSibling.innerHTML=t}break;default:break}}}(async()=>{t.applyStyle("guiSettingsStyle");t.applyImportantStyle("iconsStyle");document.body.classList.add("round-corner");const e=document.body&&unsafeWindow.parent.window!==unsafeWindow;if(e){document.querySelector(".gui-settings-icon-panel").style.display="none"}const s=t.data.guiSettingsHtml.text;document.body.insertAdjacentHTML("beforeend",s);const{style:l}=await t.importAsync("mdi");if(!l){document.body.insertAdjacentHTML("afterbegin",``)}t.applyDropdownOptions();const m=document.querySelector(".widgets-container");const y=m.querySelector(".empty-tip");Observer.childList(m,()=>{if(m.childElementCount<=1){y.classList.add("show")}else{y.classList.remove("show")}});(new n).setupDom();const h=document.querySelectorAll(".gui-settings-widgets-box,.gui-settings-box");const E=document.querySelector(".gui-settings-icon-panel");E.addEventListener("mouseover",()=>{raiseEvent(E,"be:load");raiseEvent(dq(".bilibili-evolved-about"),"be:about-load");h.forEach(e=>e.classList.add("loaded"));o=[...document.querySelectorAll("input[key]")];r=o.filter(e=>e.type==="checkbox");c=o.filter(e=>e.type==="text"&&!e.parentElement.classList.contains("gui-settings-dropdown"));d();f();a();g();u();b();p();new i},{once:true})})()}})(); \ No newline at end of file diff --git a/min/screenshot.min.js b/min/screenshot.min.js index 2bc209032..b381187eb 100644 --- a/min/screenshot.min.js +++ b/min/screenshot.min.js @@ -1 +1 @@ -(()=>{return(e,t)=>{const{getFriendlyTitle:i}=t.import("title");const n=document.createElement("canvas");class s{constructor(e,t,i=false){this.url="";this.timeStamp=(new Date).getTime();this.withDanmaku=false;this.video=e;this.videoTime=t;this.withDanmaku=i;this.createUrl()}async createUrl(){n.width=this.video.videoWidth;n.height=this.video.videoHeight;const e=n.getContext("2d");if(e===null){logError("视频截图失败: canvas 未创建或创建失败.");return}e.drawImage(this.video,0,0);if(this.withDanmaku){const t=dq("canvas.bilibili-player-video-danmaku");if(t!==null){e.drawImage(t,0,0,this.video.videoWidth,this.video.videoHeight)}}n.toBlob(e=>{if(e===null){logError("视频截图失败: 创建 blob 失败.");return}this.blob=e;this.url=URL.createObjectURL(e)},"image/png")}get filename(){return`${i()} @${this.time.replace(/:/g,"-")} ${this.timeStamp.toString()}.png`}get id(){return this.videoTime.toString()+this.timeStamp.toString()}get time(){const e=Math.trunc(this.videoTime/3600).toString();const t=Math.trunc(this.videoTime/60).toString();const i=(this.videoTime%60).toFixed(2);if(e==="0"){return`${t.padStart(2,"0")}:${i.padStart(5,"0")}`}return`${e}:${t.padStart(2,"0")}:${i.padStart(5,"0")}`}revoke(){URL.revokeObjectURL(this.url)}}const o=(e,t=false)=>{const i=e.currentTime;return new s(e,i,t)};t.applyStyle("videoScreenshotStyle");document.body.insertAdjacentHTML("beforeend",`\n
\n \n \n \n
\n \n \n \n
\n
\n`);Vue.component("video-screenshot",{props:{objectUrl:String,filename:String,time:String},template:`\n
\n \n
\n \n \n \n {{time}}\n
\n
\n
\n
\n `,methods:{discard(){this.$emit("discard")},save(){this.$el.querySelector(".link").click();this.discard()}}});const r=new Vue({el:".video-screenshot-container",data:{screenshots:[],batchFilename:i()+".zip"},methods:{discard(e){this.screenshots.splice(this.screenshots.indexOf(e),1);e.revoke()},async saveAll(){const e=new JSZip;this.screenshots.forEach(t=>{e.file(t.filename,t.blob,{date:new Date(t.timeStamp)})});const t=await e.generateAsync({type:"blob"});const i=this.$el.querySelector(".batch-link");i.href=URL.createObjectURL(t);i.click();URL.revokeObjectURL(i.href);i.href="";this.discardAll()},discardAll(){this.screenshots.forEach(e=>e.revoke());this.screenshots=[]}},computed:{showBatch(){return this.screenshots.length>=2}}});const c=`\n
\n \n
`;Observer.videoChange(async()=>{const t=await SpinQuery.select("#bofqi video");if(t===null){return}const i=await SpinQuery.select(".bilibili-player-video-time");if(i===null||document.querySelector(".video-take-screenshot")){return}i.insertAdjacentHTML("afterend",c);const n=document.querySelector(".video-take-screenshot");n.addEventListener("click",async e=>{const t=await SpinQuery.select("#bofqi video");const i=o(t,e.shiftKey);r.screenshots.unshift(i)});document.addEventListener("keydown",e=>{if(document.activeElement&&["input","textarea"].includes(document.activeElement.nodeName.toLowerCase())){return}if(e.ctrlKey&&e.altKey&&e.key.toLowerCase()==="c"){e.stopPropagation();e.preventDefault();n.click()}});if(e.touchVideoPlayer){document.querySelectorAll(".video-take-screenshot").forEach(e=>e.classList.add("touch"))}});return{export:{takeScreenshot:o,screenShotsList:r},unload:()=>document.querySelectorAll(".bilibili-player-video-control-bottom .video-take-screenshot,.video-screenshot-container").forEach(e=>e.setAttribute("style","display: none !important")),reload:()=>document.querySelectorAll(".bilibili-player-video-control-bottom .video-take-screenshot,.video-screenshot-container").forEach(e=>e.setAttribute("style","display: flex !important"))}}})(); \ No newline at end of file +(()=>{return(e,t)=>{const{getFriendlyTitle:i}=t.import("title");const n=document.createElement("canvas");class s{constructor(e,t,i=false){this.url="";this.timeStamp=(new Date).getTime();this.withDanmaku=false;this.video=e;this.videoTime=t;this.withDanmaku=i;this.createUrl()}async createUrl(){n.width=this.video.videoWidth;n.height=this.video.videoHeight;const e=n.getContext("2d");if(e===null){logError("视频截图失败: canvas 未创建或创建失败.");return}e.drawImage(this.video,0,0);if(this.withDanmaku){const t=dq("canvas.bilibili-player-video-danmaku");if(t!==null){e.drawImage(t,0,0,this.video.videoWidth,this.video.videoHeight)}}n.toBlob(e=>{if(e===null){logError("视频截图失败: 创建 blob 失败.");return}this.blob=e;this.url=URL.createObjectURL(e)},"image/png")}get filename(){return`${i()} @${this.time.replace(/:/g,"-")} ${this.timeStamp.toString()}.png`}get id(){return this.videoTime.toString()+this.timeStamp.toString()}get time(){const e=Math.trunc(this.videoTime/3600).toString();const t=Math.trunc(this.videoTime/60).toString();const i=(this.videoTime%60).toFixed(2);if(e==="0"){return`${t.padStart(2,"0")}:${i.padStart(5,"0")}`}return`${e}:${t.padStart(2,"0")}:${i.padStart(5,"0")}`}revoke(){URL.revokeObjectURL(this.url)}}const o=(e,t=false)=>{const i=e.currentTime;return new s(e,i,t)};let r={screenshots:[]};Observer.videoChange(async()=>{if(!dq(".video-screenshot-container")){t.applyStyle("videoScreenshotStyle");document.body.insertAdjacentHTML("beforeend",`\n
\n \n \n \n
\n \n \n \n
\n
\n `);Vue.component("video-screenshot",{props:{objectUrl:String,filename:String,time:String},template:`\n
\n \n
\n \n \n \n {{time}}\n
\n
\n
\n
\n `,methods:{discard(){this.$emit("discard")},save(){this.$el.querySelector(".link").click();this.discard()}}});r=new Vue({el:".video-screenshot-container",data:{screenshots:[],batchFilename:i()+".zip"},methods:{discard(e){this.screenshots.splice(this.screenshots.indexOf(e),1);e.revoke()},async saveAll(){const e=new JSZip;this.screenshots.forEach(t=>{e.file(t.filename,t.blob,{date:new Date(t.timeStamp)})});const t=await e.generateAsync({type:"blob"});const i=this.$el.querySelector(".batch-link");i.href=URL.createObjectURL(t);i.click();URL.revokeObjectURL(i.href);i.href="";this.discardAll()},discardAll(){this.screenshots.forEach(e=>e.revoke());this.screenshots=[]}},computed:{showBatch(){return this.screenshots.length>=2}}})}const n=await SpinQuery.select("#bofqi video");if(n===null){return}const s=await SpinQuery.select(".bilibili-player-video-time");if(s===null||document.querySelector(".video-take-screenshot")){return}const c=`\n
\n \n
`;s.insertAdjacentHTML("afterend",c);const a=document.querySelector(".video-take-screenshot");a.addEventListener("click",async e=>{const t=await SpinQuery.select("#bofqi video");const i=o(t,e.shiftKey);r.screenshots.unshift(i)});document.addEventListener("keydown",e=>{if(document.activeElement&&["input","textarea"].includes(document.activeElement.nodeName.toLowerCase())){return}if(e.ctrlKey&&e.altKey&&e.key.toLowerCase()==="c"){e.stopPropagation();e.preventDefault();a.click()}});if(e.touchVideoPlayer){document.querySelectorAll(".video-take-screenshot").forEach(e=>e.classList.add("touch"))}});return{export:{takeScreenshot:o,screenShotsList:r},unload:()=>document.querySelectorAll(".bilibili-player-video-control-bottom .video-take-screenshot,.video-screenshot-container").forEach(e=>e.setAttribute("style","display: none !important")),reload:()=>document.querySelectorAll(".bilibili-player-video-control-bottom .video-take-screenshot,.video-screenshot-container").forEach(e=>e.setAttribute("style","display: flex !important"))}}})(); \ No newline at end of file diff --git a/min/settings-side-bar.min.js b/min/settings-side-bar.min.js index 18d52985d..51aca3c72 100644 --- a/min/settings-side-bar.min.js +++ b/min/settings-side-bar.min.js @@ -1 +1 @@ -(()=>{return(e,t)=>{if(document.querySelector(".gui-settings-icon-panel")===null){document.body.insertAdjacentHTML("beforeend",`\n
\n
\n \n
\n
\n \n
\n
`);dq(".gui-settings").addEventListener("click",e=>{if(e.shiftKey===false){dqa(".gui-settings-box,.gui-settings-mask").forEach(e=>e.classList.add("opened"))}else{dqa(".bilibili-evolved-about,.gui-settings-mask").forEach(e=>e.classList.add("opened"));raiseEvent(document.querySelector(".bilibili-evolved-about"),"be:about-load")}});dq(".gui-settings-widgets").addEventListener("click",e=>{if(e.shiftKey===false){dqa(".gui-settings-widgets-box,.gui-settings-mask").forEach(e=>e.classList.add("opened"))}else{debugger}});const e=dq(".gui-settings-icon-panel .gui-settings-widgets>i");const t=dq(".gui-settings-icon-panel .gui-settings>i");let i=false;let s=false;const n=()=>{t.classList.remove("icon-info");t.classList.add("icon-settings");t.parentElement.title="设置";e.classList.remove("icon-time");e.classList.add("icon-widgets");e.parentElement.title="附加功能";i=false;s=false};const d=()=>{t.classList.remove("icon-settings");t.classList.add("icon-info");t.parentElement.title="关于";e.classList.remove("icon-widgets");e.classList.add("icon-time");e.parentElement.title="「ザ・ワールド」";if(!i){document.body.addEventListener("keyup",n,{once:true});i=true}if(!s){window.addEventListener("blur",n,{once:true});s=true}};document.body.addEventListener("keydown",e=>{if(document.activeElement&&["input","textarea"].includes(document.activeElement.nodeName.toLowerCase())){return}if(e.shiftKey===true){d()}})}const i=(t=e.sideBarOffset)=>{document.body.style.setProperty("--side-bar-offset",t+"%")};addSettingsListener("sideBarOffset",i);i()}})(); \ No newline at end of file +(()=>{return(e,t)=>{if(document.querySelector(".gui-settings-icon-panel")===null){document.body.insertAdjacentHTML("beforeend",`\n
\n
\n \n
\n
\n \n
\n
`);dq(".gui-settings").addEventListener("click",e=>{if(e.shiftKey===false){dqa(".gui-settings-box,.gui-settings-mask").forEach(e=>e.classList.add("opened"))}else{dqa(".bilibili-evolved-about,.gui-settings-mask").forEach(e=>e.classList.add("opened"))}});dq(".gui-settings-widgets").addEventListener("click",e=>{if(e.shiftKey===false){dqa(".gui-settings-widgets-box,.gui-settings-mask").forEach(e=>e.classList.add("opened"))}else{debugger}});const e=dq(".gui-settings-icon-panel .gui-settings-widgets>i");const t=dq(".gui-settings-icon-panel .gui-settings>i");let s=false;let i=false;const n=()=>{t.classList.remove("icon-info");t.classList.add("icon-settings");t.parentElement.title="设置";e.classList.remove("icon-time");e.classList.add("icon-widgets");e.parentElement.title="附加功能";s=false;i=false};const d=()=>{t.classList.remove("icon-settings");t.classList.add("icon-info");t.parentElement.title="关于";e.classList.remove("icon-widgets");e.classList.add("icon-time");e.parentElement.title="「ザ・ワールド」";if(!s){document.body.addEventListener("keyup",n,{once:true});s=true}if(!i){window.addEventListener("blur",n,{once:true});i=true}};document.body.addEventListener("keydown",e=>{if(document.activeElement&&["input","textarea"].includes(document.activeElement.nodeName.toLowerCase())){return}if(e.shiftKey===true){d()}})}const s=(t=e.sideBarOffset)=>{document.body.style.setProperty("--side-bar-offset",t+"%")};addSettingsListener("sideBarOffset",s);s()}})(); \ No newline at end of file diff --git a/min/toast.min.js b/min/toast.min.js index d07f52b6f..981f8666f 100644 --- a/min/toast.min.js +++ b/min/toast.min.js @@ -1 +1 @@ -(()=>{return(t,s)=>{var e;(function(t){t["Default"]="default";t["Info"]="info";t["Success"]="success";t["Error"]="error"})(e||(e={}));class a{constructor(t="",s="",a=e.Default){this.creationTime=new Date;this.type=a;this.message=t;this.title=s;this.duration=3e3}show(){r.cards.splice(0,0,this);if(this.duration!==undefined){setTimeout(()=>this.dismiss(),this.duration)}}dismiss(){if(r.cards.includes(this)){r.cards.splice(r.cards.indexOf(this),1)}}get element(){return dq(`.toast-card[key='${this.key}']`)}get key(){return this.creationTime.toISOString()}static get container(){return document.querySelector(".toast-card-container")}static createToastContainer(){if(!document.querySelector(".toast-card-container")){document.body.insertAdjacentHTML("beforeend",`\n \n \n `)}}static internalShow(t,s,e,r){const n=new a(t,s,r);n.duration=e;n.show();return n}static show(t,s,a){return this.internalShow(t,s,a,e.Default)}static info(t,s,a){return this.internalShow(t,s,a,e.Info)}static success(t,s,a){return this.internalShow(t,s,a,e.Success)}static error(t,s,a){return this.internalShow(t,s,a,e.Error)}}s.applyStyle("toastStyle");Vue.component("toast-card",{props:["card"],template:`\n
\n
\n
\n

{{card.title}}

\n
\n \n \n \n
\n
\n
\n
\n `});a.createToastContainer();const r=new Vue({el:".toast-card-container",data:{cards:[]}});return{export:a}}})(); \ No newline at end of file +(()=>{return(t,s)=>{var a;(function(t){t["Default"]="default";t["Info"]="info";t["Success"]="success";t["Error"]="error"})(a||(a={}));let e;class r{constructor(t="",s="",e=a.Default){this.creationTime=new Date;this.type=e;this.message=t;this.title=s;this.duration=3e3}show(){r.containerVM.cards.splice(0,0,this);if(this.duration!==undefined){setTimeout(()=>this.dismiss(),this.duration)}}dismiss(){if(r.containerVM.cards.includes(this)){r.containerVM.cards.splice(r.containerVM.cards.indexOf(this),1)}}get element(){return dq(`.toast-card[key='${this.key}']`)}get key(){return this.creationTime.toISOString()}static get containerVM(){if(!e){r.createToastContainer()}return e}static createToastContainer(){if(!document.querySelector(".toast-card-container")){document.body.insertAdjacentHTML("beforeend",`\n \n \n `);e=new Vue({el:".toast-card-container",components:{"toast-card":{props:["card"],template:`\n
\n
\n
\n

{{card.title}}

\n
\n \n \n \n
\n
\n
\n
\n `}},data:{cards:[]}})}}static internalShow(t,s,a,e){const n=new r(t,s,e);n.duration=a;n.show();return n}static show(t,s,e){return this.internalShow(t,s,e,a.Default)}static info(t,s,e){return this.internalShow(t,s,e,a.Info)}static success(t,s,e){return this.internalShow(t,s,e,a.Success)}static error(t,s,e){return this.internalShow(t,s,e,a.Error)}}s.applyStyle("toastStyle");return{export:r}}})(); \ No newline at end of file diff --git a/src/utils/about/about.js b/src/utils/about/about.js index 4c3d3443a..cc8bdf506 100644 --- a/src/utils/about/about.js +++ b/src/utils/about/about.js @@ -1,114 +1,114 @@ (async () => { 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 clientTypeMatch = GM_info.script.name.match(/Bilibili Evolved \((.*)\)/) - const clientType = clientTypeMatch ? clientTypeMatch[1] : 'Stable' - new Vue({ - el: '.bilibili-evolved-about', - data: { - version: settings.currentVersion, - clientType, - logoImage: null, - logoImageDark: null, - branch: null, - 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(userSorter), - fetching: true, - participants: [], - websites: [ - { - name: 'GitHub', - link: 'https://github.com/the1812/Bilibili-Evolved/' - }, - { - name: 'Greasy Fork', - link: 'https://greasyfork.org/zh-CN/scripts/373563-bilibili-evolved' - } - ], - components: [ - { - name: 'Vue.js', - link: 'https://cn.vuejs.org/index.html' - }, - { - name: 'JSZip', - link: 'https://stuk.github.io/jszip/' - }, - { - name: 'jQuery', - link: 'http://jquery.com/' - }, - { - name: 'debounce', - link: 'https://github.com/component/debounce/' - }, - { - name: 'Slip.js', - link: 'https://github.com/kornelski/slip' - }, - { - name: 'MDI', - link: 'https://materialdesignicons.com' - } - ] - }, - mounted () { - document.querySelector('.bilibili-evolved-about').addEventListener('be:about-load', () => { - this.init() - }, { once: true }) - }, - methods: { - async getLogos() { - this.logoImage = await Ajax.getText(`https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/images/bilibili-evolved-wide.svg`) - this.logoImageDark = await Ajax.getText(`https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/images/bilibili-evolved-wide-dark.svg`) + document.querySelector('.bilibili-evolved-about').addEventListener('be:about-load', () => { + const nameSorter = (a, b) => a.charCodeAt(0) - b.charCodeAt(0) + const userSorter = (a, b) => nameSorter(a.name, b.name) + const clientTypeMatch = GM_info.script.name.match(/Bilibili Evolved \((.*)\)/) + const clientType = clientTypeMatch ? clientTypeMatch[1] : 'Stable' + new Vue({ + el: '.bilibili-evolved-about', + data: { + version: settings.currentVersion, + clientType, + logoImage: null, + logoImageDark: null, + branch: null, + 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(userSorter), + fetching: true, + participants: [], + websites: [ + { + name: 'GitHub', + link: 'https://github.com/the1812/Bilibili-Evolved/' + }, + { + name: 'Greasy Fork', + link: 'https://greasyfork.org/zh-CN/scripts/373563-bilibili-evolved' + } + ], + components: [ + { + name: 'Vue.js', + link: 'https://cn.vuejs.org/index.html' + }, + { + name: 'JSZip', + link: 'https://stuk.github.io/jszip/' + }, + { + name: 'jQuery', + link: 'http://jquery.com/' + }, + { + name: 'debounce', + link: 'https://github.com/component/debounce/' + }, + { + name: 'Slip.js', + link: 'https://github.com/kornelski/slip' + }, + { + name: 'MDI', + link: 'https://materialdesignicons.com' + } + ] }, - async init () { - this.branch = /Preview|Local/.test(clientType) ? 'preview' : 'master' - this.getLogos() - 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}`) - .catch(() => { - issues = [{ - name: '电波无法到达(´・_・`)', - link: null - }] - }) - page++ - for (const issue of issues) { - allParticipants.add(issue.user.login) + mounted () { + this.init() + }, + methods: { + async getLogos () { + this.logoImage = await Ajax.getText(`https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/images/bilibili-evolved-wide.svg`) + this.logoImageDark = await Ajax.getText(`https://raw.githubusercontent.com/the1812/Bilibili-Evolved/preview/images/bilibili-evolved-wide-dark.svg`) + }, + async init () { + this.branch = /Preview|Local/.test(clientType) ? 'preview' : 'master' + this.getLogos() + 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}`) + .catch(() => { + issues = [{ + name: '电波无法到达(´・_・`)', + link: null + }] + }) + 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) + this.fetching = false } - 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) - this.fetching = false } - } - }) + }) + }, { once: true }) })() diff --git a/src/utils/gui-settings/gui-settings.js b/src/utils/gui-settings/gui-settings.js index 3ae824da2..4261c128b 100644 --- a/src/utils/gui-settings/gui-settings.js +++ b/src/utils/gui-settings/gui-settings.js @@ -157,6 +157,7 @@ function setDisplayNames () { const iconPanel = document.querySelector('.gui-settings-icon-panel') iconPanel.addEventListener('mouseover', () => { raiseEvent(iconPanel, 'be:load') + raiseEvent(dq('.bilibili-evolved-about'), 'be:about-load') boxes.forEach(it => it.classList.add('loaded')) inputs = [...document.querySelectorAll('input[key]')] checkBoxes = inputs.filter(it => it.type === 'checkbox') diff --git a/src/utils/gui-settings/settings-side-bar.js b/src/utils/gui-settings/settings-side-bar.js index d9366dfac..676ca2f87 100644 --- a/src/utils/gui-settings/settings-side-bar.js +++ b/src/utils/gui-settings/settings-side-bar.js @@ -13,7 +13,7 @@ if (document.querySelector('.gui-settings-icon-panel') === null) { dqa('.gui-settings-box,.gui-settings-mask').forEach(it => it.classList.add('opened')) } else { dqa('.bilibili-evolved-about,.gui-settings-mask').forEach(it => it.classList.add('opened')) - raiseEvent(document.querySelector('.bilibili-evolved-about'), 'be:about-load') + // raiseEvent(document.querySelector('.bilibili-evolved-about'), 'be:about-load') } }) dq('.gui-settings-widgets').addEventListener('click', e => { diff --git a/src/utils/toast/toast.ts b/src/utils/toast/toast.ts index d12b5c515..f77bccd18 100644 --- a/src/utils/toast/toast.ts +++ b/src/utils/toast/toast.ts @@ -4,6 +4,7 @@ export enum ToastType { Success = 'success', Error = 'error', } +let container: { cards: Toast[] } export class Toast { type: ToastType message: string @@ -17,14 +18,14 @@ export class Toast { this.duration = 3000 } show() { - container.cards.splice(0, 0, this) + Toast.containerVM.cards.splice(0, 0, this) if (this.duration !== undefined) { setTimeout(() => this.dismiss(), this.duration) } } dismiss() { - if (container.cards.includes(this)) { - container.cards.splice(container.cards.indexOf(this), 1) + if (Toast.containerVM.cards.includes(this)) { + Toast.containerVM.cards.splice(Toast.containerVM.cards.indexOf(this), 1) } } get element() { @@ -33,8 +34,11 @@ export class Toast { get key() { return this.creationTime.toISOString() } - static get container() { - return document.querySelector('.toast-card-container') + static get containerVM() { + if (!container) { + Toast.createToastContainer() + } + return container } static createToastContainer() { if (!document.querySelector('.toast-card-container')) { @@ -42,6 +46,32 @@ export class Toast { `) + container = new Vue({ + el: '.toast-card-container', + components: { + 'toast-card': { + props: ['card'], + template: /*html*/` +
+
+
+

{{card.title}}

+
+ + + +
+
+
+
+ `, + } + }, + data: { + cards: [] as Toast[] + }, + }) } } private static internalShow(message: string, title: string, duration: number | undefined, type: ToastType) { @@ -65,32 +95,6 @@ export class Toast { } resources.applyStyle('toastStyle') -Vue.component('toast-card', { - props: ['card'], - template: /*html*/` -
-
-
-

{{card.title}}

-
- - - -
-
-
-
- `, -}) -Toast.createToastContainer() -const container = new Vue({ - el: '.toast-card-container', - data: { - cards: [] as Toast[] - }, -}) - export default { export: Toast } diff --git a/src/video/screenshot/screenshot.ts b/src/video/screenshot/screenshot.ts index 46424625e..d15a4b215 100644 --- a/src/video/screenshot/screenshot.ts +++ b/src/video/screenshot/screenshot.ts @@ -1,5 +1,4 @@ -import { getFriendlyTitle } from '../title'; - +import { getFriendlyTitle } from '../title' const canvas = document.createElement("canvas"); class Screenshot { video: HTMLVideoElement; @@ -62,96 +61,96 @@ export const takeScreenshot = (video: HTMLVideoElement, withDanmaku = false) => const time = video.currentTime return new Screenshot(video, time, withDanmaku) } -resources.applyStyle("videoScreenshotStyle"); -document.body.insertAdjacentHTML("beforeend", /*html*/` -
- - - -
- - - -
-
-`); -Vue.component("video-screenshot", { - props: { - objectUrl: String, - filename: String, - time: String, - }, - template: /*html*/` -
- -
- - - - {{time}} -
-
-
-
- `, - methods: { - discard() { - this.$emit("discard"); - }, - save() { - this.$el.querySelector(".link").click(); - this.discard(); - }, - }, -}); -const screenShotsList = new Vue({ - el: ".video-screenshot-container", - data: { - screenshots: [] as Screenshot[], - batchFilename: getFriendlyTitle() + ".zip", - }, - methods: { - discard(screenshot: Screenshot) { - this.screenshots.splice(this.screenshots.indexOf(screenshot), 1); - screenshot.revoke(); - }, - async saveAll() { - const zip = new JSZip(); - this.screenshots.forEach((it: Screenshot) => { - zip.file(it.filename, it.blob, { - date: new Date(it.timeStamp), - }); - }); - const blob = await zip.generateAsync({ type: "blob" }); - const link = this.$el.querySelector(".batch-link"); - link.href = URL.createObjectURL(blob); - link.click(); - URL.revokeObjectURL(link.href); - link.href = ""; - this.discardAll(); - }, - discardAll() { - this.screenshots.forEach((it: Screenshot) => it.revoke()); - this.screenshots = []; - }, - }, - computed: { - showBatch() { - return this.screenshots.length >= 2; - }, - }, -}); -const buttonHtml = /*html*/` -
- -
`; +let screenShotsList: { screenshots: Screenshot[] } = { screenshots: [] } Observer.videoChange(async () => { + if (!dq('.video-screenshot-container')) { + resources.applyStyle("videoScreenshotStyle"); + document.body.insertAdjacentHTML("beforeend", /*html*/` +
+ + + +
+ + + +
+
+ `); + Vue.component("video-screenshot", { + props: { + objectUrl: String, + filename: String, + time: String, + }, + template: /*html*/` +
+ +
+ + + + {{time}} +
+
+
+
+ `, + methods: { + discard() { + this.$emit("discard"); + }, + save() { + this.$el.querySelector(".link").click(); + this.discard(); + }, + }, + }); + screenShotsList = new Vue({ + el: ".video-screenshot-container", + data: { + screenshots: [] as Screenshot[], + batchFilename: getFriendlyTitle() + ".zip", + }, + methods: { + discard(screenshot: Screenshot) { + this.screenshots.splice(this.screenshots.indexOf(screenshot), 1); + screenshot.revoke(); + }, + async saveAll() { + const zip = new JSZip(); + this.screenshots.forEach((it: Screenshot) => { + zip.file(it.filename, it.blob, { + date: new Date(it.timeStamp), + }); + }); + const blob = await zip.generateAsync({ type: "blob" }); + const link = this.$el.querySelector(".batch-link"); + link.href = URL.createObjectURL(blob); + link.click(); + URL.revokeObjectURL(link.href); + link.href = ""; + this.discardAll(); + }, + discardAll() { + this.screenshots.forEach((it: Screenshot) => it.revoke()); + this.screenshots = []; + }, + }, + computed: { + showBatch() { + return this.screenshots.length >= 2; + }, + }, + }); + } + const video = await SpinQuery.select("#bofqi video") as HTMLVideoElement; if (video === null) { return; @@ -160,6 +159,11 @@ Observer.videoChange(async () => { if (time === null || document.querySelector(".video-take-screenshot")) { return; } + + const buttonHtml = /*html*/` +
+ +
`; time.insertAdjacentHTML("afterend", buttonHtml); const screenshotButton = document.querySelector(".video-take-screenshot") as HTMLElement; screenshotButton.addEventListener("click", async e => {