Greasy Fork

Greasy Fork is available in English.

哔哩哔哩(B站)自动回到旧版页面

通过比较与更改 Cookie 来使哔哩哔哩快速自动回到旧版页面

目前为 2023-07-24 提交的版本。查看 最新版本

// ==UserScript==
// @name               哔哩哔哩(B站)自动回到旧版页面
// @namespace          让我们对新版页面使用炎拳吧
// @description        通过比较与更改 Cookie 来使哔哩哔哩快速自动回到旧版页面
// @version            1.4.1
// @author             Tinhone
// @license            GPL-3.0
// @match              *://*.bilibili.com/*
// @exclude            *://www.bilibili.com/v/game/*
// @grant              GM_setValue
// @grant              GM_getValue
// @grant              GM_registerMenuCommand
// @compatible         firefox V35+
// @compatible         edge V35+
// @compatible         chrome V35+
// @icon               https://app.bilibili.com/favicon.ico
// ==/UserScript==

(function () {
    'use strict'

    function setCookie(nameAndValue) {
        document.cookie = `${nameAndValue}; expires=Fri, 1 Jan 2077 00:00:00 GMT; domain=bilibili.com; path=/`
    }

    function deleteCookie(nameAndValue) {
        document.cookie = `${nameAndValue}; expires=Thu, 01 Jan 1970 00:00:00 GMT; domain=bilibili.com; path=/`
    }

    //先赋值,运行速度更快
    const tempCookie = document.cookie
    if (!(
        /i-wanna-go-back\=2;?/.test(tempCookie)
        && /i-wanna-go-channel-back\=2;?/.test(tempCookie)
        && /go_old_video\=1;?/.test(tempCookie)
        && /nostalgia_conf\=2;?/.test(tempCookie)
        && /ogv_channel_version\=v1;?/.test(tempCookie)
        && /go-back-dyn\=1;?/.test(tempCookie)
        && /opus-goback\=1;?/.test(tempCookie)
        && /blackside_state\=0;?/.test(tempCookie)
        && /is-2022-channel\=0;?/.test(tempCookie)
    )) {
        //*.bilibili.com/*
        //全站灰度控制?
        setCookie("blackside_state=0")

        //www.bilibili.com
        //主站首页
        setCookie("i-wanna-go-back=2")

        //www.bilibili.com/v/channel/*
        //频道?
        setCookie("i-wanna-go-channel-back=2")

        //www.bilibili.com/video/*
        //普通视频灰度控制?
        setCookie("is-2022-channel=0")

        //www.bilibili.com/video/*
        //普通视频
        setCookie("go_old_video=1")

        //search.bilibili.com/*
        //搜索
        setCookie("nostalgia_conf=2")

        //www.bilibili.com/*/*
        //二级页面(分区)
        setCookie("ogv_channel_version=v1")

        //t.bilibili.com
        //动态首页
        setCookie("go-back-dyn=1")

        //www.bilibili.com/opus/*
        //OPUS页面(专栏+动态)?这个Cookie没有被正常应用,还不好说
        setCookie("opus-goback=1")

        location.reload()
    }

    function backupAllRemoteControlCookies() {
        const buvid3_cookieNameAndValue = document.cookie.match(/(?<=)buvid3=[\S]*?(?=\;)/)[0]
        GM_setValue("AllRemoteControlCookies", buvid3_cookieNameAndValue)
    }

    function deleteAllRemoteControlCookies() {
        backupAllRemoteControlCookies()

        //*.bilibili.com/*
        //全站灰度控制
        deleteCookie("buvid3=")

        location.reload()
    }

    function rollbackAllRemoteControlCookies() {
        const buvid3_cookieNameAndValue = GM_getValue("AllRemoteControlCookies")
        setCookie(buvid3_cookieNameAndValue)
        location.reload()
    }

    GM_registerMenuCommand("删除所有受远控的 Cookie,请当页面仍是新版时尝试", deleteAllRemoteControlCookies)
    GM_registerMenuCommand("回退所有受远控的 Cookie 到上一个备份", rollbackAllRemoteControlCookies)
})()