BILIBILI MoeUseHelper

BBMUH - 一键开关弹幕|播放暂停|调整倍速|开关全屏|能让你用bilibili更加愉快的助手

目前為 2020-08-12 提交的版本,檢視 最新版本

// ==UserScript==
// @name         BILIBILI MoeUseHelper
// @version      0.0.3
// @description  BBMUH - 一键开关弹幕|播放暂停|调整倍速|开关全屏|能让你用bilibili更加愉快的助手
// @author       萌萌哒丶九灬书
// @namespace    https://space.bilibili.com/1501743
// @license      GNU General Public License v3.0
// @create       2020-03-25
// @lastmodified 2020-08-10
// @note         0.0.3 更新: 1.新增了跳转播放的按键; 2.新增了直播间的快捷按键
// @note         感谢R君发布的基础版本,在他的基础上修改、增加了部分实现内容。
// @mainpage     https://gf.qytechs.cn/zh-CN/scripts/408526-bilibili-moeusehelper
// @supportURL   https://gf.qytechs.cn/zh-CN/scripts/408526-bilibili-moeusehelper/feedback
// @home-url     https://gf.qytechs.cn/zh-CN/scripts/408526-bilibili-moeusehelper
// @homepageURL  https://gf.qytechs.cn/zh-CN/scripts/408526-bilibili-moeusehelper
// @match        *://www.bilibili.com/*
// @match        *://live.bilibili.com/*
// @require      https://cdn.staticfile.org/jquery/1.12.4/jquery.min.js
// ==/UserScript==

// 小键盘8、2分别是增加音量、减少音量(B站自带)
// 小键盘4、6分别是后退、前进(B站自带)
var 播放暂停 = 101; //小键盘数字键5
var 开关弹幕 = 103; //小键盘数字键7
var 全屏模式 = 105; //小键盘数字键9
var 网页全屏 = 111; //小键盘“/”键
var 宽屏模式 = 106; //小键盘“*”键
var 增加倍速 = 107; //小键盘“+”键
var 减少倍速 = 109; //小键盘“-”键
var 清空倍速 = 97; ///小键盘数字键1
var 跳转播放 = 99; ///小键盘数字键3
// 以上每一个按键都可以自定义,可以按照自己的喜好自行对照键盘键位对应编码来修改
// 笔记本电脑或者是没有小键盘的同学,请参考下面的键盘编码表更改键位
// 对照修改的键盘编码表链接,复制右边的链接到地址栏打开https://jingyan.baidu.com/article/fedf073780e16335ac8977a4.html

//这里设置倍速
var video_speed = [0.1, 0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2, 4, 8, 16];

//jq重定义,避免冲突
var jq = jQuery.noConflict();

//判定当前url是否为直播间
var is_now_live_url = (window.location.host == "live.bilibili.com")? true : false;

function MUH_tips(str){
    var get_tips_div = jq("#tips_div");
    if(get_tips_div.val() == undefined){
        var tips_div = '<div id="tips_div" style="border-radius: 20px;'+
            'background:#000;'+
            'width: 140px;'+
            'height: 40px;'+
            'position:fixed;'+
            'left:50%; top:50%;'+
            'margin-left:-60px;'+
            'margin-top:-20px;'+
            'text-align:center;'+
            'line-height:40px;'+
            'font-size:20px;'+
            'color:#FFF;'+
            'opacity:0.8;'+
            'z-index:2147483647;">' + str + '</div>';
        if(is_now_live_url){
            jq(".bilibili-live-player.relative").append(tips_div);
        }else{
            jq(".bilibili-player-video").append(tips_div);
        }
        jq("#tips_div").animate({opacity:"0.8"},500).animate({opacity:"0"},250);
    }else{
        if(!get_tips_div.is(":animated")){
            get_tips_div.text(str);
            get_tips_div.css("opacity","0.8").animate({opacity:"0.8"},500).animate({opacity:"0"},250);
        }else{
            get_tips_div.stop(true, true);
            get_tips_div.text(str);
            get_tips_div.css("opacity","0.8").animate({opacity:"0.8"},500).animate({opacity:"0"},250);
        }
    }

}
var video_speed_control = jq(".bilibili-player-video video")[0];
var video_speed_num = 0;
for(var i = 0; i< video_speed.length; i++){
    if(video_speed[i] == 1.0){
        video_speed_num = i;
        break;
    }
}
function add_video_speed(){
    if(!is_now_live_url){
        if(++video_speed_num >= video_speed.length){
            video_speed_num = video_speed.length - 1;
        }
        video_speed_control.playbackRate = video_speed[video_speed_num];
        MUH_tips("倍速:" + video_speed[video_speed_num].toString());
    }
}
function sub_video_speed(){
    if(!is_now_live_url){
        if(--video_speed_num < 0){
            video_speed_num = 0;
        }
        video_speed_control.playbackRate = video_speed[video_speed_num];
        MUH_tips("倍速:" + video_speed[video_speed_num].toString());
    }
}
function reset_video_speed(){
    if(!is_now_live_url){
        video_speed_num = 0;
        for(var i = 0; i< video_speed.length; i++){
            if(video_speed[i] == 1.0){
                video_speed_num = i;
                break;
            }
        }
        video_speed_control.playbackRate = video_speed[video_speed_num];
        MUH_tips("倍速:" + video_speed[video_speed_num].toString());
    }
}
var wide_screen_flag = false;
var web_Full_screen_flag = false;
var Full_screen_flag = false;
function click_wide_screen(){
    if(!is_now_live_url){
        if(Full_screen_flag == true && wide_screen_flag == true){
            jq("button[data-text='进入全屏']").click(); //主站
            MUH_tips("宽屏模式");
            Full_screen_flag = false;
        }else if(web_Full_screen_flag == true && wide_screen_flag == true){
            jq("button[data-text='宽屏模式']").click(); //主站
            MUH_tips("宽屏模式");
            web_Full_screen_flag = false;
        }else if(wide_screen_flag){
            jq("button[data-text='宽屏模式']").click(); //主站
            MUH_tips("退出宽屏模式");
            wide_screen_flag = false;
        }else if(Full_screen_flag){
            jq("button[data-text='进入全屏']").click(); //主站
            setTimeout(function (){jq("button[data-text='宽屏模式']").click();}, 200); //主站
            MUH_tips("宽屏模式");
            wide_screen_flag = true;
            Full_screen_flag = false;
        }else{
            jq("button[data-text='宽屏模式']").click(); //主站
            MUH_tips("宽屏模式");
            wide_screen_flag = true;
            web_Full_screen_flag = false;
        }
    }
}
function click_web_Full_screen(){
    if(is_now_live_url){
        if(jq(".bilibili-live-player-video-controller-btn-item.bilibili-live-player-video-controller-web-fullscreen-btn").children("button").attr("data-title") == '退出网页全屏'){
            jq("button[data-title='退出网页全屏']").click(); //直播间
            MUH_tips("退出网页全屏");
        }else if(jq(".bilibili-live-player-video-controller-btn-item.bilibili-live-player-video-controller-web-fullscreen-btn").children("button").attr("data-title") == '网页全屏'){
            jq("button[data-title='网页全屏']").click(); //直播间
            MUH_tips("网页全屏");
        }
    }else{
        if(Full_screen_flag){
            jq("button[data-text='进入全屏']").click(); //主站
            setTimeout(function (){jq("button[data-text='网页全屏']").click();}, 200);//主站
            MUH_tips("网页全屏");
            Full_screen_flag = false;
            web_Full_screen_flag = true;
        }else if(web_Full_screen_flag){
            jq("button[data-text='网页全屏']").click(); //主站
            MUH_tips("退出网页全屏");
            web_Full_screen_flag = false;
        }else{
            jq("button[data-text='网页全屏']").click();//主站
            MUH_tips("网页全屏");
            web_Full_screen_flag = true;
        }
    }
}
function click_Full_screen(){
    if(is_now_live_url){
        if(jq(".bilibili-live-player-video-controller-btn-item.bilibili-live-player-video-controller-fullscreen-btn").children("button").attr("data-title") == '退出全屏'){
            jq("button[data-title='退出全屏']").click(); //直播间
            MUH_tips("退出全屏");
        }else if(jq(".bilibili-live-player-video-controller-btn-item.bilibili-live-player-video-controller-fullscreen-btn").children("button").attr("data-title") == '全屏模式'){
            jq("button[data-title='全屏模式']").click(); //直播间
            MUH_tips("全屏模式");
        }
    }else{
        if(Full_screen_flag){
            jq("button[data-text='进入全屏']").click(); //主站
            MUH_tips("退出全屏");
            Full_screen_flag = false;
        }else{
            jq("button[data-text='进入全屏']").click(); //主站
            MUH_tips("全屏模式");
            Full_screen_flag = true;
        }
    }

}
var Barrage_flag = (jq(".choose_danmaku").text() == "关闭弹幕") ? true : false;
function click_Barrage(){
    if(is_now_live_url){
        if(jq(".bilibili-live-player-video-controller-btn-item.bilibili-live-player-video-controller-hide-danmaku-btn").children("button").attr("data-title") == '显示弹幕'){
            jq("button[data-title='显示弹幕']").click(); //直播间
            MUH_tips("显示弹幕");
        }else if(jq(".bilibili-live-player-video-controller-btn-item.bilibili-live-player-video-controller-hide-danmaku-btn").children("button").attr("data-title") == '隐藏弹幕'){
            jq("button[data-title='隐藏弹幕']").click(); //直播间
            MUH_tips("隐藏弹幕");
        }
    }else{
        jq(".bui-switch-input").click(); //主站
        if(Barrage_flag){
            MUH_tips("关闭弹幕");
            Barrage_flag = false;
        }else{
            MUH_tips("显示弹幕");
            Barrage_flag = true;
        }
    }
}
var video_flag = false;
function stop_video(){
    if(is_now_live_url){
        if(jq(".bilibili-live-player-video-controller-btn-item.bilibili-live-player-video-controller-start-btn").children("button").attr("data-title") == '暂停'){
            jq("button[data-title='暂停']").click(); //直播间
            MUH_tips("暂停");
        }else if(jq(".bilibili-live-player-video-controller-btn-item.bilibili-live-player-video-controller-start-btn").children("button").attr("data-title") == '播放'){
            jq("button[data-title='播放']").click(); //直播间
            MUH_tips("播放");
        }
    }else{
        jq("button[aria-label='播放']").click(); //主站
        if(video_flag){
            MUH_tips("暂停");
            video_flag = false;
        }else{
            MUH_tips("播放");
            video_flag = true;
        }
    }
}
function jump_historical_view(){
    if(!is_now_live_url){
        jq(".bilibili-player-video-toast-item-jump").click(); //主站
        MUH_tips("已跳转播放");
    }
}
jq(document).ready(function() {
    jq(document).keydown(function(event){
        //调用键盘编码,按了键盘回调keydown里的function(event)函数,event就是你按的那个按键的code码
        switch(event.keyCode){
            case 播放暂停:
                stop_video();
                break;
            case 开关弹幕:
                click_Barrage();
                break;
            case 全屏模式:
                click_Full_screen();
                break;
            case 网页全屏:
                click_web_Full_screen();
                break;
            case 宽屏模式:
                click_wide_screen();
                break;
            case 增加倍速:
                add_video_speed();
                break;
            case 减少倍速:
                sub_video_speed();
                break;
            case 清空倍速:
                reset_video_speed();
                break;
            case 跳转播放:
                jump_historical_view();
                break;
        };
    });
});

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址