自动填分区

自动选b站开播分区

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name         自动填分区
// @namespace    https://github.com/spacemeowx2
// @version      0.1
// @description  自动选b站开播分区
// @author       You
// @match        https://link.bilibili.com/p/center/index
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    function retry(cb) {
        return new Promise((res, rej) => {
            const f = () => {
                try {
                    const r = cb()
                    if (r) {
                        res(r)
                    } else {
                        setTimeout(f, 500)
                    }
                } catch (e) {
                    rej(e)
                }
            }
            f()
        })
    }

    retry(() => {
        const b = document.querySelector('.blink.blue.category-toggle')
        if (!b) return
        if (b.textContent === '选择分类') {
            return b
        } else {
            throw new Error('already select')
        }
    }).then(btn => {
        console.log('btn', btn)
        btn.click()
        return retry(() => {
            const b = document.querySelector('.p-relative.latest .p-relative')
            if (!b) return
            return b
        })
    }).then(btn => {
        btn.click()
    })
})();