Greasy Fork is available in English.
隐藏小蓝B站下载器捐赠页面,优化下载按钮图形和位置
当前为
// ==UserScript==
// @name 小蓝B站下载器功能优化
// @namespace http://tampermonkey.net/
// @version 2.0
// @description 隐藏小蓝B站下载器捐赠页面,优化下载按钮图形和位置
// @author 那年那兔那些事
// @include *://*.bilibili.com/video/*
// ==/UserScript==
(function() {
function AddBtn(HostObj) {
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("#toggle");
var g = document.createElement("button");
var h = HostObj.shadowRoot.querySelector("#main");
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.style.display = "none";
f.parentElement.style.marginTop = "20px";
f.parentElement.style.marginRight = "20px";
g.style =
"border:0 none;border-radius:6px;outline:none;cursor:pointer;background:#00A1D6;color:#fff;padding:10px 20px;display:none";
g.innerText = "隐藏";
g.id = "newHideBtn";
h.children[0].innerText = "小蓝B站视频下载器(优化版)";
h.parentElement.style.display = "none";
g.onclick = function() {
g.style.display = "none";
f.click();
h.parentElement.style.display = "none";
}
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() {
f.click();
h.parentElement.style.display = "";
g.style.display = "";
}
a.appendChild(b);
b.appendChild(c);
b.appendChild(e);
c.appendChild(d);
if (f.parentElement.childElementCount > 1) {
for (let i = 1; i < f.parentElement.childElementCount; i++) {
f.parentElement.children[i].remove();
}
}
f.parentElement.appendChild(g);
AddBtnFlag = false;
}
//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";
//隐藏成功,返回值置false
operation0 = true;
}
if (HelperLogs) {
//日志宽度重设
HelperLogs.style.width = "100%";
HelperLogs.style.maxWidth = "max-content";
//重设成功,返回值置false
operation1 = true;
}
if (operation0 && operation1) {
//全部操作都成功,HideFnFlag置false
HideFnFlag = false;
}
}
//RunFn()方法用于执行所有功能
function RunFn(HostObj) {
//先确认HostObj对象存在,再进行下一步
if (HostObj) {
if (HideFnFlag) {
HideFn(HostObj);
}
if (AddBtnFlag) {
AddBtn(HostObj);
}
}
}
function RunMonitor(HostObj) {
//先确认HostObj对象存在,再进行下一步
if (HostObj) {
var SideBar = HostObj.shadowRoot.querySelector("#side-bar");
var HelperLogs = HostObj.shadowRoot.querySelector("#bilibliHelperLogs");
var DownloadBtn = document.getElementsByClassName("download")[0];
if (SideBar.style.display !== "none" || HelperLogs.style.width !== "100%" || HelperLogs.style
.maxWidth !== "max-content") {
HideFnFlag = true;
console.log("HideFn运行错误,重启HideFn");
}
if (DownloadBtn === undefined) {
AddBtnFlag = true;
console.log("AddBtn运行错误,重启AddBtn");
}
}
}
//运行标志
var HideFnFlag = true;
var AddBtnFlag = true;
var RunMonitorFlag = false;
//获取id为bilibili-helper-host的对象
var HostObj;
//定时器循环,间隔为200ms
var Timer = setInterval(function() {
HostObj = document.getElementById("bilibili-helper-host");
//通过RunMonitorFlag启动运行监控
if (RunMonitorFlag) {
RunMonitor(HostObj);
}
//只要有一个功能需要运行就运行RunFn
if (HideFnFlag || AddBtnFlag) {
RunFn(HostObj);
//启动运行监控
RunMonitorFlag = true;
}
}, 200);
console.log("小蓝B站下载器功能优化开始,启动定时器(ID:" + Timer + ")")
//2s超时
setTimeout(function() {
//结束200ms的定时器
clearInterval(Timer);
var success = 0;
var fail = 0;
if (HideFnFlag) {
fail += 1;
} else {
success += 1;
}
if (AddBtnFlag) {
fail += 1;
} else {
success += 1;
}
var msg = "小蓝B站下载器功能优化运行结束,释放定时器(ID:" + Timer + "):\n优化成功 " + success + " 个功能,优化失败 " + fail +
" 个功能";
console.log(msg);
}, 5000);
})();