您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
修改cookie回到旧版B站主页(脚本已失效可以删除)
当前为
"use strict"; // ==UserScript== // @name 回到旧版B站主页(已失效) // @namespace http://salt.is.lovely/ // @version 0.1.4-tip1 // @description 修改cookie回到旧版B站主页(脚本已失效可以删除) // @author salt // @license MulanPSL2 // @match https://*.bilibili.com/* // @icon https://www.bilibili.com/favicon.ico // @run-at document-start // @grant none // @noframes // ==/UserScript== // 开源在 github https://github.com/Salt-lovely/salt-bili-back // 在 https://greasyfork.org/zh-CN/scripts/475203 安装 /* Copyright (c) 2023 Salt_lovely 回到旧版B站主页 is licensed under Mulan PSL v2. You can use this software according to the terms and conditions of the Mulan PSL v2. You may obtain a copy of Mulan PSL v2 at: http://license.coscl.org.cn/MulanPSL2 THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. See the Mulan PSL v2 for more details. */ (() => { // node_modules/salt-lib/lib/storage/localStorage.js function innerParse(str) { if (str) { try { return JSON.parse(str); } catch (e) { } } return null; } function write(key, value) { localStorage.setItem(key, JSON.stringify(value)); } function unsafeRead(key) { const storage = localStorage.getItem(key); return innerParse(storage); } function listen(listener, options = { passive: true }) { window.addEventListener("storage", listener, options); return () => window.removeEventListener("storage", listener, options); } function readAndListen(props) { const { key, defaultValue, listener, callOnChange = true, options = { passive: true } } = props; let v = unsafeRead(key); if (defaultValue !== void 0 && v === null) { write(key, defaultValue); v = defaultValue; } const fn = (ev) => { if (ev.key !== key || ev.storageArea !== localStorage) return; const newValue = innerParse(ev.newValue); const oldValue = innerParse(ev.oldValue); if (callOnChange && newValue === oldValue) return; const encapsulatedEvent = { key, newValue, oldValue, storageArea: ev.storageArea, url: ev.url }; listener(encapsulatedEvent); }; const off = listen(fn, options); return [v, off]; } // src/utils.ts var defaultExpires = new Date(3398759114e3); var defaultDomain = ".bilibili.com"; var NEW_UI = 0; var OLD_UI = 1; var TRADITION_UI = 2; var STORAGE_KEY = "salt-lovely-bili-tool"; function deleteCookie(name, domain = defaultDomain) { setCookie(name, "", defaultExpires, domain); } function setCookie(name, value = "", expires = defaultExpires, domain = defaultDomain) { document.cookie = `${name}=${value};expires=${expires};path=/;domain=${domain}`; } function genResetCookieFn({ delMap, setMap }) { console.log(`设置成功`); if (delMap) console.log(`将强制清除这些cookie: ${delMap.join(", ")}`); if (setMap) console.log(`将强制接管这些cookie: ${Object.keys(setMap).join(", ")}`); return () => { if (delMap) delMap.forEach((c) => deleteCookie(c)); if (setMap) Object.keys(setMap).forEach((c) => setCookie(c, setMap[c])); }; } // src/index.tsx if (window.isSaltGoBackBilibiliInit) { console.log( ` 检测到重复启用盐酱牌回到旧版B站主页脚本 请检查您的脚本安装是否正确 ` ); } else { window.isSaltGoBackBilibiliInit = true; let interval = 0; const setNewUI = () => { clearInterval(interval); setCookie("i-wanna-go-back", "0"); }; const setOldUI = () => { clearInterval(interval); const resetFn = genResetCookieFn({ delMap: ["buvid3"], setMap: { "i-wanna-go-back": "1", "i-wanna-go-feeds": "-1", nostalgia_conf: "2" } }); interval = setInterval(resetFn, 500); }; const setTraditionalUI = () => { clearInterval(interval); const resetFn = genResetCookieFn({ delMap: ["buvid3", "buvid4", "buvid_fp"], setMap: { "i-wanna-go-back": "1", "i-wanna-go-feeds": "1", nostalgia_conf: "2" } }); interval = setInterval(resetFn, 500); }; const setUICookie = (value2) => { switch (value2) { case NEW_UI: setNewUI(); break; case OLD_UI: setOldUI(); break; case TRADITION_UI: setTraditionalUI(); break; case null: setNewUI(); break; default: console.log("无法识别的UI模式", value2); setOldUI(); } }; const [value] = readAndListen({ key: `${STORAGE_KEY}-ui-version`, defaultValue: OLD_UI, listener: (ev) => { const { newValue } = ev; setUICookie(newValue); } }); setUICookie(value); console.log( ` 欢迎使用盐酱牌回到旧版B站主页脚本! 下个版本将会在屏幕底部添加切换按钮 ` ); } })();