diff --git a/src/components/PreferencesPage.vue b/src/components/PreferencesPage.vue index eae7f63c56..8f64ffb7c5 100644 --- a/src/components/PreferencesPage.vue +++ b/src/components/PreferencesPage.vue @@ -275,6 +275,26 @@ + +
@@ -436,6 +456,8 @@ export default { showMarkers: true, minSegmentLength: 0, dearrow: false, + dearrowInclude: "", + dearrowExclude: "", selectedTheme: "dark", autoPlayVideo: true, autoDisplayCaptions: false, @@ -557,6 +579,8 @@ export default { this.showMarkers = this.getPreferenceBoolean("showMarkers", true); this.minSegmentLength = Math.max(this.getPreferenceNumber("minSegmentLength", 0), 0); this.dearrow = this.getPreferenceBoolean("dearrow", false); + this.dearrowInclude = this.getPreferenceString("dearrowInclude", ""); + this.dearrowExclude = this.getPreferenceString("dearrowExclude", ""); this.selectedTheme = this.getPreferenceString("theme", "dark"); this.autoPlayVideo = this.getPreferenceBoolean("playerAutoPlay", true); this.autoDisplayCaptions = this.getPreferenceBoolean("autoDisplayCaptions", false); @@ -618,6 +642,8 @@ export default { localStorage.setItem("minSegmentLength", this.minSegmentLength); localStorage.setItem("dearrow", this.dearrow); + localStorage.setItem("dearrowInclude", this.dearrowInclude); + localStorage.setItem("dearrowExclude", this.dearrowExclude); localStorage.setItem("theme", this.selectedTheme); localStorage.setItem("playerAutoPlay", this.autoPlayVideo); diff --git a/src/main.js b/src/main.js index eff06f928e..9fd5861033 100644 --- a/src/main.js +++ b/src/main.js @@ -521,9 +521,14 @@ const mixin = { }, fetchDeArrowContent(content) { if (!this.getPreferenceBoolean("dearrow", false)) return; - + let dearrowInclude = this.getPreferenceString("dearrowInclude", ""); + let dearrowExclude = this.getPreferenceString("dearrowExclude", ""); + dearrowInclude = dearrowInclude == "" ? null : dearrowInclude.split(","); + dearrowExclude = dearrowExclude == "" ? null : dearrowExclude.split(","); const videoIds = content .filter(item => item.type === "stream") + .filter(item => dearrowInclude === null || dearrowInclude.includes(item.uploaderName)) + .filter(item => dearrowExclude === null || !dearrowExclude.includes(item.uploaderName)) .map(item => item.url.substr(-11)) .sort(); @@ -535,6 +540,7 @@ const mixin = { Object.keys(json).forEach(videoId => { const item = content.find(item => item.url.endsWith(videoId)); if (item) item.dearrow = json[videoId]; + console.log(item); }); }); },