Greasy Fork

Greasy Fork is available in English.

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

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

当前为 2023-07-20 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name               哔哩哔哩(B站)自动回到旧版页面
// @namespace          让我们对新版页面使用炎拳吧
// @description        通过比较与更改 Cookie 来使哔哩哔哩快速自动回到旧版页面
// @version            1.4.0
// @author             Tinhone
// @license            GPL-3.0
// @match              *://*.bilibili.com/*
// @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)
})()