Greasy Fork

Greasy Fork is available in English.

Acfun 观影助手

Acfun 视频播放和直播自动切换为宽屏和最高画质

当前为 2025-06-02 提交的版本,查看 最新版本

// ==UserScript==
// @name         Acfun 观影助手
// @namespace 	 AcfunFilmModeSwitch
// @version      0.5
// @description  Acfun 视频播放和直播自动切换为宽屏和最高画质
// @author       Jianeddie
// @match      *://*.acfun.cn/v/ac*
// @match      *://*.acfun.cn/live/*
// @connect      www.acfun.cn
// @license MIT
// ==/UserScript==

function sleep (time) {
    return new Promise((resolve) => setTimeout(resolve, time));
}

function reset()
{
    let rd = document.querySelector('.right-column.dark-style');

    if (rd !== null){
        let ck = Math.trunc(innerHeight * 0.85);
        document.getElementById("ACPlayer").style.cssText = "height: "+ ck +"px";
    }
}

function filmmode()
{
    sleep(1200).then(() => {
        try{
            let bm = document.querySelector('.btn-film-model');

            if (bm.querySelector('.btn-span').getAttribute('data-bind-attr')=='false')
            {
                bm.click();
                bm.querySelector('.btn-span').setAttribute('data-bind-attr', 'true');
            }

            sleep(1200).then(() => {
                let rd = document.querySelector('.right-column.dark-style');

                if (rd == null){
                    bm.click();
                    bm.querySelector('.btn-span').setAttribute('data-bind-attr', 'false');

                    bm.click();
                    bm.querySelector('.btn-span').setAttribute('data-bind-attr', 'true');
                }

                let rc = document.querySelector('.right-column');

                if (rc !== null){
                    let ck = Math.trunc(innerHeight * 0.85);
                    document.getElementById("ACPlayer").style.cssText = "height: "+ ck +"px";
                }
                document.querySelector(".quality-panel ul li").click();
            });

        }catch(err){
            //console.log("filmmodeClcik error:"+err);
            return sleep(100).then(() => {filmmode();});
        }
    });
}

window.onload = filmmode;
window.onresize = reset;

sleep(4000).then(() => {
    let rc = document.querySelector('.right-column');

    if (rc !== null){
        let bm = document.querySelector('.btn-film-model');
        bm.addEventListener('click', function(){
            sleep(100).then(() => {reset();});
        });
    }
});