// ==UserScript== // @name Make BiliBili Grate Again // @namespace https://www.kookxiang.com/ // @version 1.1.0 // @description useful tweaks for bilibili.com // @author kookxiang // @match https://*.bilibili.com/* // @grant unsafeWindow // @downloadURL none // ==/UserScript== let customStyle = ` .home-content { width: calc(100vw - 60px) !important; min-width: 1160px; } .home-content .center-panel { flex: 1 !important; } .home-content .center-panel .card .main-content { width: calc(100% - 120px) !important; } ` // 动态页面优化 if (location.host === "t.bilibili.com") { customStyle += ` #internationalHeader { position: sticky !important; top: 0; } .home-content .left-panel .scroll-content { top: 56px !important; } .home-content .right-panel .scroll-content { top: 64px !important; } ` } // 去广告 if (unsafeWindow.__INITIAL_STATE__ && unsafeWindow.__INITIAL_STATE__.locsData) { for (const key in unsafeWindow.__INITIAL_STATE__.locsData) { if (!Array.isArray(unsafeWindow.__INITIAL_STATE__.locsData[key])) { continue; } unsafeWindow.__INITIAL_STATE__.locsData[key] = unsafeWindow.__INITIAL_STATE__.locsData[key].filter(x => !x.is_ad) } } // 修复文章区复制 if (location.href.startsWith('https://www.bilibili.com/read/cv')) { unsafeWindow.original.reprint = "1" document.querySelector('.article-holder').classList.remove("unable-reprint") document.querySelector('.article-holder').addEventListener('copy', e => e.stopImmediatePropagation(), true) } // 视频裁切 if (location.href.startsWith('https://www.bilibili.com/video/')) { customStyle += ` .bilibili-player-video-btn-setting-left-fit-mode { display: flex; width: 100%; height: 32px; line-height: 32px; } .bilibili-player-video-btn-setting-box.bui-panel .bui-panel-wrap, .bilibili-player-video-btn-setting-box.bui-panel .bui-panel-item { min-height: 172px !important; } ` let timer; function injectButton() { if (!document.querySelector('.bilibili-player-video-btn-setting-left')) { return } clearInterval(timer) const parent = document.querySelector('.bilibili-player-video-btn-setting-left') const item = document.createElement('div') item.className = 'bilibili-player-video-btn-setting-left-fit-mode bui bui-switch' item.innerHTML = '' parent.insertBefore(item, document.querySelector('.bilibili-player-video-btn-setting-left-more')) document.querySelector('.bilibili-player-video-btn-setting-left-fit-mode input').addEventListener('change', e => { document.querySelector('.bilibili-player-video video').style.objectFit = e.target.checked ? 'cover' : '' }) document.querySelector('.bilibili-player-video-btn-setting-box .bui-panel-item').style.height = '' } timer = setInterval(injectButton, 100) } const style = document.createElement('style') style.textContent = customStyle document.head.appendChild(style)