// ==UserScript==
// @name bilibili强化
// @namespace https://greasyfork.org/scripts/437650
// @version 4.4
// @description B站自动宽屏 超宽屏 自动洗脑循环 自动展开简介区 屏蔽充电鸣谢 屏蔽视频暂停和结束广告 自动将简介区网址改成超连结
// @author fmnijk
// @match https://www.bilibili.com/*
// @exclude https://www.bilibili.com/festival/*
// @icon https://www.google.com/s2/favicons?domain=bilibili.com
// @grant GM_addStyle
// @license MIT
// @require https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js
// ==/UserScript==
/*主函数*/
(function() {
'use strict';
/*不影响首页*/
if (window.location.href == 'https://www.bilibili.com/'){
return false;
}
/*自動寬屏*/
autowide();
/*自動網頁全屏*/
//autofull();
/*超寬屏 需啟用自動寬屏才能用 (beta)*/
//ultrawide();
/*自動洗脑循环*/
autoloop();
/*自动展开简介区*/
autounfold();
/*屏蔽充电鸣谢*/
blockelecpanel();
/*屏蔽视频暂停和结束广告*/
blockendpanel();
/*自动将简介区网址改成超连结*/
autohyperlink();
/*快轉後自動暫停*/
//autopause();
})();
/*定時器*/
function setIntervalX(callback, delay, maxrepeate) {
var count = 0;
var intervalID = window.setInterval(function () {
if (++count === maxrepeate) {
window.clearInterval(intervalID);
}
callback();
}, delay);
}
function setIntervalY(callback, isfinish, delay, maxrepeate) {
var count = 0;
var intervalID = window.setInterval(function () {
if (isfinish() || ++count === maxrepeate) {
window.clearInterval(intervalID);
}
callback();
}, delay);
}
/*自動寬屏*/
function autowide() {
$('.bilibili-player-video > video, .bilibili-player-video > bwp-video, .bpx-player-video-wrap > video')?.[0]?.addEventListener('playing', function () {
$('.bpx-player-ctrl-btn.bpx-player-ctrl-wide').click();
}, {once : true});
}
/*自動網頁全屏*/
function autofull() {
$('.bilibili-player-video > video, .bilibili-player-video > bwp-video, .bpx-player-video-wrap > video')?.[0]?.addEventListener('playing', function () {
$('.bpx-player-ctrl-btn.bpx-player-ctrl-web').click();
}, {once : true});
}
/*超寬屏*/
function ultrawide(){
var styles = `
/*超寬屏影片*/
#player_module, #bilibili-player{
left: 0vw !important;
right: 0vw !important;
max-height: 50vw !important;
margin: 0 !important;
padding: 0 !important;
position: unset !important;
}
#app{
width: 100vw !important;
padding-left: 0 !important;
}
.l-con, .v-wrap{
width: 100vw !important;
padding: 0 !important;
}
/*bangumi*/
.plp-l{
padding-top: 0 !important;
}
.plp-r{
margin-top: 0 !important;
}
/*適配超窄視窗*/
.l-con{
min-width: 638px !important;
}
/*優化位於超寬屏影片上方的元素 縮小其高度和占用區域 增加視覺寬度*/
.international-header{
min-height: 36px !important;
}
.mini-header{
height: 36px !important;
}
#internationalHeader > div > div{
padding: 0 !important;
}
.bili-avatar{
width: 36px !important;
height: 36px !important;
}
#viewbox_report{
padding-top: 12px !important;
height: 80px !important;
}
/*超寬屏模式下屏蔽退出寬屏按鈕*/
/*.bilibili-player-video-btn.bilibili-player-video-btn-widescreen{
display: none !important;
}
.squirtle-widescreen-wrap.squirtle-block-wrap{
display: none !important;
}*/
/*適配沒有大會員的情況*/
#player_module, #bilibili-player{
min-height: 400px !important;
}
#danmukuBox{
display:block !important;
}
`;
GM_addStyle(styles);
window.onresize = function() {
setTimeout(function(){
tryultrawide();
},100);
}
/*分頁在背景開啟的情況,點擊分頁時運行*/
window.onfocus = function() {
setIntervalX(tryultrawide, 100, 50);
}
setIntervalX(tryultrawide, 100, 50);
}
function tryultrawide() {
$('#bilibili-player').css('width', $('#app').css('width'));
$('#bilibili-player').css('width', $('.v-wrap').css('width'));
$('#player_module').css('width', $('#bilibili-player').css('width'));
//先auto再設定成auto的height數值,可以和max-height同時生效
$('#bilibili-player').css('height', 'auto');
$('#bilibili-player').css('height', $('#bilibili-player').css('height'));
$('#player_module').css('height', $('#bilibili-player').css('height'));
$('#playerWrap').css('height', $('#bilibili-player').css('height'));
$('#danmukuBox').css('margin-top', 'calc(' + $('#bilibili-player').css('height') + ' + 10px)');
/*適配超長標題*/
$('h1').css('max-width', 'calc(' + $('.v-wrap').css('width') + ' - 350px)');
}
/*自動洗脑循环*/
function autoloop() {
var styles = `
/*屏蔽結尾圖片才不會蓋住重播*/
.bpx-player-ending-wrap {
display: none !important;
}
`;
GM_addStyle(styles);
$('.bilibili-player-video > video, .bilibili-player-video > bwp-video, .bpx-player-video-wrap video')?.[0]?.addEventListener('ended', function () {
/*自动连播時不自動洗脑循环,立即開始下一部影片*/
if($('.next-button > .switch-button')?.[0]?.className.indexOf(' on') != -1){
$('.next-play a')?.[0]?.click();
return false;
}
this.currentTime = 0;
this.play();
}, false);
}
/*自动展开简介区*/
function autounfold() {
var styles = `
/*屏蔽收起*/
#v_desc > div.toggle-btn > span {
display: none !important;
}
`;
GM_addStyle(styles);
setIntervalY(tryautounfold, isunfold, 100, 50);
}
function tryautounfold() {
$('.toggle-btn').each(function() {
if ($(this).text()?.indexOf('展开更多') != -1){
$(this).click();
}
});
}
function isunfold() {
$('.toggle-btn').each(function() {
if ($(this).text()?.indexOf('展开更多') != -1){
return true;
}
});
return false;
}
/*屏蔽充电鸣谢*/
function blockelecpanel(){
var styles = `
/*屏蔽充电鸣谢*/
.bilibili-player-electric-panel, .bpx-player-electric-panel {
display: none !important;
}
`;
GM_addStyle(styles);
$('.bpx-player-video-wrap video')?.[0]?.addEventListener('ended', function () {
setIntervalY(tryskipelecpanel, isskipelecpanel, 100, 50);
}, true);
}
function tryskipelecpanel() {
$('.bilibili-player-electric-panel-jump-content, .bpx-player-electric-jump')?.[0]?.click();
}
function isskipelecpanel() {
return false;
if ($('.bilibili-player-electric-panel-jump-content, .bpx-player-electric-jump')){
$('.bilibili-player-electric-panel-jump-content, .bpx-player-electric-jump')?.[0]?.click();
return true;
}
return false;
}
/*屏蔽视频暂停和结束广告*/
function blockendpanel(){
var styles = `
/*屏蔽视频暂停和结束广告*/
.bilibili-player-ending-panel, .bpx-player-ending-panel {
display: none !important;
}
`;
GM_addStyle(styles);
}
/*自动将简介区网址改成超连结*/
function autohyperlink(){
$('.bilibili-player-video > video, .bilibili-player-video > bwp-video')?.[0]?.addEventListener('playing', function () {
const $ = document.querySelector.bind(document);
const upCom = $("#v_desc > div.desc-info.desc-v2.open > span"); // uploader comment
const str = upCom.innerHTML;
const newStr = str.replace(/(<a href=")?((https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)))(">(.*)<\/a>)?/gi, function () {
return '<a href="' + arguments[2] + '">' + (arguments[7] || arguments[2]) + '</a>'
});
upCom.innerHTML = newStr;
}, {once : true});
}
/*快轉後自動暫停*/
function autopause() {
let video = $('.bilibili-player-video > video, .bilibili-player-video > bwp-video, .bpx-player-video-wrap > video')?.[0];
video?.addEventListener('seeked', function () {
video?.addEventListener('playing', function () {
video?.pause();
}, {once : true});
}, {once : false});
}