🏠 返回首頁 

Greasy Fork is available in English.

小蓝B站下载器功能优化

隐藏小蓝B站下载器捐赠页面,优化下载按钮图形和位置

// ==UserScript==
// @name         小蓝B站下载器功能优化
// @namespace    http://tampermonkey.net/
// @version      3.1
// @description  隐藏小蓝B站下载器捐赠页面,优化下载按钮图形和位置
// @author       tutu辣么可#
// @include      *://*.bilibili.com/video/*
// @license      MIT
// ==/UserScript==
(function() {
//AddBtn方法用于添加一个新下载图标
function AddBtn(HostObj) {
//AddBtnFlag置false,停止循环执行AddBtn方法
AddBtnFlag = false;
//获取、创建所需元素
var a = document.getElementsByClassName("ops")[0];
var b = document.createElement("span");
var c = document.createElementNS("http://www.w3.org/2000/svg", "svg");
var d = document.createElementNS("http://www.w3.org/2000/svg", "path");
var e = document.createElement("span");
var f = HostObj.shadowRoot.querySelector("#main");
var g = HostObj.shadowRoot.querySelector("#toggle");
//构建新按钮
b.title = "下载";
b.setAttribute("class", "download");
c.setAttribute("xmlns", "http://www.w3.org/2000/svg");
c.setAttribute("viewBox", "0 0 34 34");
c.style = "width: 34px; height: 34px; left: -3px; top: -3px;";
c.setAttribute("class", "ring-progress");
c.setAttribute("fill", "#757575");
d.setAttribute("d", "M13 8h8v8h-8z M9 16L25 16 17 25z M6 25h22v2h-22z M6 21h2v4h-2z M26 21h2v4h-2z");
e.innerText = "下载";
e.style = "padding-left:34px;color:#505050;";
//改变原页面标题
f.children[0].innerText = "小蓝B站视频下载器(优化版)";
//新按钮加上鼠标悬停/离开/点击功能
b.onmouseover = function() {
c.setAttribute("fill", "#00a1d6");
e.style.color = "#00a1d6";
}
b.onmouseleave = function() {
c.setAttribute("fill", "#757575");
e.style.color = "#505050";
}
b.onclick = function() {
g.click();
}
//在页面上添加新按钮
a.appendChild(b);
b.appendChild(c);
b.appendChild(e);
c.appendChild(d);
}
//HideFn方法用于隐藏原下载界面相关部分
function HideFn(HostObj) {
//运行成功标志
var operation0 = false;
var operation1 = false;
//从bilibili-helper-host中获取id为side-bar的对象,这个对象就是捐赠部分
var SideBar = HostObj.shadowRoot.querySelector("#side-bar");
//从bilibili-helper-host中获取id为bilibliHelperLogs的对象,这个对象就是日志部分
var HelperLogs = HostObj.shadowRoot.querySelector("#bilibliHelperLogs");
//以防万一,先确认对象存在,再进行下一步
if (SideBar) {
//隐藏捐赠部分
SideBar.style.display = "none";
//隐藏成功,运行标志operation0置true
operation0 = true;
}
if (HelperLogs) {
//日志宽度重设
HelperLogs.style.width = "100%";
HelperLogs.style.maxWidth = "max-content";
//重设成功,运行标志operation1置true
operation1 = true;
}
//全部操作都成功,HideFnFlag置false,停止循环执行HideFn方法
if (operation0 && operation1) {
HideFnFlag = false;
}
}
//隐藏或显示原下载页面
function OriginDisplayStyle(HostObj) {
//获取原下载按钮内容
var a = HostObj.shadowRoot.querySelector("#toggle").innerText;
//获取原下载页面主体框架
var b = HostObj.shadowRoot.querySelector("#content");
//通过判断原下载按钮内容来显示/隐藏原下载页面
if (a === "收起") {
b.style.display = "";
} else {
b.style.display = "none";
}
}
//主程序部分
//运行标志
var HideFnFlag = true;
var AddBtnFlag = true;
//启动定时器,间隔为200ms
var Timer = setInterval(function() {
//ID为bilibili-helper-host的元素就是原下载页面部分
var HostObj = document.getElementById("bilibili-helper-host");
//通过判断HostObj是否存在来判断是否启动了相关扩展
if (HostObj) {
//循环执行OriginDisplayStyle方法
OriginDisplayStyle(HostObj);
//通过HideFnFlag判断是否需要执行HideFn方法
if (HideFnFlag) {
HideFn(HostObj);
}
//通过AddBtnFlag判断是否需要执行AddBtn方法
if (AddBtnFlag) {
//视频总时长元素
let LoadFinishFlag = document.getElementsByClassName("bilibili-player-video-time-total")[0];
//只有播放器、视频加载完毕(判断标准:视频总时长元素存在且不为00:00)才执行AddBtn方法
if (LoadFinishFlag && LoadFinishFlag.innerText !== "00:00") {
AddBtn(HostObj);
}
}
}
}, 200);
console.log("小蓝B站下载器功能优化启动(定时器ID:" + Timer + ")");
})();