mirror of
https://github.com/the1812/Bilibili-Evolved.git
synced 2025-11-04 21:22:45 +08:00
commit
0162f85d3e
1
.github/pull_request_template.md
vendored
Normal file
1
.github/pull_request_template.md
vendored
Normal file
@ -0,0 +1 @@
|
||||
<!-- 可以参考下代码贡献指南: https://github.com/the1812/Bilibili-Evolved/blob/preview/CONTRIBUTING.md -->
|
||||
76
CODE_OF_CONDUCT.md
Normal file
76
CODE_OF_CONDUCT.md
Normal file
@ -0,0 +1,76 @@
|
||||
# Contributor Covenant Code of Conduct
|
||||
|
||||
## Our Pledge
|
||||
|
||||
In the interest of fostering an open and welcoming environment, we as
|
||||
contributors and maintainers pledge to making participation in our project and
|
||||
our community a harassment-free experience for everyone, regardless of age, body
|
||||
size, disability, ethnicity, sex characteristics, gender identity and expression,
|
||||
level of experience, education, socio-economic status, nationality, personal
|
||||
appearance, race, religion, or sexual identity and orientation.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contributes to creating a positive environment
|
||||
include:
|
||||
|
||||
* Using welcoming and inclusive language
|
||||
* Being respectful of differing viewpoints and experiences
|
||||
* Gracefully accepting constructive criticism
|
||||
* Focusing on what is best for the community
|
||||
* Showing empathy towards other community members
|
||||
|
||||
Examples of unacceptable behavior by participants include:
|
||||
|
||||
* The use of sexualized language or imagery and unwelcome sexual attention or
|
||||
advances
|
||||
* Trolling, insulting/derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others' private information, such as a physical or electronic
|
||||
address, without explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
## Our Responsibilities
|
||||
|
||||
Project maintainers are responsible for clarifying the standards of acceptable
|
||||
behavior and are expected to take appropriate and fair corrective action in
|
||||
response to any instances of unacceptable behavior.
|
||||
|
||||
Project maintainers have the right and responsibility to remove, edit, or
|
||||
reject comments, commits, code, wiki edits, issues, and other contributions
|
||||
that are not aligned to this Code of Conduct, or to ban temporarily or
|
||||
permanently any contributor for other behaviors that they deem inappropriate,
|
||||
threatening, offensive, or harmful.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies both within project spaces and in public spaces
|
||||
when an individual is representing the project or its community. Examples of
|
||||
representing a project or community include using an official project e-mail
|
||||
address, posting via an official social media account, or acting as an appointed
|
||||
representative at an online or offline event. Representation of a project may be
|
||||
further defined and clarified by project maintainers.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported by contacting the project team at the1812@outlook.com. All
|
||||
complaints will be reviewed and investigated and will result in a response that
|
||||
is deemed necessary and appropriate to the circumstances. The project team is
|
||||
obligated to maintain confidentiality with regard to the reporter of an incident.
|
||||
Further details of specific enforcement policies may be posted separately.
|
||||
|
||||
Project maintainers who do not follow or enforce the Code of Conduct in good
|
||||
faith may face temporary or permanent repercussions as determined by other
|
||||
members of the project's leadership.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
||||
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
|
||||
|
||||
[homepage]: https://www.contributor-covenant.org
|
||||
|
||||
For answers to common questions about this code of conduct, see
|
||||
https://www.contributor-covenant.org/faq
|
||||
40
bilibili-evolved.greasy.user.js
Normal file
40
bilibili-evolved.greasy.user.js
Normal file
@ -0,0 +1,40 @@
|
||||
// ==UserScript==
|
||||
// @name Bilibili Evolved
|
||||
// @version 1.10.12
|
||||
// @description 强大的哔哩哔哩增强脚本: 下载视频, 音乐, 封面, 弹幕 / 简化直播间, 评论区, 首页 / 自定义顶栏, 删除广告, 夜间模式 / 触屏设备支持
|
||||
// @author Grant Howard, Coulomb-G
|
||||
// @copyright 2020, Grant Howard (https://github.com/the1812) & Coulomb-G (https://github.com/Coulomb-G)
|
||||
// @license MIT
|
||||
// @match *://*.bilibili.com/*
|
||||
// @exclude *://api.bilibili.com/*
|
||||
// @exclude *://api.*.bilibili.com/*
|
||||
// @exclude *://*.bilibili.com/api/*
|
||||
// @exclude *://member.bilibili.com/studio/bs-editor/*
|
||||
// @run-at document-start
|
||||
// @updateURL https://cdn.jsdelivr.net/gh/the1812/Bilibili-Evolved@master/bilibili-evolved.user.js
|
||||
// @downloadURL https://cdn.jsdelivr.net/gh/the1812/Bilibili-Evolved@master/bilibili-evolved.user.js
|
||||
// @supportURL https://github.com/the1812/Bilibili-Evolved/issues
|
||||
// @homepage https://github.com/the1812/Bilibili-Evolved
|
||||
// @grant unsafeWindow
|
||||
// @connect raw.githubusercontent.com
|
||||
// @connect cdn.jsdelivr.net
|
||||
// @require https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js
|
||||
// @icon https://cdn.jsdelivr.net/gh/the1812/Bilibili-Evolved@master/images/logo-small.png
|
||||
// @icon64 https://cdn.jsdelivr.net/gh/the1812/Bilibili-Evolved@master/images/logo.png
|
||||
// ==/UserScript==
|
||||
|
||||
// GreasyFork 特供版, 只能提示更新到最新版, 没有实际功能
|
||||
const ToastModule = (()=>{return(t,a)=>{var s;(function(t){t["Default"]="default";t["Info"]="info";t["Success"]="success";t["Error"]="error"})(s||(s={}));let e;class r{constructor(t="",a="",e=s.Default){this.creationTime=new Date;this.type=e;this.message=t;this.title=a;this.duration=3e3;this.randomKey=Math.floor(Math.random()*(Number.MAX_SAFE_INTEGER+1))}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[data-key='${this.key}']`)}get key(){return this.creationTime.toISOString()+`[${this.randomKey}]`}static get containerVM(){if(!e){r.createToastContainer()}return e}static createToastContainer(){if(!document.querySelector(".toast-card-container")){document.body.insertAdjacentHTML("beforeend",`\n<transition-group class="toast-card-container" name="toast-card-container" tag="div">\n<toast-card v-for="card of cards" :data-key="card.key" :key="card.key" :card="card"></toast-card>\n</transition-group>`);e=new Vue({el:".toast-card-container",components:{"toast-card":{props:["card"],template:`\n<div class="toast-card icons-enabled visible" :class="'toast-' + card.type">\n<div class="toast-card-border"></div>\n<div class="toast-card-header">\n<h1 class="toast-card-title">{{card.title}}</h1>\n<div class="toast-card-dismiss" @click="card.dismiss()">\n<svg style="width:22px;height:22px" viewBox="0 0 24 24">\n<path\n d="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z" />\n</svg>\n</div>\n</div>\n<div class="toast-card-message" v-html="card.message"></div>\n</div>\n`}},data:{cards:[]}})}}static internalShow(t,a,s,e){const n=new r(t,a,e);n.duration=s;n.show();return n}static show(t,a,e){return this.internalShow(t,a,e,s.Default)}static info(t,a,e){return this.internalShow(t,a,e,s.Info)}static success(t,a,e){return this.internalShow(t,a,e,s.Success)}static error(t,a,e){return this.internalShow(t,a,e,s.Error)}}a.applyStyle("toastStyle");return{export:r}}})()
|
||||
const ToastStyle = `.toast-card-container{--corner-radius:4px;--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;flex-wrap:wrap;word-break:break-all;max-height:200px;overflow:auto}.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}.toast-card .download-link,.toast-card .download-link:hover{color:inherit!important;text-decoration:underline;word-break:break-all}@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}`
|
||||
const manager = [undefined, {
|
||||
applyStyle: () => {
|
||||
if (document.querySelector('#toast-style')) {
|
||||
return
|
||||
}
|
||||
document.head.insertAdjacentHTML('beforeend', `<style id="toast-style">${ToastStyle}</style>`)
|
||||
}
|
||||
}]
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
const { export: Toast } = ToastModule(...manager)
|
||||
Toast.info(`当前安装版本过低, 请更新后使用. <a class="link" href="https://cdn.jsdelivr.net/gh/the1812/Bilibili-Evolved@master/bilibili-evolved.user.js">更新</a>`, 'Bilibili Evolved')
|
||||
})
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
10
donate.md
10
donate.md
@ -18,6 +18,16 @@
|
||||
|
||||
| 时间 | 用户名 | 单号后4位 | 金额 |
|
||||
| ------------------- | ---------- | --------- | ------ |
|
||||
| 2020.09.22 18:01:28 | *磊 | 2645 | ¥2.00 |
|
||||
| 2020.09.21 11:55:45 | a*r | 6534 | ¥6.66 |
|
||||
| 2020.09.20 10:13:10 | *淦 | 2619 | ¥3.00 |
|
||||
| 2020.09.15 22:05:56 | k*s | 7545 | ¥10.00 |
|
||||
| 2020.09.14 23:24:11 | *峰 | 4528 | ¥10.00 |
|
||||
| 2020.09.12 11:13:11 | *清 | 7010 | ¥2.00 |
|
||||
| 2020.09.09 00:54:49 | *荣 | 0399 | ¥6.00 |
|
||||
| 2020.09.06 10:48:24 | *曦 | 2020 | ¥2.33 |
|
||||
| 2020.09.05 18:07:26 | K*6 | 0595 | ¥5.00 |
|
||||
| 2020.09.05 15:51:29 | *元 | 7344 | ¥1.00 |
|
||||
| 2020.09.04 22:38:47 | *峰 | 3099 | ¥2.22 |
|
||||
| 2020.08.26 17:41:23 | *彬 | 9108 | ¥0.01 |
|
||||
| 2020.08.22 18:56:16 | b*g | 2623 | ¥20.00 |
|
||||
|
||||
11
features.md
11
features.md
@ -179,6 +179,8 @@
|
||||
- `c` 投币
|
||||
- `s` 收藏
|
||||
- `j` 前进85秒
|
||||
- `p` 切换画中画
|
||||
- `` ` `` 打开播放器菜单
|
||||
- `Shift + j` 倒退85秒
|
||||
- `Shift + w` 稍后再看
|
||||
- `Shift + s` 快速收藏
|
||||
@ -275,6 +277,15 @@
|
||||
设置一个使用夜间模式的时间段, 进入/离开此时间段时, 会自动开启/关闭夜间模式.
|
||||
> 结束时间小于起始时间时将视为次日, 如`18:00`至`6:00`表示晚上18:00到次日6:00.
|
||||
|
||||
</details>
|
||||
<details>
|
||||
<summary><strong>夜间模式跟随系统</strong></summary>
|
||||
|
||||
使夜间模式同步系统设置的亮/暗主题.
|
||||
|
||||
- Windows: 设置 - 个性化 - 颜色 - 选择颜色
|
||||
- macOS: 系统偏好设置 - 通用 - 外观
|
||||
|
||||
</details>
|
||||
<details>
|
||||
<summary><strong>简化评论区</strong></summary>
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
New Issue / 发贴前须知
|
||||
|
||||
## 默认所有发贴者均已了解此处的内容
|
||||
发之前记得看下置顶 (Pinned) 的 issue (如果有的话), 当遇到一些我认为会影响绝大部分用户的情况时, 我就会把这个 issue 置顶.
|
||||
|
||||
----
|
||||
|
||||
|
||||
2
min/about.min.js
vendored
2
min/about.min.js
vendored
@ -1 +1 @@
|
||||
(()=>{return(e,t)=>{(async()=>{const i=await t.importAsync("aboutHtml");document.body.insertAdjacentHTML("beforeend",i);dq(".bilibili-evolved-about").addEventListener("be:about-load",()=>{const t=(e,t)=>e.charCodeAt(0)-t.charCodeAt(0);const i=(e,i)=>t(e.name,i.name);const n=GM.info.script.name.match(/Bilibili Evolved \((.*)\)/);const o=n?n[1]:"Stable";new Vue({el:".bilibili-evolved-about",data:{version:e.currentVersion,clientType:o,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"},{name:"Lets-Halloween",link:"https://github.com/Lets-Halloween"},{name:"shugen002",link:"https://github.com/shugen002"},{name:"Joshuaふみひる",link:""}].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:"Vuex",link:"https://vuex.vuejs.org/zh/"},{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"},{name:"Lodash",link:"https://lodash.com/"}]},mounted(){dq(".bilibili-evolved-about").addEventListener("be:about-load-community",()=>{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(o)?"preview":"master";this.getLogos();const e=new Set;let t=[];let n=1;do{t=await Ajax.getJson(`https://api.github.com/repos/the1812/Bilibili-Evolved/issues?state=all&direction=asc&per_page=100&page=${n}`).catch(()=>{t=[{name:"电波无法到达(´・_・`)",link:null}]});n++;for(const i of t){e.add(i.user.login)}}while(t.length>0);this.participants=[...e].map(e=>{return{name:e,link:`https://github.com/${e}`}}).filter(({link:e})=>{return!this.authors.some(t=>t.link===e)&&!this.contributors.some(t=>t.link===e)}).sort(i);this.fetching=false}}})},{once:true})})()}})();
|
||||
(()=>{return(t,e)=>{(async()=>{const i=await e.importAsync("aboutHtml");document.body.insertAdjacentHTML("beforeend",i);dq(".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 n=GM.info.script.name.match(/Bilibili Evolved \((.*)\)/);const o=n?n[1]:"Stable";new Vue({el:".bilibili-evolved-about",data:{version:t.currentVersion,clientType:o,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"},{name:"Lets-Halloween",link:"https://github.com/Lets-Halloween"},{name:"shugen002",link:"https://github.com/shugen002"},{name:"Joshuaふみひる",link:""},{name:"kdxcxs",link:"https://github.com/kdxcxs"}].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:"Vuex",link:"https://vuex.vuejs.org/zh/"},{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"},{name:"Lodash",link:"https://lodash.com/"}]},mounted(){dq(".bilibili-evolved-about").addEventListener("be:about-load-community",()=>{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(o)?"preview":"master";this.getLogos();const t=new Set;let e=[];let n=1;do{e=await Ajax.getJson(`https://api.github.com/repos/the1812/Bilibili-Evolved/issues?state=all&direction=asc&per_page=100&page=${n}`).catch(()=>{e=[{name:"电波无法到达(´・_・`)",link:null}]});n++;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})})()}})();
|
||||
2
min/airborne.min.js
vendored
2
min/airborne.min.js
vendored
@ -1 +1 @@
|
||||
(()=>{return(e,i)=>{if(typeof isEmbeddedPlayer!=="undefined"&&isEmbeddedPlayer()){return}function t(e){return e.innerText.search(/\d{1,}[::]\d{2}/)!==-1&&e.childElementCount===0}function n(i){if(e.airborne){airborneDestination=i.innerText.match(/\d{1,}[::]\d{2}/)[0];sep=airborneDestination.includes(":")?":":":";airborneDestination=parseInt(airborneDestination.split(sep)[0])*60+parseInt(airborneDestination.split(sep)[1]);if(0<=airborneDestination<=document.querySelector(".bilibili-player-video video").duration){const e=i.offsetWidth;i.innerHTML="<u>"+i.innerText+"🚁</u>";if(i.style.marginLeft===""){i.style.marginLeft="-"+(i.offsetWidth-e).toString()+"px"}}function t(e){var t=i.offsetLeft;var n=i.offsetTop;var r=i.offsetParent;while(r!==null){t+=r.offsetLeft;n+=r.offsetTop+r.clientTop;r=r.offsetParent}const o=t+i.offsetWidth;const a=n+i.offsetHeight;if(t<=e.clientX&&e.clientX<=o&&n<=e.clientY&&e.clientY<=a&&i.offsetWidth!==0){document.querySelector(".bilibili-player-video video").currentTime=airborneDestination;document.querySelector(".bilibili-player-video video").play()}}document.querySelector(".bilibili-player-video-wrap").addEventListener("click",t);document.querySelector(".bilibili-player-video video").addEventListener("click",t)}}(function e(){SpinQuery.select(()=>document.querySelector(".bilibili-player-video-danmaku")).then(()=>{Observer.childList(".bilibili-player-video-danmaku",e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{if(t(e)){n(e)}Observer.childList(e,e=>{e.forEach(e=>{if(t(e.target)){n(e.target)}})})})})})})})()}})();
|
||||
(()=>{return(e,i)=>{if(typeof isEmbeddedPlayer!=="undefined"&&isEmbeddedPlayer()){return}function t(e){return e.innerText.search(/\d{1,}[::]\d{2}/)!==-1&&e.childElementCount===0}function n(e){var i=e.offsetLeft;var t=e.offsetTop;var n=e.offsetParent;while(n!==null){i+=n.offsetLeft;t+=n.offsetTop+n.clientTop;n=n.offsetParent}styleTransform=e.style.transform;translateXReg=styleTransform.match(/translateX\(-?[0-9]{1,}([.][0-9]{1,})?px\)/);if(translateXReg!==null){i+=parseFloat(translateXReg[0].match(/-?[0-9]{1,}([.][0-9]{1,})?/)[0])}return{left:i,right:i+e.offsetWidth,top:t,bottom:t+e.offsetHeight}}function r(){const e=document.querySelector(".bilibili-player-video-danmaku").mousePosition;document.querySelector(".bilibili-player-video-danmaku").children.forEach(i=>{if(typeof i.airborneDestination==="undefined"){return true}const t=n(i);if(t.left<=e[0]&&e[0]<=t.right&&t.top<=e[1]&&e[1]<=t.bottom){document.querySelector(".bilibili-player-video video").currentTime=i.airborneDestination;document.querySelector(".bilibili-player-video video").play()}})}function o(i){if(e.airborne){airborneDestination=i.innerText.match(/\d{1,}[::]\d{2}/)[0];sep=airborneDestination.includes(":")?":":":";airborneDestination=parseInt(airborneDestination.split(sep)[0])*60+parseInt(airborneDestination.split(sep)[1]);if(0<=airborneDestination&&airborneDestination<=document.querySelector(".bilibili-player-video video").duration){i.airborneDestination=airborneDestination;const e=i.offsetWidth;i.innerHTML="<u>"+i.innerText+"🚁</u>";if(i.style.marginLeft===""){i.style.marginLeft="-"+(i.offsetWidth-e).toString()+"px"}}}}(function e(){SpinQuery.select(()=>document.querySelector(".bilibili-player-video-danmaku")).then(()=>{document.querySelector(".bilibili-player-video-danmaku").mousePosition=[0,0];document.addEventListener("mousemove",e=>{document.querySelector(".bilibili-player-video-danmaku").mousePosition=[e.clientX,e.clientY]},false);document.querySelector(".bilibili-player-video-wrap").addEventListener("click",()=>{setTimeout(()=>{r()},5)});Observer.childList(".bilibili-player-video-danmaku",e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{if(t(e)){o(e)}Observer.childList(e,e=>{e.forEach(e=>{if(t(e.target)){o(e.target)}})})})})})})})()}})();
|
||||
2
min/biliplus-redirect.min.js
vendored
2
min/biliplus-redirect.min.js
vendored
@ -1 +1 @@
|
||||
(()=>{return(i,e)=>{const n=`www.biliplus.com`;const c=["bilibili.com/video/","bilibili.com/bangumi/play","bilibili.com/bangumi/media","space.bilibili.com"];return{widget:{condition:()=>{return c.some(i=>document.URL.includes(i))},content:`\n<a class="gui-settings-flat-button" id="biliplus-redirect">\n<i class="icon-biliplus"></i>\n<span>转到BiliPlus</span>\n</a>`,success:()=>{const i=document.querySelector("#biliplus-redirect");let e;if(location.host==="space.bilibili.com"){e=document.URL.replace("space.bilibili.com/",`${n}/space/`)}else if(document.URL.includes("/bangumi/")){Observer.videoChange(()=>{const e=unsafeWindow.aid||document.querySelector(".av-link,.info-sec-av").innerText.replace(/[aAvV]/g,"");const c=`https://${n}/video/av${e}/`;if(document.URL!==c){i.href=c}else{i.disabled=true}});return}else{e=document.URL.replace(window.location.host,n)}if(document.URL!==e){i.href=e}else{i.disabled=true}}}}}})();
|
||||
(()=>{return(i,e)=>{const n=`www.biliplus.com`;const c=["bilibili.com/video/","bilibili.com/bangumi/play","bilibili.com/bangumi/media","space.bilibili.com"];return{widget:{condition:()=>{return c.some(i=>document.URL.includes(i))},content:`\n<a class="gui-settings-flat-button" id="biliplus-redirect">\n<i class="icon-biliplus"></i>\n<span>转到BiliPlus</span>\n</a>`,success:()=>{const i=document.querySelector("#biliplus-redirect");const e=e=>{if(document.URL!==e){i.href=e}else{i.disabled=true}};if(location.host==="space.bilibili.com"){const i=document.URL.replace("space.bilibili.com/",`${n}/space/`);e(i)}else if(document.URL.includes("/bangumi/")){Observer.videoChange(()=>{const i=unsafeWindow.aid||document.querySelector(".av-link,.info-sec-av").innerText.replace(/[aAvV]/g,"");const c=`https://${n}/video/av${i}/`;e(c)})}else{Observer.videoChange(()=>{const i=document.URL.replace(window.location.host,n);e(i)})}}}}}})();
|
||||
@ -1,10 +1,10 @@
|
||||
{
|
||||
"about.min.css": "E868D1E0B96F68DB0AB9A4F2ACC63275F150A939640E687F044DA3CB6DDA1862",
|
||||
"about.min.html": "E44CC2091973A839E5A533B397EF8C78DD573DAB9AF0C4D19E63748DCB9450DB",
|
||||
"about.min.js": "FF002C6CBCA0AAAA7CE4414F318A5FCC1788891EB1A2090D8E390D95CC14569E",
|
||||
"about.min.js": "889994DE8A88DE470A17477411FD82D5B97B1F3F88FBC74A56E625ECDC75E148",
|
||||
"activity-apis.min.js": "459D26DB0BB447FEFE6F1842541A119E67C63573A800E56AD7FEC71D20087CEF",
|
||||
"activity-image-saver.min.js": "4117EDC0D59C15461083B2EB56F5061DCABAA5EA9699C438DD0E221FEAAFA8B3",
|
||||
"airborne.min.js": "9625A693C4CAA85EA37C86759C34C808F4F0949446DFE3DF9E7C3C23725235C6",
|
||||
"airborne.min.js": "4B897F793D03C2A60960C5FCEB80F0D3F9EF33DEBC4F2AB429987E354377AD2A",
|
||||
"aria2-rpc.min.js": "133AE00F1BD5C68E52385D170FA2983A7A82F0326D8C42C4E3CDA14ED4F3626F",
|
||||
"aria2-rpc-profile-item.vue.min.js": "61DCAD1D440E036B89C22E00C51C8357DBB529612CB428D55C3804410D2AD059",
|
||||
"aria2-rpc-profiles.vue.min.js": "CBF3D159566A694BC543EAB5B9E743A13B571743EBDDB8C558AE036483E3AF5A",
|
||||
@ -15,13 +15,13 @@
|
||||
"bangumi-timeline.vue.min.js": "3A02A24CA45655763C3A568F618A10F4009747FB67FCD002EAEBE256F03CEDC4",
|
||||
"batch-download.min.js": "73D9904D157C9F105B0C10329447F5F47CD8ACAB0944A083110520A4E847412C",
|
||||
"batch-warning.min.js": "C4D35814CBCFAD0EFB166D0F34B6F37E034DC59E09719BC3656520120E493475",
|
||||
"biliplus-redirect.min.js": "8446444A9E9974EB32C766CB0CD3826E9F85BAA2B5F09048EBA8F3FEEAE9FA6F",
|
||||
"biliplus-redirect.min.js": "54F389F88D24D47DAFEB9603CABFD1C56E13E5CBC46B0DA67EE439A7E913B330",
|
||||
"blackboard.min.js": "5F50F1DDA203AC0C54AB52868881AA43B22007EAEF042618B1A093BBAFFDEE5B",
|
||||
"blackboard.vue.min.js": "65C08D7C295519E833C1CE001E583726410603A482B3036D55F0186ADC5BE1EF",
|
||||
"blur-video-control.min.css": "B72FA7AD198ED1C9A9620A83881441F96F9FF3083ED12203A324B9753A7CCFFD",
|
||||
"blur-video-control.min.js": "00A2AC837FC455DF2AED7D0C350265C7438CC6F5C203F085E19639DDB86D0E11",
|
||||
"bvid-convert.min.css": "F49ED1B27A86CC3957226474EE15E86D5B11974A2C9D6D4968B375222C802FD0",
|
||||
"bvid-convert.min.js": "C8E50E01B5E5974061B0501B6A3D8AFEBEB096D6FC9C1CCB6AE2A5708C8479DC",
|
||||
"bvid-convert.min.js": "BF2C8205479384E8C076CDA26C8C0CDB2B9748780F0F323A7804F8AF80E8D95A",
|
||||
"category-regions.min.js": "42137E9E3B27758FA070C2E9A5E06EBBAEE83FCA9FE51D07C9CFF1C38C046604",
|
||||
"clear-cache.min.js": "9AB1536D8278DA681831A589AD1414425BF206B36AE109FB4EC1E8A685BB2A9F",
|
||||
"collapse-live-side-bar.min.css": "22348786547D2D8DB659A306AF2E9C1F2050D66488778C71545AAEF785FD57E6",
|
||||
@ -62,10 +62,10 @@
|
||||
"danmaku-converter.min.js": "80FE861D0D69A6FB6BE67444A0350182F0245AFE2E61A1043DBA86F092A69868",
|
||||
"danmaku-send-bar.min.css": "52149D46CF3A15CF6EB186CB49F298DE18B0723E52D8693228F66099847EDCCB",
|
||||
"danmaku-send-bar.min.js": "7108E72F00C169F26E20409F4AA79F05553310375BABC392EB7E2166224B800A",
|
||||
"dark.min.css": "4F4A804CAC4C318ACFABECBD5FD92FC3A7146485FA3B53DE2E2A51719B9DE43C",
|
||||
"dark.user.css": "B458F81FF5A7001E285F53E23E5CD8911D2633E751A11BEE321DDCAA23863183",
|
||||
"dark.min.css": "D3D4B9F89F070033E16A11150775B145F2F34BC6908E641C00B43144A10CE465",
|
||||
"dark.user.css": "3DFEDAFEDA52862FC0C2F3A72E21B8994E5E9D368F1A71A569C844DCD5C675FE",
|
||||
"dark-color-scheme.min.js": "6D353AC738180317ACF9D2E046BFFBA0ACC0FA7A8D22B8E16C51127CDE4FE96B",
|
||||
"dark-important.min.css": "1CDC30CCDB804447E50E0B0DDCBABC017B11098888768FD22F5D1C041F5F8B4B",
|
||||
"dark-important.min.css": "1ABA75D3AE04F22BE11DE785FB826A0C8F5B3BC5158830ABF07933246AFE2FA7",
|
||||
"dark-navbar.min.css": "7FAD547E326B768904B3739C978DF86FFDDD5E5064FB8F490710D197CCC3018B",
|
||||
"dark-schedule.min.js": "853C446547603F4F0425F19F09F73335C9EC451A790C1C07E5E5B88A09E9B453",
|
||||
"dark-styles.min.js": "77F12E4F159C5139E1FC6030615F88EFD0A02443D34C3C4EDC3DB0B85F081631",
|
||||
@ -77,7 +77,7 @@
|
||||
"default-player-mode.min.js": "3DF0FE367EB990B018C57C1B73BB82CE38FF0631D4C329051F3FD9F4D504071D",
|
||||
"default-video-quality.min.js": "A24225E0F72D5BCA7DFE529E5B90B03F494C8720ADEF91D466A923FD767EB907",
|
||||
"default-video-speed.min.js": "EBBF43D8013E32AC13C3E9396480574DDC549BA8BC7CCF15FE4EEF2DFEF64F33",
|
||||
"disable-feeds-details.min.js": "F3084D4E21A1D71CCB82865B2E997D13A7618AE01CB2D40465C9B9574BA36541",
|
||||
"disable-feeds-details.min.js": "C6FF8140FE1C52A232BAA3CCD50ACB671445C69B633D828D72675CADB3D6C578",
|
||||
"disable-profile-popup.min.js": "69901EC9A3D15D585F61B1370DC69003CE5869499CAC9C57A03B24511F338A2D",
|
||||
"double-click-fullscreen.min.js": "C6D95B92ECDE67F2C0A3C6B6E4DC655C524F6A98CE0D48733ADCE4ABA780A47B",
|
||||
"download-audio.min.js": "1F4536DE4FF302BFD026CA17E028AF8EB037FB6D0CB355692549DECAEAE0E8C9",
|
||||
@ -119,7 +119,7 @@
|
||||
"gbk.min.js": "872D7A4562F13A539C4A9AF1825DE89E610C775F1AD026EA6986A80DD74E4B53",
|
||||
"get-number.min.js": "7B81A45D0F7D7F68CC6EDE25E02FCD76F8A05B2CF29274F94A99980BB23D8B76",
|
||||
"gui-settings.min.css": "A282A6720CDCB7E7C909763988BDD39C452C47A626BAC86D7576FA70FB0D6ACD",
|
||||
"gui-settings.min.html": "606FD4592323142F0C0991BB14FDE5CCF73E5488DBB27B6B1796BE9818F496D7",
|
||||
"gui-settings.min.html": "955A4707EA70A81CED30B962B73CEE86838529039A218A9084A8CB336F6C49C1",
|
||||
"gui-settings.min.js": "245A969294CFD6F73C6FE4F249AC9907564FB0C204CA22FD92465E7AD9CC77F7",
|
||||
"haruna-scale.min.js": "FD079C86741F614FD63E733CF9B7B896A7D20110754815A540F3341D4DC252B2",
|
||||
"hide-bangumi-reviews.min.js": "7265C0CE994FDA926355A9A4F9B207E7E68E749D47332F3C537EF93E97927A23",
|
||||
@ -158,8 +158,8 @@
|
||||
"medal-helper.min.js": "9464C47832A92AEA85532BB9BA7036A173036B96BBA69D7CFDC74A2BEBD794F4",
|
||||
"minimal-home.vue.min.js": "59D2CDA4F67F919252722ED02657EDA712ADAD04363BB71C5E5381DB7FA61B2B",
|
||||
"minimal-home-search.vue.min.js": "1E6198679DB8FBF6DE9CBCD41E9FF55BA44C743A6CFE1BF74822CFD1F70DA252",
|
||||
"mini-player-touch-move.min.css": "028540E4F40EFD23403CB3D8A654372D7CE65FFC1F95B9793C207179C7C3A9A2",
|
||||
"mini-player-touch-move.min.js": "AAD61A7324B2852B3AA3400BA0E896D16A7DD3BF376FBCB6AF11B0DA55F7B831",
|
||||
"mini-player-touch-move.min.css": "0FD22BDFF784E19B8E053F243D5857DB95029BB3E48963A20321C8DC9A4B2E0B",
|
||||
"mini-player-touch-move.min.js": "EAC1CC2BFC6031CBB4CFC05607957A6DAFCD90B1B4DA3984CD40B70CE804C9E9",
|
||||
"narrow-danmaku.min.js": "12475431A527EFF15100AF57C9C53D0603BC27723126D966CB01240917602253",
|
||||
"new-styles.min.js": "3D7E8E25C5B5B6BD3F784BC05D403C35F0658E67197F878874A9554C2FF5127B",
|
||||
"no-banner.min.css": "DA096F94E7FA26992F3F71245E704D69A1C222D0ADA6F1990FA5D948507CE15F",
|
||||
@ -174,9 +174,9 @@
|
||||
"override-navbar.min.css": "E5AA612841281169CA367A238FB934F807900A385CE2298B7352FF3CA4623757",
|
||||
"override-navbar.min.js": "E55F4EF066461D98ADB1C1582A716C8E179DC78DED8E71D3E9757B25444C2C5E",
|
||||
"pako-inflate.min.js": "3C55C3DF869249CDCF8489FBC96DFCA2AB7961554909DD55D39E7133DA074315",
|
||||
"player-focus.min.js": "538E13A87C347D2E78FB332A5CFDE37FF6A85EA8573C4A8AAE227497FF6CB7D5",
|
||||
"player-focus.min.js": "FA126D12202A5963180CD88A4A8DA816E5519A573D482C38F7618894E197DA6F",
|
||||
"player-on-top.min.js": "B4954610299F27FA54245BB58782E4FA1E2E81FF2F813A774F633A8A5E243643",
|
||||
"player-shadow.min.js": "918D2127907BC2C164CB86BF7F9C2501CF3B9CD236FEEDE5155B9B5D932F3415",
|
||||
"player-shadow.min.js": "625DFD4D2AB12CA6B828BDA85B520C67758B799B711766B58196F8D294351A9B",
|
||||
"quality-errors.min.js": "D56E0659B5F06447579128F9DBD825D40E1659252DDAD358B60E071613AAB2BE",
|
||||
"quick-favorite.min.css": "F14B5ED3F95E944E55B06FEAFF0AC04306146FE9F9223B2C49CE3D507849BE6B",
|
||||
"quick-favorite.min.js": "A68C33151E3B6E0EA73143FDB29E7F34EBE3496D9C40B2C0358466B3FAB63322",
|
||||
@ -190,7 +190,7 @@
|
||||
"reorder.min.js": "C52DEC9C8962AEC9E824913788BDACFCAB1E43356056658F884EE707508629D2",
|
||||
"restore-floors.min.js": "0277EE2C11AD2EE48990B551016652EBD3D36A36D30BDB25BB6B40957DAF1C12",
|
||||
"screenshot.min.css": "6310BD2E77013EAAB38675DCD00761C2B7132C79A529B4FE25C8E86EC7E2F967",
|
||||
"screenshot.min.js": "6FE4E4159042F00E75BF6C5ECFAB44938C87E20CA282FC9E61445D0550C57305",
|
||||
"screenshot.min.js": "47C1A37507DBBB920209C2B1458CD6CD20B759FFAD1BBD5A916FC2570A7600B5",
|
||||
"scrollbar.min.css": "E17BDD4F223F7992A1AF279D7EBA58D9FBB51217F45964C79E30DC2ACBC15B46",
|
||||
"search.vue.min.js": "050019AC283F730181913EBE2D4AD0F89D6E1F0D607A06482652937946390B86",
|
||||
"seeds-to-coins.min.js": "48775EF60AF8958EA5FAF98E52DBD69950FE12F4504E20FC200458972EC59072",
|
||||
@ -198,14 +198,14 @@
|
||||
"seo-jump.min.js": "414B1FAEBA18FAC684BA5D68A0EB909A2DF01308769BE7EB920A4DAF5AFA4EB7",
|
||||
"settings-search.min.js": "85DCBBCED1A8CCCCBF5915D20D017DFFFBA709A49F9C1C9DA8CBA75ACC453B09",
|
||||
"settings-side-bar.min.js": "3BD1206BBB3F000890A3588F630F3040272375688B5B35D7618B3F9C021309FA",
|
||||
"settings-tooltip.en-US.min.js": "BA8C2725EA949EC2063B1D0C313F7F2E19B8996071C1C3820D3646A722A6F283",
|
||||
"settings-tooltip.en-US.min.js": "2AD614468DE0DADF4A20F0F2E03BFB67EDAEC4BF4B8C36033DF1863B32C0AF4E",
|
||||
"settings-tooltip.ja-JP.min.js": "F19FFF07D588873B8CE89D9FDC66F348C5DA8EA18FA1501EC5BABF5AA95E4D78",
|
||||
"settings-tooltip.loader.min.js": "B3941A6B9A5AC693832EA49015397114DC95137E12E6D1ABC311EFF3A3D6F319",
|
||||
"settings-tooltip.min.css": "0C138D5CF16B9068E73D173D229B2B458C15F50272DA73D6A580921C5A848845",
|
||||
"settings-tooltip.min.js": "09E2C1C6B2B76C9697DD8B7640D62C49DC88571512761FCEC8697C5BEF4BFC52",
|
||||
"settings-tooltip.zh-CN.min.js": "589ADBD22AC86B5E1CE1D111809FF909341D9985939FF2C79FE5BAD65B42E42C",
|
||||
"settings-tooltip.zh-CN.min.js": "7BD8FCF36425E342A37DE123301532304719A4454CCAD176EA71578B6326ECD5",
|
||||
"show-cover-before-play.min.css": "E4050D66F8014029270CB5A4DEFDE2F847B095BA9ED4274BFED3E131B737B06D",
|
||||
"show-cover-before-play.min.js": "5B32F053E97341C09B7735659A426D6D9DFAF470B4E16FC8E364F77EA4DAE1B6",
|
||||
"show-cover-before-play.min.js": "C49B358CD57AF55C1C8B5B9C69FC91409217435051754D81E158D7EA7F2835A4",
|
||||
"show-dead-video-title.min.js": "8D591930421EBA43A1BDF50DC8B645C1BD1A17E109FB1CFBCD6B78E6C74E1D68",
|
||||
"simple-home.vue.min.js": "D4175D67D6152ECE6C7976D2F5B4AFA5FAC31B3B4F8508648A12BBC30A7F4E66",
|
||||
"simple-home-bangumi-category.vue.min.js": "F4B541AD738BB6872FD66F5142544828795F34D1B24481C4C04F95047424D658",
|
||||
@ -215,8 +215,8 @@
|
||||
"simplify-home.min.css": "50F0FA046D61ECE5183409CF97C8DBECB4CF64918DF813CD2B39BF9FBD314B42",
|
||||
"simplify-home.min.js": "F6D7F8E0D45847C3E056711AECE3832785603E7EF85A4B995C028F5CBE539C94",
|
||||
"simplify-home.vue.min.js": "62F246FD5C9172676A077DD1DFB1F5ACE0E018952D13E1AAD89B3EA2FD00F961",
|
||||
"simplify-liveroom.min.css": "EB08F7705BA0A9BBFC013B75FE88A04DDE7D90A3CB6454D74B4EE27DA4CEC0F1",
|
||||
"simplify-liveroom.min.js": "C7F332CCDADA9B3F4E5399ACF75C5CF748BB3B153C281A16752C11FF39BC0BD7",
|
||||
"simplify-liveroom.min.css": "A17FEA3BFB4E33CF5D885F095A1C04BEBEB3784C1F5263719EA24810E1786E6E",
|
||||
"simplify-liveroom.min.js": "39A86D4CC03D22E88A9CA446538AB67441EA495DAD62243916E3D5D93C83C954",
|
||||
"skip-charge-list.min.css": "D3C988CE131CEBFAC8A60360529C83EC4AE1B9EA122F9A6924F19963E25A4FE9",
|
||||
"skip-charge-list.min.js": "9F75E41B8DC604DDC7DB25B943DD44A1B73A634C60D8C7BA0E45191E1F316730",
|
||||
"slideshow-cards.vue.min.js": "7ED0B8F54AB0C7C6388816B5F9937C8DF84B0018F80C7009F1BD0675C9C06DC2",
|
||||
@ -232,12 +232,12 @@
|
||||
"toast.min.js": "C9909E1426CED4F23B643461E9495D0392FBAED34539D0D00644EF6949D71596",
|
||||
"touch-move.min.js": "96072732F8BB29A4B8EF79D5942ED13EF80C0EF209A3ECE6FDAD5D65E9E08655",
|
||||
"touch-navbar.min.js": "21EF203296CF795E2471D04E7C44F5FA734FC7EB3EF6187B5AC6D562572D2649",
|
||||
"touch-player.min.css": "3C0D6F29DF520EB4397C0B996B14B6B2B7AD81145BC62C70B0249402A8AB70A0",
|
||||
"touch-player.min.css": "201648D44E3CD30A516D8FE8748F8DCF9FBD76128C2265B1889C205F973C48AF",
|
||||
"touch-player.min.js": "0307516FD221386DA37F9C48223BA0E242BF52EF48F46D18A033042351968E94",
|
||||
"trending-videos.min.js": "30B0EE089935E7D59851E0D5B096E12BDCB250D1D3DCAE40FF71E90ADAAB55E0",
|
||||
"trending-videos.vue.min.js": "98B085EF2C2C1ACDE801385FC3AE1391F9928C482F9DCC2F3926395549779F77",
|
||||
"tweets.min.css": "9015C1F165C91B9205ABBE4E8A3B5FA83DB1EB4B5CF2442846AF61E44FF178A8",
|
||||
"unfold-feeds.min.js": "2E2E99F1EC4E53B791FFE2C89C8D96E278C635BBD0FAE4D3CDC3D49B456D4108",
|
||||
"unfold-feeds.min.js": "71F4E75B6947C11F37FA0F1F6EC3144871061CBD66F2857D08037C492EC280B9",
|
||||
"url-params-clean.min.js": "AA73B1E67978373C123083836FF0CC314E9AE390B40040B2F6E4B6221F1DBF04",
|
||||
"v-checkbox.vue.min.js": "1AB3B179CF3422A49D398588A970A6C9154339050C94F271FC7FA925B02D417D",
|
||||
"v-dropdown.vue.min.js": "BA1142E2D44CC9593DA803CAA76FA2B814CBD65D4D4210ABF00E811C361D8A37",
|
||||
|
||||
BIN
min/bundle.zip
BIN
min/bundle.zip
Binary file not shown.
2
min/bvid-convert.min.js
vendored
2
min/bvid-convert.min.js
vendored
@ -1 +1 @@
|
||||
(()=>{return(i,e)=>{const n=["https://www.bilibili.com/video/","https://www.bilibili.com/bangumi/"].some(i=>document.URL.startsWith(i));if(i.preferAvUrl&&document.URL.startsWith("https://www.bilibili.com/video/")){SpinQuery.select(()=>unsafeWindow.aid).then(i=>{if(!i){return}const e=document.URL.replace(/\/(video|bangumi)\/(BV[\w]+)/i,(e,n)=>{return`/${n}/av${i}`});if(document.URL!==e){history.replaceState({},document.title,e)}})}return{widget:{content:`<div class="bvid-convert"></div>`,condition:async()=>{if(n){return Boolean(await SpinQuery.select(()=>unsafeWindow.aid||unsafeWindow.bvid))}else{return false}},success:()=>{e.applyStyle("bvidConvertStyle");const i=async()=>{const i=dq(".bvid-convert");i.innerHTML=`\n<div class="bvid-convert-item">av${unsafeWindow.aid}</div>\n<div class="bvid-convert-item">${unsafeWindow.bvid}</div>\n`;const e=await SpinQuery.select(".av-link,.bv-link,.bvid-link");if(e){i.innerHTML=`\n<div class="bvid-convert-item">av${unsafeWindow.aid}</div>\n<div class="bvid-convert-item">${e.innerHTML}</div>\n`}};if(document.URL.startsWith("https://www.bilibili.com/bangumi/")){Observer.videoChange(i)}else{i()}}}}}})();
|
||||
(()=>{return(i,e)=>{const n=["https://www.bilibili.com/video/","https://www.bilibili.com/bangumi/"].some(i=>document.URL.startsWith(i));if(i.preferAvUrl&&document.URL.startsWith("https://www.bilibili.com/video/")){SpinQuery.select(()=>unsafeWindow.aid).then(i=>{if(!i){return}const e=document.URL.replace(/\/(video|bangumi)\/(BV[\w]+)/i,(e,n)=>{return`/${n}/av${i}`});if(document.URL!==e){history.replaceState({},document.title,e)}})}return{widget:{content:`<div class="bvid-convert"></div>`,condition:async()=>{if(n){return Boolean(await SpinQuery.select(()=>unsafeWindow.aid||unsafeWindow.bvid))}else{return false}},success:()=>{e.applyStyle("bvidConvertStyle");const i=async()=>{const i=dq(".bvid-convert");i.innerHTML=`\n<div class="bvid-convert-item">av${unsafeWindow.aid}</div>\n<div class="bvid-convert-item">${unsafeWindow.bvid}</div>\n`;const e=await SpinQuery.select(".av-link,.bv-link,.bvid-link");if(e){i.innerHTML=`\n<div class="bvid-convert-item">av${unsafeWindow.aid}</div>\n<div class="bvid-convert-item">${e.innerHTML}</div>\n`}};Observer.videoChange(i)}}}}})();
|
||||
2
min/dark-important.min.css
vendored
2
min/dark-important.min.css
vendored
File diff suppressed because one or more lines are too long
2
min/dark.min.css
vendored
2
min/dark.min.css
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2
min/disable-feeds-details.min.js
vendored
2
min/disable-feeds-details.min.js
vendored
@ -1 +1 @@
|
||||
(()=>{return(t,e)=>{let n=true;const i="disable-feeds-details-style";const s=`\n.card[data-did] .content { cursor: text }\n.card[data-did] .content .details {\n font-size: 12px;\n opacity: 0.6;\n cursor: pointer;\n display: block;\n}\n`;e.applyImportantStyleFromText(".card[data-did] .content .details { display: none }","disable-feeds-details-init-style");const a=()=>e.applyImportantStyleFromText(s,i);const c=document.URL.replace(location.search,"");const r=c.startsWith("https://t.bilibili.com/")||c.startsWith("https://space.bilibili.com/");(async()=>{if(!r){return}a();const{forEachFeedsCard:t}=await e.importAsync("feeds-apis");const i=t=>{const e=t.element;e.addEventListener("click",t=>{if(t.ctrlKey||!n){return}const i=dqa(e,".content");const s=t.target;if(s.hasAttribute("click-title")){return}if(i.some(t=>t===s||t.contains(s))){t.stopImmediatePropagation()}},{capture:true});const i=dq(e,".post-content");if(!i){return}if(dq(i,".video-container")||dq(i,".bangumi-container")){return}if(dq(i,".details")){return}if(i.classList.contains("repost")){const t=dq(i,".content");if(!t){return}const e=document.createElement("div");e.classList.add("details");e.setAttribute("click-title","详情");e.innerHTML=`\n 详情<i class="mdi mdi-chevron-right" click-title></i>\n`;t.insertAdjacentElement("beforeend",e)}};t({added:i})})();return{reload:()=>{if(r){a();n=true}},unload:()=>{if(r){const t=document.getElementById(i);t&&t.remove();n=false}}}}})();
|
||||
(()=>{return(t,e)=>{let n=true;const i="disable-feeds-details-style";const s=`\n.card[data-did] .content { cursor: text }\n.card[data-did] .content .details {\n font-size: 12px;\n opacity: 0.6;\n cursor: pointer;\n display: block;\n}\n`;e.applyImportantStyleFromText(".card[data-did] .content .details { display: none }","disable-feeds-details-init-style");const c=()=>e.applyImportantStyleFromText(s,i);const a=document.URL.replace(location.search,"");const o=a.startsWith("https://t.bilibili.com/")||a.startsWith("https://space.bilibili.com/");(async()=>{if(!o){return}c();const{forEachFeedsCard:t}=await e.importAsync("feeds-apis");const i=t=>{const e=t.element;e.addEventListener("click",t=>{if(t.ctrlKey||!n){return}const i=dqa(e,".content");const s=t.target;if(s.hasAttribute("click-title")){return}if(i.some(t=>t===s||t.contains(s))){t.stopImmediatePropagation()}},{capture:true});const i=dq(e,".post-content");if(!i){return}const s=[".video-container",".bangumi-container",".media-list"].some(t=>dq(i,t));if(s){return}if(i.classList.contains("repost")){const t=dq(i,".content");if(!t){return}const e=document.createElement("div");e.classList.add("details");e.setAttribute("click-title","详情");e.innerHTML=`\n 详情<i class="mdi mdi-chevron-right" click-title></i>\n`;t.insertAdjacentElement("beforeend",e)}};t({added:i})})();return{reload:()=>{if(o){c();n=true}},unload:()=>{if(o){const t=document.getElementById(i);t&&t.remove();n=false}}}}})();
|
||||
2
min/mini-player-touch-move.min.css
vendored
2
min/mini-player-touch-move.min.css
vendored
@ -1 +1 @@
|
||||
#bofqi.mini-player .drag-bar{touch-action:none!important;height:40px!important;line-height:40px!important;top:-40px!important}#bofqi.mini-player .drag-bar i:last-child{margin:10px!important}
|
||||
#bilibili-player.mini-player .drag-bar{touch-action:none!important;height:40px!important;line-height:40px!important;top:-40px!important}#bilibili-player.mini-player .drag-bar i:last-child{margin:10px!important}
|
||||
2
min/mini-player-touch-move.min.js
vendored
2
min/mini-player-touch-move.min.js
vendored
@ -1 +1 @@
|
||||
(()=>{return(e,o)=>{const i=async(e=true)=>{if(!["//www.bilibili.com/bangumi/play/","//www.bilibili.com/video/"].some(e=>document.URL.includes(e))){return}const i=await SpinQuery.select("#bofqi");if(!i){console.warn("mini player touch move: player not found");return}const{enableTouchMove:n,disableTouchMove:l}=await o.importAsync("touch-move");if(e){o.applyStyle("miniPlayerTouchMoveStyle");n(i,{minMoveDistance:0})}else{o.removeStyle("miniPlayerTouchMoveStyle");l(i)}};i(true);return{reload:()=>i(true),unload:()=>i(false)}}})();
|
||||
(()=>{return(e,i)=>{const o=async(e=true)=>{if(!["//www.bilibili.com/bangumi/play/","//www.bilibili.com/video/"].some(e=>document.URL.includes(e))){return}const o=await SpinQuery.select("#bilibili-player");if(!o){console.warn("mini player touch move: player not found");return}const{enableTouchMove:l,disableTouchMove:n}=await i.importAsync("touch-move");if(e){i.applyStyle("miniPlayerTouchMoveStyle");l(o,{minMoveDistance:0})}else{i.removeStyle("miniPlayerTouchMoveStyle");n(o)}};o(true);return{reload:()=>o(true),unload:()=>o(false)}}})();
|
||||
2
min/player-focus.min.js
vendored
2
min/player-focus.min.js
vendored
@ -1 +1 @@
|
||||
(()=>{return(e,o)=>{const l=document.URL.includes("bangumi")?"#bofqi":".video-info .video-title .tit";SpinQuery.select(l).then(async o=>{await playerReady();console.log(o);if(o===null){return}o.scrollIntoView();if(e.playerFocusOffset!==0){window.scrollBy(0,e.playerFocusOffset)}console.log(o.offsetTop,e.playerFocusOffset,window.scrollY)})}})();
|
||||
(()=>{return(e,l)=>{const o=document.URL.includes("bangumi")?"#bilibili-player":".video-info .video-title .tit";SpinQuery.select(o).then(async l=>{await playerReady();console.log(l);if(l===null){return}l.scrollIntoView();if(e.playerFocusOffset!==0){window.scrollBy(0,e.playerFocusOffset)}console.log(l.offsetTop,e.playerFocusOffset,window.scrollY)})}})();
|
||||
2
min/player-shadow.min.js
vendored
2
min/player-shadow.min.js
vendored
@ -1 +1 @@
|
||||
(()=>{return(e,o)=>{const r=`<style id="player-shadow-style">\n #bilibiliPlayer,\n #bofqi.mini-player::before\n {\n box-shadow: 0px 2px 8px 0px var(--theme-color-30) !important;\n }\n body.dark #bilibiliPlayer,\n body.dark #bofqi.mini-player::before\n {\n box-shadow: 0px 2px 8px 0px var(--theme-color-20) !important;\n }\n</style>`;o.applyStyleFromText(r);return{reload:()=>o.applyStyleFromText(r),unload:()=>document.getElementById("player-shadow-style").remove()}}})();
|
||||
(()=>{return(e,l)=>{const r=`<style id="player-shadow-style">\n #bilibiliPlayer,\n #bilibili-player.mini-player::before\n {\n box-shadow: 0px 2px 8px 0px var(--theme-color-30) !important;\n }\n body.dark #bilibiliPlayer,\n body.dark #bilibili-player.mini-player::before\n {\n box-shadow: 0px 2px 8px 0px var(--theme-color-20) !important;\n }\n</style>`;l.applyStyleFromText(r);return{reload:()=>l.applyStyleFromText(r),unload:()=>document.getElementById("player-shadow-style").remove()}}})();
|
||||
2
min/screenshot.min.js
vendored
2
min/screenshot.min.js
vendored
File diff suppressed because one or more lines are too long
2
min/settings-tooltip.en-US.min.js
vendored
2
min/settings-tooltip.en-US.min.js
vendored
File diff suppressed because one or more lines are too long
2
min/settings-tooltip.zh-CN.min.js
vendored
2
min/settings-tooltip.zh-CN.min.js
vendored
File diff suppressed because one or more lines are too long
2
min/show-cover-before-play.min.js
vendored
2
min/show-cover-before-play.min.js
vendored
@ -1 +1 @@
|
||||
(()=>{return(e,o)=>{const n={include:["//www.bilibili.com/video/","//www.bilibili.com/bangumi/"]};const t="showCoverBeforePlayStyle";let i;const r=()=>{if(n.include.every(e=>!document.URL.includes(e))){return}o.applyStyle(t);const e=()=>document.body.style.removeProperty("--cover-url");const r=HTMLVideoElement.prototype.play;HTMLVideoElement.prototype.play=function(...o){e();return r.call(this,...o)};const l=async()=>{const e=await SpinQuery.select(()=>unsafeWindow.aid);if(!e){console.warn("[播放前显示封面] 未找到av号");return}const{cid:n}=unsafeWindow;if(n===i||!n){return}i=n;const{VideoInfo:t}=await o.importAsync("video-info");const r=new t(e);await r.fetchInfo();document.body.style.setProperty("--cover-url",`url('${r.coverUrl}')`)};if(document.URL.includes("//www.bilibili.com/bangumi/")){Observer.videoChange(l)}else{l()}};r();return{reload:()=>o.applyStyle(t),unload:()=>o.removeStyle(t)}}})();
|
||||
(()=>{return(e,o)=>{const t={include:["//www.bilibili.com/video/","//www.bilibili.com/bangumi/"]};const n="showCoverBeforePlayStyle";let r;const i=()=>{if(t.include.every(e=>!document.URL.includes(e))){return}o.applyStyle(n);const e=()=>document.body.style.removeProperty("--cover-url");const i=HTMLVideoElement.prototype.play;HTMLVideoElement.prototype.play=function(...o){e();return i.call(this,...o)};const l=async()=>{const e=await SpinQuery.select(()=>unsafeWindow.aid);if(!e){console.warn("[播放前显示封面] 未找到av号");return}const{cid:t}=unsafeWindow;if(t===r||!t){return}r=t;const{VideoInfo:n}=await o.importAsync("video-info");const i=new n(e);await i.fetchInfo();document.body.style.setProperty("--cover-url",`url('${i.coverUrl}')`)};Observer.videoChange(l)};i();return{reload:()=>o.applyStyle(n),unload:()=>o.removeStyle(n)}}})();
|
||||
2
min/simplify-liveroom.min.css
vendored
2
min/simplify-liveroom.min.css
vendored
File diff suppressed because one or more lines are too long
2
min/simplify-liveroom.min.js
vendored
2
min/simplify-liveroom.min.js
vendored
@ -1 +1 @@
|
||||
(()=>{return(e,i)=>{const s={vip:"老爷图标",enterPrompt:"入场通知",fansMedal:"粉丝勋章",title:"活动头衔",userLevel:"用户等级",guard:"弹幕特效",systemMessage:"全区广播",welcomeMessage:"欢迎信息",giftMessage:"礼物弹幕",guardPurchase:"上舰提示",giftPanel:"付费礼物",userEffect:"入场特效",kanban:"看板娘",eventsBanner:"活动横幅",rankList:"排行榜",popup:"抽奖提示",skin:"房间皮肤"};class t{constructor(i,s){this.skinDisabled=e.simplifyLiveroomSettings.skin;this.skinSelectors=i;this.skinClass=s;i.forEach(e=>{SpinQuery.select(e,i=>{Observer.attributes(e,e=>{e.forEach(e=>{if(e.attributeName==="class"){if(this.skinDisabled&&i.classList.contains(s)){i.classList.remove(s)}else if(!this.skinDisabled&&!i.classList.contains(s)){i.classList.add(s)}}})})})})}setSkin(e){this.skinDisabled=!e;this.skinSelectors.forEach(i=>{SpinQuery.select(i,i=>i.classList[e?"add":"remove"](this.skinClass))})}}const n=[new t(["#head-info-vm","#gift-control-vm","#rank-list-vm","#rank-list-ctnr-box",".gift-panel.base-panel",".gift-panel.extend-panel",".seeds-wrap>div:first-child",".gift-section>div:last-child",".z-gift-package>div>div",".right-action"],"live-skin-coloration-area"),new t([".rank-list-ctnr .tabs"],"isHundred"),new t([".rank-list-ctnr .tab-content > div"],"hundred")];const c=(e,i)=>{document.body.classList.toggle(`simplify-${i}`,e);if(i==="skin"){n.forEach(i=>i.setSkin(!e))}};const a=()=>document.URL.startsWith(`https://live.bilibili.com/`);if(a()){Object.keys(s).forEach(i=>{const s=e.simplifyLiveroomSettings[i];c(s,i)})}return{widget:{condition:a,content:`\n<div class="gui-settings-flat-button" style="position: relative" id="simplify-liveroom">\n<i class="mdi mdi-24px mdi-settings"></i>\n<span>简化直播间</span>\n<div class="simplify-liveroom-settings popup">\n<ul>\n<li v-for="item in items" @click="itemClick(item)" :class="{checked: item.checked}">\n<i class="mdi mdi-18px" :class="{'mdi-eye': !item.checked, 'mdi-eye-off': item.checked}"></i>\n {{item.name}}\n</li>\n</ul>\n</div>\n</div>\n`,success:()=>{const i=document.querySelector("#simplify-liveroom");const t=document.querySelector(".gui-settings-mask");i.addEventListener("click",e=>{const i=document.querySelector(".simplify-liveroom-settings");if(i.contains(e.target)||e.target===i){return}i.classList.toggle("opened")});i.addEventListener("mouseenter",()=>t.classList.add("transparent"));i.addEventListener("mouseleave",()=>t.classList.remove("transparent"));new Vue({el:".simplify-liveroom-settings",data:{items:Object.entries(s).map(([i,s])=>{const t=e.simplifyLiveroomSettings[i];c(t,i);return{key:i,name:s,checked:t}})},methods:{itemClick(i){i.checked=!i.checked;c(i.checked,i.key);e.simplifyLiveroomSettings=Object.assign(e.simplifyLiveroomSettings,{[i.key]:i.checked})}}})}}}}})();
|
||||
(()=>{return(e,i)=>{const s={vip:"老爷图标",enterPrompt:"入场通知",fansMedal:"粉丝勋章",title:"活动头衔",userLevel:"用户等级",guard:"弹幕特效",systemMessage:"全区广播",welcomeMessage:"欢迎信息",giftMessage:"礼物弹幕",guardPurchase:"上舰提示",giftPanel:"付费礼物",userEffect:"入场特效",kanban:"看板娘",eventsBanner:"活动横幅",rankList:"排行榜",popup:"抽奖提示",pk:"PK浮窗",skin:"房间皮肤"};class t{constructor(i,s){this.skinDisabled=e.simplifyLiveroomSettings.skin;this.skinSelectors=i;this.skinClass=s;i.forEach(e=>{SpinQuery.select(e,i=>{Observer.attributes(e,e=>{e.forEach(e=>{if(e.attributeName==="class"){if(this.skinDisabled&&i.classList.contains(s)){i.classList.remove(s)}else if(!this.skinDisabled&&!i.classList.contains(s)){i.classList.add(s)}}})})})})}setSkin(e){this.skinDisabled=!e;this.skinSelectors.forEach(i=>{SpinQuery.select(i,i=>i.classList[e?"add":"remove"](this.skinClass))})}}const n=[new t(["#head-info-vm","#gift-control-vm","#rank-list-vm","#rank-list-ctnr-box",".gift-panel.base-panel",".gift-panel.extend-panel",".seeds-wrap>div:first-child",".gift-section>div:last-child",".z-gift-package>div>div",".right-action"],"live-skin-coloration-area"),new t([".rank-list-ctnr .tabs"],"isHundred"),new t([".rank-list-ctnr .tab-content > div"],"hundred")];const c=(e,i)=>{document.body.classList.toggle(`simplify-${i}`,e);if(i==="skin"){n.forEach(i=>i.setSkin(!e))}};const a=()=>document.URL.startsWith(`https://live.bilibili.com/`);if(a()){Object.keys(s).forEach(i=>{const s=e.simplifyLiveroomSettings[i];c(s,i)})}return{widget:{condition:a,content:`\n<div class="gui-settings-flat-button" style="position: relative" id="simplify-liveroom">\n<i class="mdi mdi-24px mdi-settings"></i>\n<span>简化直播间</span>\n<div class="simplify-liveroom-settings popup">\n<ul>\n<li v-for="item in items" @click="itemClick(item)" :class="{checked: item.checked}">\n<i class="mdi mdi-18px" :class="{'mdi-eye': !item.checked, 'mdi-eye-off': item.checked}"></i>\n {{item.name}}\n</li>\n</ul>\n</div>\n</div>\n`,success:()=>{const i=document.querySelector("#simplify-liveroom");const t=document.querySelector(".gui-settings-mask");i.addEventListener("click",e=>{const i=document.querySelector(".simplify-liveroom-settings");if(i.contains(e.target)||e.target===i){return}i.classList.toggle("opened")});i.addEventListener("mouseenter",()=>t.classList.add("transparent"));i.addEventListener("mouseleave",()=>t.classList.remove("transparent"));new Vue({el:".simplify-liveroom-settings",data:{items:Object.entries(s).map(([i,s])=>{const t=e.simplifyLiveroomSettings[i];c(t,i);return{key:i,name:s,checked:t}})},methods:{itemClick(i){i.checked=!i.checked;c(i.checked,i.key);e.simplifyLiveroomSettings=Object.assign(e.simplifyLiveroomSettings,{[i.key]:i.checked})}}})}}}}})();
|
||||
2
min/touch-player.min.css
vendored
2
min/touch-player.min.css
vendored
File diff suppressed because one or more lines are too long
2
min/unfold-feeds.min.js
vendored
2
min/unfold-feeds.min.js
vendored
@ -1 +1 @@
|
||||
(()=>{return(e,t)=>{(async()=>{if(document.URL.replace(window.location.search,"")!=="https://t.bilibili.com/"){return}const{forEachFeedsCard:e}=await t.importAsync("feeds-apis");e({added:e=>{const t=dq(e.element,".fold-hoverable");if(!t){return}t.click()}})})()}})();
|
||||
(()=>{return(e,t)=>{(async()=>{if(document.URL.replace(window.location.search,"")!=="https://t.bilibili.com/"&&!document.URL.startsWith("https://space.bilibili.com")){return}const{forEachFeedsCard:e}=await t.importAsync("feeds-apis");e({added:e=>{const t=dq(e.element,".fold-hoverable");if(!t){return}t.click()}})})()}})();
|
||||
@ -46,10 +46,9 @@ const enable = url.startsWith('https://t.bilibili.com/') ||
|
||||
if (!postContent) {
|
||||
return
|
||||
}
|
||||
if (dq(postContent, '.video-container') || dq(postContent, '.bangumi-container')) {
|
||||
return
|
||||
}
|
||||
if (dq(postContent, '.details')) {
|
||||
const hasCardContainer = ['.video-container', '.bangumi-container', '.media-list']
|
||||
.some(type => dq(postContent, type))
|
||||
if (hasCardContainer) {
|
||||
return
|
||||
}
|
||||
if (postContent.classList.contains('repost')) {
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
(async () => {
|
||||
if (document.URL.replace(window.location.search, '') !== 'https://t.bilibili.com/') {
|
||||
if (document.URL.replace(window.location.search, '') !== 'https://t.bilibili.com/'
|
||||
&& !document.URL.startsWith('https://space.bilibili.com')) {
|
||||
return
|
||||
}
|
||||
const { forEachFeedsCard } = await import('../feeds-apis')
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
// ==UserScript==
|
||||
// @name Bilibili Evolved (Preview)
|
||||
// @version 1.10.38
|
||||
// @version 1.10.39
|
||||
// @description Bilibili Evolved 的预览版, 可以抢先体验新功能.
|
||||
// @author Grant Howard, Coulomb-G
|
||||
// @copyright 2020, Grant Howard (https://github.com/the1812) & Coulomb-G (https://github.com/Coulomb-G)
|
||||
|
||||
@ -95,7 +95,7 @@ export class Observer {
|
||||
cidHooked = true
|
||||
}
|
||||
// callback();
|
||||
const videoContainer = await SpinQuery.select('#bofqi video')
|
||||
const videoContainer = await SpinQuery.select('#bilibili-player video')
|
||||
if (videoContainer) {
|
||||
Observer.childList(videoContainer, callback)
|
||||
} else {
|
||||
|
||||
@ -17,7 +17,8 @@
|
||||
&-userEffect .live-room-app .aside-area .activity-welcome-section,
|
||||
&-kanban .live-haruna-ctnr,
|
||||
&-enterPrompt .chat-item.important-prompt-item,
|
||||
&-enterPrompt .chat-history-panel .brush-prompt {
|
||||
&-enterPrompt .chat-history-panel .brush-prompt,
|
||||
&-pk .chaos-pk {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
@ -15,6 +15,7 @@ const displayNames = {
|
||||
eventsBanner: '活动横幅',
|
||||
rankList: '排行榜',
|
||||
popup: '抽奖提示',
|
||||
pk: 'PK浮窗',
|
||||
skin: '房间皮肤',
|
||||
}
|
||||
class SkinManager {
|
||||
|
||||
@ -190,7 +190,6 @@ blockquote {
|
||||
.bg-blue,
|
||||
.security-list .child-list li a.bg-blue:hover,
|
||||
.face-g-tab li.current,
|
||||
.el-date-table td.current:not(.disabled),
|
||||
.el-date-table td.end-date,
|
||||
.el-date-table td.start-date,
|
||||
.tag-list li.tag-item.on,
|
||||
|
||||
@ -1687,7 +1687,7 @@ div.drag-bar,
|
||||
{
|
||||
box-shadow: 0px 1px 10px 0 #0003 !important;
|
||||
}
|
||||
#bofqi.mini-player::before
|
||||
#bilibili-player.mini-player::before
|
||||
{
|
||||
box-shadow: 0 4px 8px 0 #0004 !important;
|
||||
}
|
||||
|
||||
@ -506,6 +506,9 @@
|
||||
@include color("e");
|
||||
p span {
|
||||
@include color("a");
|
||||
a strong {
|
||||
@include theme-color();
|
||||
}
|
||||
}
|
||||
}
|
||||
.long-page .page-content {
|
||||
@ -576,6 +579,9 @@
|
||||
@include theme-color();
|
||||
}
|
||||
}
|
||||
.check-detail-btn {
|
||||
@include theme-color();
|
||||
}
|
||||
}
|
||||
}
|
||||
.warning-group {
|
||||
@ -673,3 +679,33 @@
|
||||
@include to-theme("pink");
|
||||
}
|
||||
}
|
||||
.video-card-common a {
|
||||
@include color("e");
|
||||
&:hover {
|
||||
@include theme-color();
|
||||
}
|
||||
}
|
||||
a.bp_box_bot_click {
|
||||
@include theme-border-color();
|
||||
}
|
||||
.el-date-table td {
|
||||
&.available:hover {
|
||||
@include theme-color();
|
||||
}
|
||||
&.current:not(.disabled) span {
|
||||
@include theme-background-color();
|
||||
}
|
||||
&.today span {
|
||||
@include foreground-color();
|
||||
}
|
||||
&.disabled div {
|
||||
@include background-color("3");
|
||||
@include color("a");
|
||||
}
|
||||
}
|
||||
.list-introText {
|
||||
@include theme-color();
|
||||
}
|
||||
.song-list .song-li .song-shadow {
|
||||
@include theme-background-color(30);
|
||||
}
|
||||
@ -1588,7 +1588,6 @@ a.bp_box_bot_click,
|
||||
.el-picker-panel [slot=sidebar],
|
||||
.danmu-container,
|
||||
.media-info-count .media-info-count-item,
|
||||
a.bp_box_bot_click,
|
||||
.b-info,
|
||||
.bb-intro-top,
|
||||
.mod-2 li .l-item,
|
||||
|
||||
@ -102,10 +102,7 @@ div#square.container,
|
||||
.el-select-dropdown__item.hover,
|
||||
.el-select-dropdown__item:hover,
|
||||
.el-picker-panel__shortcut:hover,
|
||||
.el-date-table td:hover,
|
||||
.el-date-table td.in-range,
|
||||
.el-date-table td.next-month:hover,
|
||||
.el-date-table td.prev-month:hover,
|
||||
.nav-guide-container .guide-tip-btn .guide-tip-btn-right,
|
||||
.guide-card .guide-box a,
|
||||
.footer-content .social-item,
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
const style = `<style id="player-shadow-style">
|
||||
#bilibiliPlayer,
|
||||
#bofqi.mini-player::before
|
||||
#bilibili-player.mini-player::before
|
||||
{
|
||||
box-shadow: 0px 2px 8px 0px var(--theme-color-30) !important;
|
||||
}
|
||||
body.dark #bilibiliPlayer,
|
||||
body.dark #bofqi.mini-player::before
|
||||
body.dark #bilibili-player.mini-player::before
|
||||
{
|
||||
box-shadow: 0px 2px 8px 0px var(--theme-color-20) !important;
|
||||
}
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
#bofqi.mini-player .drag-bar {
|
||||
#bilibili-player.mini-player .drag-bar {
|
||||
touch-action: none !important;
|
||||
height: 40px !important;
|
||||
line-height: 40px !important;
|
||||
top: -40px !important;
|
||||
}
|
||||
#bofqi.mini-player .drag-bar i:last-child {
|
||||
#bilibili-player.mini-player .drag-bar i:last-child {
|
||||
margin: 10px !important;
|
||||
}
|
||||
|
||||
@ -5,7 +5,7 @@ const load = async (enable = true) => {
|
||||
].some(it => document.URL.includes(it))) {
|
||||
return
|
||||
}
|
||||
const player = await SpinQuery.select('#bofqi')
|
||||
const player = await SpinQuery.select('#bilibili-player')
|
||||
if (!player) {
|
||||
console.warn('mini player touch move: player not found')
|
||||
return
|
||||
|
||||
@ -201,7 +201,7 @@ div.bilibili-player-video-control {
|
||||
}
|
||||
}
|
||||
|
||||
#bofqi * {
|
||||
#bilibili-player * {
|
||||
-webkit-tap-highlight-color: transparent !important;
|
||||
}
|
||||
|
||||
|
||||
@ -41,6 +41,10 @@
|
||||
name: 'Joshuaふみひる',
|
||||
link: ''
|
||||
},
|
||||
{
|
||||
name: 'kdxcxs',
|
||||
link: 'https://github.com/kdxcxs'
|
||||
},
|
||||
].sort(userSorter),
|
||||
fetching: true,
|
||||
participants: [],
|
||||
|
||||
@ -18,31 +18,30 @@ export default {
|
||||
</a>`,
|
||||
success: () => {
|
||||
const button = document.querySelector('#biliplus-redirect')
|
||||
const setUrl = url => {
|
||||
if (document.URL !== url) {
|
||||
button.href = url
|
||||
} else {
|
||||
button.disabled = true
|
||||
}
|
||||
}
|
||||
|
||||
let url
|
||||
if (location.host === 'space.bilibili.com') {
|
||||
url = document.URL.replace('space.bilibili.com/', `${host}/space/`)
|
||||
const url = document.URL.replace('space.bilibili.com/', `${host}/space/`)
|
||||
setUrl(url)
|
||||
}
|
||||
else if (document.URL.includes('/bangumi/')) {
|
||||
Observer.videoChange(() => {
|
||||
const aid = unsafeWindow.aid || document.querySelector('.av-link,.info-sec-av').innerText.replace(/[aAvV]/g, '')
|
||||
const url = `https://${host}/video/av${aid}/`
|
||||
if (document.URL !== url) {
|
||||
button.href = url
|
||||
} else {
|
||||
button.disabled = true
|
||||
}
|
||||
setUrl(url)
|
||||
})
|
||||
return
|
||||
}
|
||||
else {
|
||||
url = document.URL.replace(window.location.host, host)
|
||||
}
|
||||
|
||||
if (document.URL !== url) {
|
||||
button.href = url
|
||||
} else {
|
||||
button.disabled = true
|
||||
Observer.videoChange(() => {
|
||||
const url = document.URL.replace(window.location.host, host)
|
||||
setUrl(url)
|
||||
})
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
@ -120,6 +120,8 @@ A more specific example: To use a "video title + AV ID + time" format, we can us
|
||||
- <kbd>c</kbd> Coin
|
||||
- <kbd>s</kbd> Favorite
|
||||
- <kbd>j</kbd> 85s forward
|
||||
- <kbd>p</kbd> Toggle picture-in-picture
|
||||
- <kbd>\`</kbd> Toggle player menu
|
||||
- <kbd>Shift + j</kbd> 85s backward
|
||||
- <kbd>Shift + ↑/↓</kbd> / <kbd>Shift + ,/.</kbd> Playback speed adjust
|
||||
- <kbd>Shift + /</kbd> Reset playback speed`],
|
||||
|
||||
@ -149,6 +149,8 @@ export const toolTips = new Map<keyof BilibiliEvolvedSettings, string>([
|
||||
- <kbd>c</kbd> 投币
|
||||
- <kbd>s</kbd> 收藏
|
||||
- <kbd>j</kbd> 前进85秒
|
||||
- <kbd>p</kbd> 切换画中画
|
||||
- <kbd>\`</kbd> 打开播放器菜单
|
||||
- <kbd>Shift + j</kbd> 倒退85秒
|
||||
- <kbd>Shift + w</kbd> 稍后再看
|
||||
- <kbd>Shift + s</kbd> 快速收藏
|
||||
|
||||
@ -8,15 +8,65 @@ function isAirbornable(danmaku)
|
||||
return danmaku.innerText.search(/\d{1,}[::]\d{2}/) !== -1 && danmaku.childElementCount === 0; // 无子元素表明没有被检测并加过下划线,防止重复调用陷入死循环
|
||||
}
|
||||
|
||||
function doAirborne(danmaku)
|
||||
function getArea(element)
|
||||
{
|
||||
var eleLeft = element.offsetLeft;
|
||||
var eleTop = element.offsetTop;
|
||||
var offParent = element.offsetParent;
|
||||
while (offParent !== null)
|
||||
{
|
||||
eleLeft += offParent.offsetLeft;
|
||||
eleTop += (offParent.offsetTop + offParent.clientTop);
|
||||
offParent = offParent.offsetParent;
|
||||
}
|
||||
styleTransform = element.style.transform;
|
||||
translateXReg = styleTransform.match(/translateX\(-?[0-9]{1,}([.][0-9]{1,})?px\)/);
|
||||
if (translateXReg !== null)
|
||||
{
|
||||
eleLeft += parseFloat(translateXReg[0].match(/-?[0-9]{1,}([.][0-9]{1,})?/)[0]);
|
||||
}
|
||||
return {left: eleLeft,
|
||||
right: eleLeft + element.offsetWidth,
|
||||
top: eleTop,
|
||||
bottom: eleTop + element.offsetHeight};
|
||||
}
|
||||
|
||||
function danmakuContainerCallback()
|
||||
{
|
||||
// 当用户点击到视频内部时检查是否点击空降弹幕而非在检测到空降弹幕时就监听弹幕的点击从而改善性能(不然有可能点击时调用一堆函数)
|
||||
|
||||
// 获取鼠标位置
|
||||
const mousePosition = document.querySelector(".bilibili-player-video-danmaku").mousePosition;
|
||||
|
||||
// 依次检测鼠标是否在弹幕区域内以及是否为空降弹幕
|
||||
document.querySelector('.bilibili-player-video-danmaku').children.forEach((danmaku) => {
|
||||
if (typeof(danmaku.airborneDestination) === 'undefined')
|
||||
{
|
||||
// 不是空降弹幕,continue
|
||||
return true;
|
||||
}
|
||||
const danmakuArea = getArea(danmaku);
|
||||
if (danmakuArea.left <= mousePosition[0] &&
|
||||
mousePosition[0] <= danmakuArea.right &&
|
||||
danmakuArea.top <= mousePosition[1] &&
|
||||
mousePosition[1] <= danmakuArea.bottom)
|
||||
{
|
||||
document.querySelector('.bilibili-player-video video').currentTime = danmaku.airborneDestination;
|
||||
document.querySelector('.bilibili-player-video video').play();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function markAirborne(danmaku)
|
||||
{
|
||||
if (settings.airborne)
|
||||
{
|
||||
airborneDestination = danmaku.innerText.match(/\d{1,}[::]\d{2}/)[0];
|
||||
sep = airborneDestination.includes(':') ? ':' : ':';
|
||||
airborneDestination = parseInt(airborneDestination.split(sep)[0]) * 60 + parseInt(airborneDestination.split(sep)[1]);
|
||||
if (0 <= airborneDestination <= document.querySelector('.bilibili-player-video video').duration)
|
||||
if (0 <= airborneDestination && airborneDestination <= document.querySelector('.bilibili-player-video video').duration)
|
||||
{
|
||||
danmaku.airborneDestination =airborneDestination;
|
||||
const originalWidth = danmaku.offsetWidth;
|
||||
danmaku.innerHTML = '<u>' + danmaku.innerText + '🚁</u>';
|
||||
// 弹幕离开视频后并不一定会删除该元素,如果不向左移有可能会导致画面最左边弹幕离开的地方有一个 🚁 一直在那里
|
||||
@ -25,32 +75,6 @@ function doAirborne(danmaku)
|
||||
danmaku.style.marginLeft = '-' + (danmaku.offsetWidth - originalWidth).toString() + 'px';
|
||||
}
|
||||
}
|
||||
function clickHandler(event)
|
||||
{
|
||||
// 计算弹幕区域
|
||||
var left = danmaku.offsetLeft;
|
||||
var top = danmaku.offsetTop;
|
||||
var offParent = danmaku.offsetParent;
|
||||
while (offParent !== null)
|
||||
{
|
||||
left += offParent.offsetLeft;
|
||||
top += (offParent.offsetTop + offParent.clientTop);
|
||||
offParent = offParent.offsetParent;
|
||||
}
|
||||
const right = left + danmaku.offsetWidth;
|
||||
const bottom = top + danmaku.offsetHeight;
|
||||
if (left <= event.clientX &&
|
||||
event.clientX <= right &&
|
||||
top <= event.clientY &&
|
||||
event.clientY <= bottom &&
|
||||
danmaku.offsetWidth !== 0)
|
||||
{
|
||||
document.querySelector('.bilibili-player-video video').currentTime = airborneDestination;
|
||||
document.querySelector('.bilibili-player-video video').play();
|
||||
}
|
||||
}
|
||||
document.querySelector('.bilibili-player-video-wrap').addEventListener('click', clickHandler);
|
||||
document.querySelector('.bilibili-player-video video').addEventListener('click', clickHandler);
|
||||
}
|
||||
}
|
||||
|
||||
@ -58,19 +82,31 @@ function doAirborne(danmaku)
|
||||
{
|
||||
SpinQuery.select(() => document.querySelector(".bilibili-player-video-danmaku"))
|
||||
.then(() => {
|
||||
// 当点击到 warp 时可以正常获取鼠标位置,但是点击到视频元素时获取到的鼠标位置是(0,0),这里只好初始化时就一直记录鼠标位置,暂时没想到更好的办法(菜……)
|
||||
document.querySelector(".bilibili-player-video-danmaku").mousePosition = [0, 0];
|
||||
document.addEventListener ('mousemove', (e) => {document.querySelector(".bilibili-player-video-danmaku").mousePosition = [e.clientX, e.clientY]}, false);
|
||||
|
||||
// 当视频或 warp 被点击时检测是否点击空降弹幕
|
||||
// setTimeout 原因:B站滚动字幕是通过 transform 实现的,如果当点击时立即调用计算弹幕区域就得出的就是弹幕移出视频范围的位置而非当前的位置
|
||||
// 延后5ms让B站的代码把 translateX 的值改到弹幕当前的位置,虽然说1ms应该完全够了,而且我测试的时候1ms在av78426409里没问题
|
||||
// 不过万一遇到老掉牙的电脑跑得慢就有可能出问题,这里就改成5ms了,但是用户应该也不会察觉到(什么神仙有那反应速度…)
|
||||
document.querySelector('.bilibili-player-video-wrap').addEventListener('click', ()=>{setTimeout(() => {danmakuContainerCallback();}, 5);});
|
||||
|
||||
// 监听每一个弹幕并检测是否为空降弹幕
|
||||
Observer.childList('.bilibili-player-video-danmaku', (records) => {
|
||||
records.forEach((record) => {
|
||||
record.addedNodes.forEach((addedNode) => {
|
||||
if (isAirbornable(addedNode))
|
||||
{
|
||||
doAirborne(addedNode);
|
||||
markAirborne(addedNode);
|
||||
}
|
||||
|
||||
// 有可能会出现当前元素在视频里面走完了一次之后不删除更改内容再出现在视频里面的情况,这里保证所有弹幕都能被监听到
|
||||
Observer.childList(addedNode, (records) => {
|
||||
records.forEach((record) => {
|
||||
if (isAirbornable(record.target))
|
||||
{
|
||||
doAirborne(record.target);
|
||||
markAirborne(record.target);
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
@ -43,11 +43,7 @@ export default {
|
||||
`
|
||||
}
|
||||
}
|
||||
if (document.URL.startsWith('https://www.bilibili.com/bangumi/')) {
|
||||
Observer.videoChange(updateID)
|
||||
} else {
|
||||
updateID()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -10,7 +10,7 @@ const playerModes = [
|
||||
name: '宽屏',
|
||||
action: () => {
|
||||
document.querySelector('.bilibili-player-video-btn-widescreen').click()
|
||||
// document.querySelector("#bofqi").scrollIntoView({ behavior: "smooth" });
|
||||
// document.querySelector("#bilibili-player").scrollIntoView({ behavior: "smooth" });
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
const target = document.URL.includes('bangumi') ? '#bofqi' : '.video-info .video-title .tit'
|
||||
const target = document.URL.includes('bangumi') ? '#bilibili-player' : '.video-info .video-title .tit'
|
||||
SpinQuery.select(target).then(async element => {
|
||||
await playerReady()
|
||||
console.log(element)
|
||||
|
||||
@ -166,7 +166,7 @@ Observer.videoChange(async () => {
|
||||
})
|
||||
}
|
||||
|
||||
const video = await SpinQuery.select('#bofqi video') as HTMLVideoElement
|
||||
const video = await SpinQuery.select('#bilibili-player video') as HTMLVideoElement
|
||||
if (video === null) {
|
||||
return
|
||||
}
|
||||
@ -182,7 +182,7 @@ Observer.videoChange(async () => {
|
||||
time.insertAdjacentHTML('afterend', buttonHtml)
|
||||
const screenshotButton = document.querySelector('.video-take-screenshot') as HTMLElement
|
||||
screenshotButton.addEventListener('click', async e => {
|
||||
const video = await SpinQuery.select('#bofqi video') as HTMLVideoElement
|
||||
const video = await SpinQuery.select('#bilibili-player video') as HTMLVideoElement
|
||||
const screenshot = takeScreenshot(video, e.shiftKey)
|
||||
screenShotsList.screenshots.unshift(screenshot)
|
||||
})
|
||||
|
||||
@ -46,12 +46,12 @@ const entry = () => {
|
||||
// }, { once: true })
|
||||
// unsafeWindow.trackingVideo = video
|
||||
}
|
||||
// Observer.videoChange(showCover)
|
||||
if (document.URL.includes('//www.bilibili.com/bangumi/')) {
|
||||
Observer.videoChange(showCover)
|
||||
} else {
|
||||
showCover()
|
||||
}
|
||||
// if (document.URL.includes('//www.bilibili.com/bangumi/')) {
|
||||
// Observer.videoChange(showCover)
|
||||
// } else {
|
||||
// showCover()
|
||||
// }
|
||||
}
|
||||
entry()
|
||||
export default {
|
||||
|
||||
@ -1 +1 @@
|
||||
1.10.38
|
||||
1.10.39
|
||||
Loading…
Reference in New Issue
Block a user