Greasy Fork

Greasy Fork is available in English.

Bilibili 自动切P

为什么要单独写个脚本呢?因为B站的自动连播就是个傻逼……

当前为 2021-09-12 提交的版本,查看 最新版本

// ==UserScript==
// @name         Bilibili 自动切P
// @namespace    https://github.com/Tsuk1ko
// @version      1.0.0
// @description  为什么要单独写个脚本呢?因为B站的自动连播就是个傻逼……
// @author       神代綺凛
// @match        https://www.bilibili.com/video/*
// @icon         https://www.bilibili.com/favicon.ico
// @grant        unsafeWindow
// @run-at       document-start
// ==/UserScript==

(() => {
    'use strict';

    const PLAYER_EVENT = {
        VIDEO_MEDIA_ENDED: 'video_media_ended',
        VIDEO_DESTROY: 'video_destroy',
    };

    const win = typeof unsafeWindow === 'undefined' ? window : unsafeWindow;

    const initPlayer = () => {
        const { player } = win;
        if (!player) return;
        player.on(PLAYER_EVENT.VIDEO_MEDIA_ENDED, () => {
            player.next();
        });
        player.on(PLAYER_EVENT.VIDEO_DESTROY, () => {
            setTimeout(initPlayer);
        });
    };

    Object.defineProperty(win, 'player', {
        configurable: true,
        set: player => {
            delete win.player;
            win.player = player;
            initPlayer();
        },
    });
})();