// ==UserScript== // @name B站简化 // @namespace http://tampermonkey.net/ // @version 0.6.0 // @description 简化B站 // @author huanfei // @match *.bilibili.com/* // @match https://t.bilibili.com/* // @icon https://www.google.com/s2/favicons?sz=64&domain=bilibili.com // @grant GM_addStyle // @grant GM_xmlhttpRequest // @grant GM_setValue // @grant GM_getValue // @connect app.bilibili.com // @connect api.bilibili.com // @connect www.mcbbs.net // @connect passport.bilibili.com // @license WTFPL // @run-at document-start // @downloadURL none // ==/UserScript== (function () { "use strict"; var url = window.location.href; var style = ""; var recommendData = new Array(); var accessKey = GM_getValue("accessKey") ? GM_getValue("accessKey") : ""; if (url.split("/")[2] == "www.bilibili.com") { switch (url.split("/")[3]) { case "": console.log("首页"); homePage(); break; case "video": console.log("播放页"); videoPlay(); break; case "read": console.log("文章页"); readPage(); break; } } else if (url.split("/")[2] == "t.bilibili.com") { console.log("动态"); dynamic(); } GM_addStyle(style); console.log("样式表已添加"); function homePage() {} function dynamic() { // 精选评论 style += ".bili-dyn-item__interaction{display:none;}"; // 右上角贴纸 style += ".bili-dyn-item__ornament{display:none;}"; // 头像边框 style += ".bili-avatar-pendent-dom{display:none;}"; // 右上角按钮 style += ".bili-dyn-item__more{display:none;}"; // 右边话题 style += "aside.right .sticky{display:none;}"; let timer = setInterval(function () { if (document.querySelector("aside.right")) { clearInterval(timer); if (!accessKey) { getAccessKey(); } setRecommend(); getRecommendData(); scrollRefsh(); } }); } function videoPlay() { // 播放页关注按钮 style += ".bilibili-player-video-top-follow{display:none !important;}"; // 广告 style += ".ad-report{display:none !important}"; // 头像框 style += ".bili-avatar-pendent-dom{display:none;}"; // 右上角贴纸 style += ".reply-decorate{display:none;}"; // 粉丝牌 style += ".fan-badge{display:none !important;}"; // 大家都围观的直播 style += ".pop-live-small-mode{display:none;}"; // 活动 style += ".activity-m-v1{display:none;}"; // 充电页面 style += ".bpx-player-electric-wrap{opacity:0;}"; // 联合创作页面作者头像下面的关注按钮 style += ".attention{display:none !important;}"; let timer = setInterval(function () { if (document.querySelector(".bilibili-player-popup-padding")) { // 跳过充电页面 document.querySelector("div.bilibili-player-video > *").addEventListener("ended", function () { let timer = setInterval(function () { if (document.querySelector(".bilibili-player-electric-panel")) { document.querySelector("div.bilibili-player-electric-panel-jump").click(); console.log("跳过充电页面"); clearInterval(timer); } }); }); // 删除播放窗口弹出窗口 if (document.querySelector(".bilibili-player-popup-padding")) { document.querySelector(".bilibili-player-popup-padding").remove(); console.log("删除弹出窗口"); } clearInterval(timer); } }); } function readPage() { // 专栏去除复制小尾巴 window.onload = function () { [...document.querySelectorAll("*")].forEach((item) => { item.oncopy = function (e) { e.stopPropagation(); }; }); }; } function setRecommend() { // 设置推荐元素 let style = ` .recommend_switch{display:flex;align-items:center;margin:0 15px 0 auto} .recommend_switch p{color:#6D757A;font-size:14px;line-height:100%} .switch_button{position:relative;margin-left:15px;width:35px;height:20px;border-radius:10px;background:#9499A0;cursor:pointer} .switch_button::before{position:absolute;top:2px;left:3px;width:16px;height:16px;border-radius:100%;background-color:#FFFFFF;content:'';transition:all 0.2s} .switch_button.on{background:#00A1D6} .switch_button.on::before{left:16px} .recommend_content{margin-bottom:8px;padding:10px;border-radius:5px;background-color:#FFFFFF} .video_content{position:relative;display:flex;width:100%} .video_content .preview_pic{position:absolute;top:0;width:100%;height:-moz-available;height:-webkit-fill-available} .video_content img{width:100%} .video_content:hover .video_mask{opacity:0} .video_mask{position:absolute;bottom:0;display:flex;align-items:center;justify-content:space-between;box-sizing:border-box;padding:16px 8px 6px;width:100%;background-image:linear-gradient(180deg,rgba(0,0,0,0) 0,rgba(0,0,0,0.8) 100%);color:#FFFFFF;font-size:14px;font-size:13px;line-height:18px;transition:opacity 1s} .video_mask .views{display:flex;align-items:center} .video_mask .views svg{margin-right:3px;width:18px;height:18px} .video_mask .views .num{margin:0} .video_mask .views p:nth-child(2){margin-right:10px} .video_mask .duration{height:100%} .video_text{margin-top:10px} .video_text a:hover{color:#00AEEC} .video_text .video_title{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;text-overflow:ellipsis;font-size:16px;-webkit-line-clamp:2;overflow-wrap:anywhere} .video_text .owner{display:flex;margin-top:5px;color:#9499A0;font-size:14px} .video_text .owner .up_name{display:flex} .video_text .owner .up_name svg{margin-right:5px;width:18px;height:18px} .video_text .owner p{margin:0;line-height:18px} .video_text .owner .time{margin-left:10px} .video_content:hover .video_mark{opacity:1} .video_mark{position:absolute;top:10px;right:10px;width:22px;height:22px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAABT0lEQVQ4je3VMYrCQBTG8b/DWASLNKJgJ1hY2sloZeF2gkeYW+wZvIVXsLBJY5UdtLJLk17EIghCwChukWRxFzSaaLdfMwm8/EgemTclgOl02gEmwAAoky8RsAA+tdbrUoJ+AVZO8G9CoCeJ39Sq1+sopbBtO5e23+8xxrDdbi1gIog/vxAKYNs2Sqn0diBIenoP9X2fIAgyccv66WZZZBXvdjtc18UYkwlfJxM+n8+/1pfBefMPPw4LEZcEQcBqteJ0Or0GrlartFotLpcLnucxm83YbDbFYSEE/X6f4XBIpVLhcDjgOA6u63I8HvPDaRqNBuPxmHa7DcS7cT6f36yXj8IAUkq63S7NZpPlcomUtx9/Ck5Tq9UYjUZ3a976u0UQz9OiCcMwvYwk8XHyYYxBKXU9+p5Grybg4m1Hk9Bar4Ee4JC0JWeixOhprdffE/1yRW/TLMYAAAAASUVORK5CYII=);background-position:50%;background-size:cover;background-repeat:no-repeat;opacity:0;transition:opacity 0.2s cubic-bezier(0.22,0.58,0.12,0.98)} .video_mark.active{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAABiklEQVQ4jbXVzyvDcRzH8efns1+JIRtbOSiKrMRBrZZC5IzcHJYTJyc1J464ubuY5MQ/oLSTNSHfIg5KyEmbzY/5sa++c/hOCtv47rvX8f2pR+/3u0+fjwAgfNoFLAH9gA1jUYEIECLoU0QOjQIVBsHveQECEr1Ts1By1pJEH9/s9EuM77RQbLIMKACG4QaHhYNBL7EBj3lwtU2yFXDT6rRil8Ic2C4F634XnbU24m8aY9F46bAUsNJdR1+9g6f3LKPROBfp99LhxY5aRhorULUs43sJlFQmfxO/FWMDHpQhL+3VXzdxps3JVEsVAJOHSSK3rwWbsP5WtAhorrSy09vAxH6CeoeFOV8NALPHKTZvnovMBoLwafZ7sc4uWfe76HE70HKnUsDy+SNzJ/dFUciziruMxvBunNXLNFLo6Mb1M/N/RCHPKgAyWpbpoyQHdxmaKi0snD3wYzQj8GfWrtL/4L5S1rdCLYOrSvTvxOxEJBBC/07MygsQkgR9ChAAtiltLWrOCBD0KR9smmovo1v+1QAAAABJRU5ErkJggg==)} .video_mark:hover .video_mark_text{opacity:1} .video_mark_text{position:absolute;top:-27px;left:50%;box-sizing:border-box;padding:6px 8px;border-radius:4px;background:rgba(0,0,0,0.7);color:#FFFFFF;white-space:nowrap;font-size:12px;line-height:12px;opacity:0;transform:translateX(-50%)} .preview_pic{display:none} .preview_bar{box-sizing:border-box;width:100%;height:10px;border:solid #000000;border-top-width:4px;border-right-width:8px;border-bottom-width:4px;border-left-width:8px;background-color:#444444} .bar_content{width:100%;height:2px;background-color:#FFFFFF} `; GM_addStyle(style); let main = document.createElement("div"); main.id = "dynamic_recommend"; document.querySelector("aside.right").appendChild(main); // 推荐开关 let recommend_switch = document.createElement("div"); recommend_switch.className = "recommend_switch"; recommend_switch.innerHTML = `
推荐视频
`; document.querySelector(".bili-dyn-list-tabs__list").appendChild(recommend_switch); let button = recommend_switch.querySelector(".switch_button"); // 按钮点击 button.onclick = function () { if (button.classList.contains("on")) { button.classList.remove("on"); GM_setValue("recommend_status", false); } else { button.classList.add("on"); GM_setValue("recommend_status", true); } recommendShow(); }; recommendShow(); function recommendShow() { if (button.classList.contains("on")) { main.style.display = "block"; } else { main.style.display = "none"; } } } function addRecommend() { // 添加推荐视频 let data = recommendData.pop(); let url = `https://www.bilibili.com${data.goto == "av" ? `/video/av${data.param}` : data.uri}`; let text = `${numConverter.view( data.play )}
${numConverter.view( data.like )}
${ data.name }
${numConverter.getTime(data.ctime).mini}