mirror of
https://github.com/the1812/Bilibili-Evolved.git
synced 2025-11-04 21:22:45 +08:00
Add remember danmaku block settings
This commit is contained in:
parent
bbe3cda75d
commit
83affb0099
@ -21,6 +21,7 @@
|
||||
"no-extra-semi": 1,
|
||||
"no-extra-parens": 1,
|
||||
"no-irregular-whitespace": 0,
|
||||
"no-inner-declarations": 0,
|
||||
"no-undef": 0,
|
||||
"no-unused-vars": 0,
|
||||
"no-underscore-dangle": 1,
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
// ==UserScript==
|
||||
// @name Bilibili Evolved (Offline)
|
||||
// @version 157.03
|
||||
// @version 157.06
|
||||
// @description 增强哔哩哔哩Web端体验(离线版): 修复界面瑕疵, 删除广告, 使用夜间模式浏览; 下载视频,封面,弹幕, 以及增加对触屏设备的支持等.
|
||||
// @author Grant Howard, Coulomb-G
|
||||
// @copyright 2018, Grant Howrad (https://github.com/the1812)
|
||||
@ -66,7 +66,7 @@
|
||||
top: false,
|
||||
bottom: false,
|
||||
color: false,
|
||||
magic: false,
|
||||
special: false,
|
||||
},
|
||||
autoLightOff: false,
|
||||
useCache: true,
|
||||
@ -799,6 +799,10 @@
|
||||
});
|
||||
}
|
||||
}
|
||||
static select(query, action, failed)
|
||||
{
|
||||
return SpinQuery.condition(query, it => it !== null, action, failed);
|
||||
}
|
||||
static any(query, action, failed)
|
||||
{
|
||||
return SpinQuery.condition(query, it => it.length > 0, action, failed);
|
||||
@ -1043,7 +1047,7 @@ offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/m
|
||||
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/auto-continue.min.js"] = (()=>{return(t,e)=>{function i(t){const e=/((\d)*:)?(\d)*:(\d)*/g;const i=t.text();const n=i.match(e);if(!n){return}const r=n[0].split(":");const o=(()=>{if(r.length===3){const[t,e,i]=r.map(t=>parseInt(t));return t*60*60+e*60+i}else if(r.length===2){const[t,e]=r.map(t=>parseInt(t));return t*60+e}else{logError(`解析历史时间发生错误: historyTime=${JSON.stringify(r)}`);return NaN}})();const s=t.parent();const c=document.querySelector("video");c.currentTime=o;c.play();s.find(".bilibili-player-video-toast-item-jump").remove();const l=$(`<div class="bilibili-player-video-toast-item-jump">从头开始</div>`);l.appendTo(s).on("click",()=>c.currentTime=0);t.html(`<span>已跳转到上次历史记录</span><span>${n[0]}</span>`)}function n(){SpinQuery.condition(()=>$(".bilibili-player-video-toast-item-text"),t=>t.text().indexOf("上次看到")!==-1,t=>i(t.filter((t,e)=>e.innerText.indexOf("上次看到")!==-1)))}Observer.subtree("#bofqi",n)}})();
|
||||
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/expand-description.min.css"] = `.video-desc .info{height:auto!important;}.video-desc .btn{display:none!important;}`;
|
||||
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/expand-description.min.js"] = (()=>{return(e,p)=>{p.applyStyle("expandDescriptionStyle")}})();
|
||||
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/default-danmaku-settings.min.js"] = (()=>{return(n,e)=>{async function a(n,e){const a=await SpinQuery.condition(()=>document.querySelector(n),n=>n!==null);if(!a){return}a.checked=e;raiseEvent(a,"change")}const i={enableDanmaku:".bilibili-player-video-danmaku-switch>input"};if(!n.enableDanmaku){a(i.enableDanmaku,false)}}})();
|
||||
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/default-danmaku-settings.min.js"] = (()=>{return(e,n)=>{async function t(e,n){const t=await SpinQuery.select(()=>document.querySelector(e));if(!t){return}t.checked=n;raiseEvent(t,"change")}const i={enableDanmaku:".bilibili-player-video-danmaku-switch>input",settingsIcon:".bilibili-player-video-danmaku-setting"};if(!e.enableDanmaku){t(i.enableDanmaku,false)}if(e.rememberDanmakuBlock){for(const n in e.danmakuBlockSettings){i[n]=`.bilibili-player-block-filter-type[ftype=${n}]`}async function a(){await SpinQuery.unsafeJquery();const n=await SpinQuery.any(()=>unsafeWindow.$(i.settingsIcon));n.mouseover().mouseout();for(const[n,t]of Object.entries(e.danmakuBlockSettings)){if(t===true){const e=await SpinQuery.select(()=>document.querySelector(i[n]));e.click()}}}async function c(){for(const n in e.danmakuBlockSettings){const t=await SpinQuery.select(()=>document.querySelector(i[n]));t.addEventListener("click",()=>{e.danmakuBlockSettings[n]=t.classList.contains("disabled");saveSettings(e)})}}a();c()}}})();
|
||||
|
||||
class ResourceType
|
||||
{
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
// ==UserScript==
|
||||
// @name Bilibili Evolved (Preview Offline)
|
||||
// @version 157.03
|
||||
// @version 157.06
|
||||
// @description 增强哔哩哔哩Web端体验(预览离线版): 修复界面瑕疵, 删除广告, 使用夜间模式浏览; 下载视频,封面,弹幕, 以及增加对触屏设备的支持等.
|
||||
// @author Grant Howard, Coulomb-G
|
||||
// @copyright 2018, Grant Howrad (https://github.com/the1812)
|
||||
@ -66,7 +66,7 @@
|
||||
top: false,
|
||||
bottom: false,
|
||||
color: false,
|
||||
magic: false,
|
||||
special: false,
|
||||
},
|
||||
autoLightOff: false,
|
||||
useCache: true,
|
||||
@ -799,6 +799,10 @@
|
||||
});
|
||||
}
|
||||
}
|
||||
static select(query, action, failed)
|
||||
{
|
||||
return SpinQuery.condition(query, it => it !== null, action, failed);
|
||||
}
|
||||
static any(query, action, failed)
|
||||
{
|
||||
return SpinQuery.condition(query, it => it.length > 0, action, failed);
|
||||
@ -1043,7 +1047,7 @@ offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/m
|
||||
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/auto-continue.min.js"] = (()=>{return(t,e)=>{function i(t){const e=/((\d)*:)?(\d)*:(\d)*/g;const i=t.text();const n=i.match(e);if(!n){return}const r=n[0].split(":");const o=(()=>{if(r.length===3){const[t,e,i]=r.map(t=>parseInt(t));return t*60*60+e*60+i}else if(r.length===2){const[t,e]=r.map(t=>parseInt(t));return t*60+e}else{logError(`解析历史时间发生错误: historyTime=${JSON.stringify(r)}`);return NaN}})();const s=t.parent();const c=document.querySelector("video");c.currentTime=o;c.play();s.find(".bilibili-player-video-toast-item-jump").remove();const l=$(`<div class="bilibili-player-video-toast-item-jump">从头开始</div>`);l.appendTo(s).on("click",()=>c.currentTime=0);t.html(`<span>已跳转到上次历史记录</span><span>${n[0]}</span>`)}function n(){SpinQuery.condition(()=>$(".bilibili-player-video-toast-item-text"),t=>t.text().indexOf("上次看到")!==-1,t=>i(t.filter((t,e)=>e.innerText.indexOf("上次看到")!==-1)))}Observer.subtree("#bofqi",n)}})();
|
||||
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/expand-description.min.css"] = `.video-desc .info{height:auto!important;}.video-desc .btn{display:none!important;}`;
|
||||
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/expand-description.min.js"] = (()=>{return(e,p)=>{p.applyStyle("expandDescriptionStyle")}})();
|
||||
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/default-danmaku-settings.min.js"] = (()=>{return(n,e)=>{async function a(n,e){const a=await SpinQuery.condition(()=>document.querySelector(n),n=>n!==null);if(!a){return}a.checked=e;raiseEvent(a,"change")}const i={enableDanmaku:".bilibili-player-video-danmaku-switch>input"};if(!n.enableDanmaku){a(i.enableDanmaku,false)}}})();
|
||||
offlineData["https://raw.githubusercontent.com/the1812/Bilibili-Evolved/master/min/default-danmaku-settings.min.js"] = (()=>{return(e,n)=>{async function t(e,n){const t=await SpinQuery.select(()=>document.querySelector(e));if(!t){return}t.checked=n;raiseEvent(t,"change")}const i={enableDanmaku:".bilibili-player-video-danmaku-switch>input",settingsIcon:".bilibili-player-video-danmaku-setting"};if(!e.enableDanmaku){t(i.enableDanmaku,false)}if(e.rememberDanmakuBlock){for(const n in e.danmakuBlockSettings){i[n]=`.bilibili-player-block-filter-type[ftype=${n}]`}async function a(){await SpinQuery.unsafeJquery();const n=await SpinQuery.any(()=>unsafeWindow.$(i.settingsIcon));n.mouseover().mouseout();for(const[n,t]of Object.entries(e.danmakuBlockSettings)){if(t===true){const e=await SpinQuery.select(()=>document.querySelector(i[n]));e.click()}}}async function c(){for(const n in e.danmakuBlockSettings){const t=await SpinQuery.select(()=>document.querySelector(i[n]));t.addEventListener("click",()=>{e.danmakuBlockSettings[n]=t.classList.contains("disabled");saveSettings(e)})}}a();c()}}})();
|
||||
|
||||
class ResourceType
|
||||
{
|
||||
|
||||
@ -65,7 +65,7 @@
|
||||
top: false,
|
||||
bottom: false,
|
||||
color: false,
|
||||
magic: false,
|
||||
special: false,
|
||||
},
|
||||
autoLightOff: false,
|
||||
useCache: true,
|
||||
@ -798,6 +798,10 @@
|
||||
});
|
||||
}
|
||||
}
|
||||
static select(query, action, failed)
|
||||
{
|
||||
return SpinQuery.condition(query, it => it !== null, action, failed);
|
||||
}
|
||||
static any(query, action, failed)
|
||||
{
|
||||
return SpinQuery.condition(query, it => it.length > 0, action, failed);
|
||||
|
||||
@ -65,7 +65,7 @@
|
||||
top: false,
|
||||
bottom: false,
|
||||
color: false,
|
||||
magic: false,
|
||||
special: false,
|
||||
},
|
||||
autoLightOff: false,
|
||||
useCache: true,
|
||||
@ -798,6 +798,10 @@
|
||||
});
|
||||
}
|
||||
}
|
||||
static select(query, action, failed)
|
||||
{
|
||||
return SpinQuery.condition(query, it => it !== null, action, failed);
|
||||
}
|
||||
static any(query, action, failed)
|
||||
{
|
||||
return SpinQuery.condition(query, it => it.length > 0, action, failed);
|
||||
|
||||
2
min/default-danmaku-settings.min.js
vendored
2
min/default-danmaku-settings.min.js
vendored
@ -1 +1 @@
|
||||
(()=>{return(n,e)=>{async function a(n,e){const a=await SpinQuery.condition(()=>document.querySelector(n),n=>n!==null);if(!a){return}a.checked=e;raiseEvent(a,"change")}const i={enableDanmaku:".bilibili-player-video-danmaku-switch>input"};if(!n.enableDanmaku){a(i.enableDanmaku,false)}}})();
|
||||
(()=>{return(e,n)=>{async function t(e,n){const t=await SpinQuery.select(()=>document.querySelector(e));if(!t){return}t.checked=n;raiseEvent(t,"change")}const i={enableDanmaku:".bilibili-player-video-danmaku-switch>input",settingsIcon:".bilibili-player-video-danmaku-setting"};if(!e.enableDanmaku){t(i.enableDanmaku,false)}if(e.rememberDanmakuBlock){for(const n in e.danmakuBlockSettings){i[n]=`.bilibili-player-block-filter-type[ftype=${n}]`}async function a(){await SpinQuery.unsafeJquery();const n=await SpinQuery.any(()=>unsafeWindow.$(i.settingsIcon));n.mouseover().mouseout();for(const[n,t]of Object.entries(e.danmakuBlockSettings)){if(t===true){const e=await SpinQuery.select(()=>document.querySelector(i[n]));e.click()}}}async function c(){for(const n in e.danmakuBlockSettings){const t=await SpinQuery.select(()=>document.querySelector(i[n]));t.addEventListener("click",()=>{e.danmakuBlockSettings[n]=t.classList.contains("disabled");saveSettings(e)})}}a();c()}}})();
|
||||
@ -4,9 +4,7 @@
|
||||
{
|
||||
async function setCheckState(selector, value)
|
||||
{
|
||||
const checkbox = await SpinQuery.condition(
|
||||
() => document.querySelector(selector),
|
||||
it => it !== null);
|
||||
const checkbox = await SpinQuery.select(() => document.querySelector(selector));
|
||||
if (!checkbox)
|
||||
{
|
||||
return;
|
||||
@ -16,10 +14,47 @@
|
||||
}
|
||||
const selectors = {
|
||||
enableDanmaku: ".bilibili-player-video-danmaku-switch>input",
|
||||
settingsIcon: ".bilibili-player-video-danmaku-setting",
|
||||
};
|
||||
if (!settings.enableDanmaku)
|
||||
{
|
||||
setCheckState(selectors.enableDanmaku, false);
|
||||
}
|
||||
if (settings.rememberDanmakuBlock)
|
||||
{
|
||||
for (const type in settings.danmakuBlockSettings)
|
||||
{
|
||||
selectors[type] = `.bilibili-player-block-filter-type[ftype=${type}]`;
|
||||
}
|
||||
async function applyBlockSettings()
|
||||
{
|
||||
await SpinQuery.unsafeJquery();
|
||||
const settingsIcon = await SpinQuery.any(() => unsafeWindow.$(selectors.settingsIcon));
|
||||
settingsIcon.mouseover().mouseout();
|
||||
|
||||
for (const [type, value] of Object.entries(settings.danmakuBlockSettings))
|
||||
{
|
||||
if (value === true)
|
||||
{
|
||||
const element = await SpinQuery.select(() => document.querySelector(selectors[type]));
|
||||
element.click();
|
||||
}
|
||||
}
|
||||
}
|
||||
async function listenBlockSettingsChange()
|
||||
{
|
||||
for (const type in settings.danmakuBlockSettings)
|
||||
{
|
||||
const element = await SpinQuery.select(() =>document.querySelector(selectors[type]));
|
||||
element.addEventListener("click", () =>
|
||||
{
|
||||
settings.danmakuBlockSettings[type] = element.classList.contains("disabled");
|
||||
saveSettings(settings);
|
||||
});
|
||||
}
|
||||
}
|
||||
applyBlockSettings();
|
||||
listenBlockSettingsChange();
|
||||
}
|
||||
};
|
||||
})();
|
||||
Loading…
Reference in New Issue
Block a user