Merge pull request #969 from the1812/preview

Update to v1.10.39
This commit is contained in:
Grant Howard 2020-09-25 10:47:36 +08:00 committed by GitHub
commit 0162f85d3e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
58 changed files with 432 additions and 221 deletions

1
.github/pull_request_template.md vendored Normal file
View File

@ -0,0 +1 @@
<!-- 可以参考下代码贡献指南: https://github.com/the1812/Bilibili-Evolved/blob/preview/CONTRIBUTING.md -->

76
CODE_OF_CONDUCT.md Normal file
View 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

View 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

View File

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

View File

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

View File

@ -1,6 +1,7 @@
New Issue / 发贴前须知
## 默认所有发贴者均已了解此处的内容
发之前记得看下置顶 (Pinned) 的 issue (如果有的话), 当遇到一些我认为会影响绝大部分用户的情况时, 我就会把这个 issue 置顶.
----

2
min/about.min.js vendored
View File

@ -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
View File

@ -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)}})})})})})})})()}})();

View File

@ -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)})}}}}}})();

View File

@ -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",

Binary file not shown.

View File

@ -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)}}}}})();

File diff suppressed because one or more lines are too long

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

View File

@ -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}}}}})();

View File

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

View File

@ -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)}}})();

View File

@ -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)})}})();

View File

@ -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()}}})();

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

View File

@ -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)}}})();

File diff suppressed because one or more lines are too long

View File

@ -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})}}})}}}}})();

File diff suppressed because one or more lines are too long

View File

@ -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()}})})()}})();

View File

@ -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')) {

View File

@ -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')

View File

@ -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)

View File

@ -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 {

View File

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

View File

@ -15,6 +15,7 @@ const displayNames = {
eventsBanner: '活动横幅',
rankList: '排行榜',
popup: '抽奖提示',
pk: 'PK浮窗',
skin: '房间皮肤',
}
class SkinManager {

View File

@ -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,

View File

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

View File

@ -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 {
@ -672,4 +678,34 @@
&>img {
@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);
}

View File

@ -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,

View File

@ -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,

View File

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

View File

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

View File

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

View File

@ -201,7 +201,7 @@ div.bilibili-player-video-control {
}
}
#bofqi * {
#bilibili-player * {
-webkit-tap-highlight-color: transparent !important;
}

View File

@ -41,6 +41,10 @@
name: 'Joshuaふみひる',
link: ''
},
{
name: 'kdxcxs',
link: 'https://github.com/kdxcxs'
},
].sort(userSorter),
fetching: true,
participants: [],

View File

@ -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)
})
}
},
}

View File

@ -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`],

View File

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

View File

@ -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);
}
})
})
@ -78,4 +114,4 @@ function doAirborne(danmaku)
})
});
})
})()
})()

View File

@ -43,11 +43,7 @@ export default {
`
}
}
if (document.URL.startsWith('https://www.bilibili.com/bangumi/')) {
Observer.videoChange(updateID)
} else {
updateID()
}
Observer.videoChange(updateID)
}
}
}

View File

@ -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" });
}
},
{

View File

@ -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)

View File

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

View File

@ -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()
}
Observer.videoChange(showCover)
// if (document.URL.includes('//www.bilibili.com/bangumi/')) {
// Observer.videoChange(showCover)
// } else {
// showCover()
// }
}
entry()
export default {

View File

@ -1 +1 @@
1.10.38
1.10.39