// ==UserScript==
// @name 哔哩哔哩快捷键工具
// @namespace http://tampermonkey.net/
// @version 1.1.beta
// @description 快捷打开关闭哔哩哔哩弹幕 快捷键 [c],以及自动跳过充电页面,自动播放下一个视频。默认关闭弹幕使用了cngege作者的哔哩哔哩bilibili默认关闭弹幕作品
// @author maple
// @match *://*.bilibili.com/video/*
// @match *://*.bilibili.com/watchlater/*
// @match *://*.bilibili.com/bangumi/play/*
// @match *://www.bilibili.com/blackboard/newplayer.html*
// @icon https://www.bilibili.com/favicon.ico
// @require https://cdn.bootcss.com/jquery/3.5.0/jquery.min.js
// @grant none
// @downloadURL none
// ==/UserScript==
function inner(span,status){
let innerHtml = "\n" +
"\n" +
" "+status+""
span.innerHTML = innerHtml;
}
//延时函数
function sleep (time) {
return new Promise((resolve) => setTimeout(resolve, time));
}
//弹幕状态默认为Off
let status = "弹幕:Off"
//标志位
let flag = true;
//显示提示
function show(){
//添加span到body中
let body = document.querySelector("body")
let span = document.createElement("span");
if (flag){
status = "弹幕:On"
}
inner(span,status)
body.appendChild(span);
//取反
flag=!flag;
status = "弹幕:Off"
sleep(800).then(() => {
body.removeChild(span)
})
}
//默认关闭弹幕
let geturl = ()=>{return window.location.href;}
function defaultBarrage(){
let url = geturl();
let isgo = true; //本页面是否判断barrage开关状态 并作出响应
let Const = 0; //记录一个页面中已循环次数,超过三十次则本页面不再循环判断是否关闭barrage
let DebugLog = false;
//go();
let go = ()=>
{
Const++;
let barrage = $(".bilibili-player-video-danmaku-switch .bui-switch-dot");
//判断barrage开关是否是打开的 并关闭
//if(DebugLog){console.log(barrage.css("left"))}
if(barrage.css("left") === "30px" || barrage.css("left") === "100%"){
$('.bui-switch-input').click();//向barrage开关发送点击消息
if(DebugLog){console.log("向barrage开关发送点击消息")}
}
if(barrage.css("left") === "2px"){
isgo = false;
if(DebugLog){console.log("检测到barrage开关关闭");}
return;
}
if(Const>30){isgo = true;return;}
setTimeout(go,300);
}
setInterval(()=>
{
if(isgo || url!==geturl()){
if(url!==geturl()){
Const = 0;
}
url=geturl();
isgo = false;
go();
}
},1000)
function geturl(){
return window.location.href;
}
}
//自动连播,跳过充电页
function pass() {
let jumpButton = '.bilibili-player-electric-panel-jump';
setInterval(() => {
if($(jumpButton).length > 0) {
$(jumpButton).trigger('click')
}
}, 200)
}
//操作弹幕开关函数
function barrage_switch(){
//找到弹幕input标签,并点击
let input = document.querySelector(".bui-switch-input");
input.click();
show();
}
//关闭弹幕
defaultBarrage()
window.onload=function(){
//跳过
pass()
window.onkeydown = function(ev){
//ev表示onkeydown事件对象,keyCode属性就是当前按下的键为多少。63为字母 c
if(ev.keyCode===67){
barrage_switch();
}
}
}