mirror of
https://github.com/lawrencehook/remove-youtube-suggestions.git
synced 2026-07-25 06:54:31 +00:00
Polish homepage
Reduces suggestion exposure, no blip on first load
This commit is contained in:
+3
-2
@@ -2,13 +2,14 @@
|
||||
"description": "Removes all suggestions from Youtube.",
|
||||
"manifest_version": 2,
|
||||
"name": "Remove Youtube Suggestions",
|
||||
"version": "3.1.0",
|
||||
"version": "3.1.1",
|
||||
"homepage_url": "https://github.com/emumoo/remove-youtube-suggestions",
|
||||
|
||||
"content_scripts": [
|
||||
{
|
||||
"matches": ["*://*.youtube.com/*"],
|
||||
"js": ["remove-suggestions.js"]
|
||||
"js": ["remove-suggestions.js"],
|
||||
"run_at": "document_start"
|
||||
}
|
||||
],
|
||||
|
||||
|
||||
+4
-4
@@ -47,10 +47,10 @@ function restoreOptions() {
|
||||
console.log(`Error: ${error}`);
|
||||
}
|
||||
|
||||
var gettingHomepage = browser.storage.local.get("homepage");
|
||||
var gettingSidebar = browser.storage.local.get("sidebar");
|
||||
var gettingVideoEnd = browser.storage.local.get("videoEnd");
|
||||
var gettingComments = browser.storage.local.get("comments");
|
||||
let gettingHomepage = browser.storage.local.get("homepage");
|
||||
let gettingSidebar = browser.storage.local.get("sidebar");
|
||||
let gettingVideoEnd = browser.storage.local.get("videoEnd");
|
||||
let gettingComments = browser.storage.local.get("comments");
|
||||
gettingHomepage.then(setCurrentChoice, onError);
|
||||
gettingSidebar.then(setCurrentChoice, onError);
|
||||
gettingVideoEnd.then(setCurrentChoice, onError);
|
||||
|
||||
+38
-39
@@ -5,50 +5,46 @@ function onError(error) {
|
||||
}
|
||||
|
||||
// remove homepage recommendations
|
||||
function updateStyle(setting) {
|
||||
function updateHomepageStyle(hideHomepage) {
|
||||
// the homepage has pathname "/" which is length 1
|
||||
let property = (!setting || window.location.pathname.length > 1) ? "flex" : "none";
|
||||
for (let elt of document.querySelectorAll("ytd-browse")) {
|
||||
if (elt) elt.style.setProperty("display", property);
|
||||
}
|
||||
const thisIsHomepage = window.location.pathname.length <= 1;
|
||||
const hideSuggestions = hideHomepage && thisIsHomepage;
|
||||
|
||||
// for disable_polymer=true
|
||||
for (let elt of document.querySelectorAll("#feed")) {
|
||||
if (elt) elt.style.setProperty("display", property);
|
||||
}
|
||||
const propertyHide = "none";
|
||||
const propertyShow = "flex";
|
||||
const property = hideSuggestions ? propertyHide : propertyShow;
|
||||
|
||||
const normalSuggestions = document.querySelectorAll("ytd-browse") || [];
|
||||
const disabledPolymerSuggestions = document.querySelectorAll("#feed") || [];
|
||||
|
||||
// Hide homepage suggestions
|
||||
normalSuggestions.forEach(elt => elt.style.setProperty("display", property));
|
||||
disabledPolymerSuggestions.forEach(elt => elt.style.setProperty("display", property));
|
||||
}
|
||||
|
||||
// After getting settings
|
||||
function onGotHomepageSetting(item) {
|
||||
var removeHomepage = item.homepage;
|
||||
if (removeHomepage === undefined) {
|
||||
removeHomepage = true;
|
||||
browser.storage.local.set({
|
||||
homepage: true
|
||||
});
|
||||
let hideHomepage = item.homepage;
|
||||
if (hideHomepage === undefined) {
|
||||
hideHomepage = true;
|
||||
browser.storage.local.set({ homepage: true });
|
||||
}
|
||||
|
||||
if (removeHomepage) {
|
||||
updateStyle(item.homepage);
|
||||
updateHomepageStyle(hideHomepage);
|
||||
|
||||
// watch for url changes
|
||||
let observer = new MutationObserver(function(mutations) {
|
||||
updateStyle(item.homepage);
|
||||
return;
|
||||
});
|
||||
// watch for url changes
|
||||
const observer = new MutationObserver(mutations => updateHomepageStyle(hideHomepage) );
|
||||
|
||||
observer.observe(document.body, {
|
||||
childList: true,
|
||||
subtree: true,
|
||||
attributes: false,
|
||||
characterData: false
|
||||
});
|
||||
}
|
||||
observer.observe(document.body, {
|
||||
childList: true,
|
||||
subtree: true,
|
||||
attributes: false,
|
||||
characterData: false
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
function onGotSidebarSetting(item) {
|
||||
var removeSidebar = item.sidebar;
|
||||
let removeSidebar = item.sidebar;
|
||||
if (removeSidebar === undefined) {
|
||||
removeSidebar = true;
|
||||
browser.storage.local.set({
|
||||
@@ -57,8 +53,8 @@ function onGotSidebarSetting(item) {
|
||||
}
|
||||
|
||||
if (removeSidebar) {
|
||||
let sheets = document.styleSheets;
|
||||
let display_none = " { display: none !important; }";
|
||||
const sheets = document.styleSheets;
|
||||
const display_none = " { display: none !important; }";
|
||||
|
||||
// youtube video recommendations
|
||||
sheets[0].insertRule("ytd-compact-video-renderer.style-scope" + display_none);
|
||||
@@ -90,7 +86,7 @@ function onGotSidebarSetting(item) {
|
||||
}
|
||||
|
||||
function onGotVideoEndSetting(item) {
|
||||
var removeVideoEnd = item.videoEnd;
|
||||
let removeVideoEnd = item.videoEnd;
|
||||
if (removeVideoEnd === undefined) {
|
||||
removeVideoEnd = true;
|
||||
browser.storage.local.set({
|
||||
@@ -104,7 +100,7 @@ function onGotVideoEndSetting(item) {
|
||||
}
|
||||
|
||||
function onGotCommentsSetting(item) {
|
||||
var removeComments = item.comments;
|
||||
let removeComments = item.comments;
|
||||
|
||||
if (removeComments === undefined) {
|
||||
removeComments = false;
|
||||
@@ -121,14 +117,17 @@ function onGotCommentsSetting(item) {
|
||||
}
|
||||
}
|
||||
|
||||
var gettingHomepage = browser.storage.local.get("homepage");
|
||||
// Ensures that suggestions won't blip while "removed"
|
||||
updateHomepageStyle(true);
|
||||
|
||||
let gettingHomepage = browser.storage.local.get("homepage");
|
||||
gettingHomepage.then(onGotHomepageSetting, onError);
|
||||
|
||||
var gettingSidebar = browser.storage.local.get("sidebar");
|
||||
let gettingSidebar = browser.storage.local.get("sidebar");
|
||||
gettingSidebar.then(onGotSidebarSetting, onError);
|
||||
|
||||
var gettingVideoEnd = browser.storage.local.get("videoEnd");
|
||||
let gettingVideoEnd = browser.storage.local.get("videoEnd");
|
||||
gettingVideoEnd.then(onGotVideoEndSetting, onError);
|
||||
|
||||
var gettingComments = browser.storage.local.get("comments");
|
||||
let gettingComments = browser.storage.local.get("comments");
|
||||
gettingComments.then(onGotCommentsSetting, onError);
|
||||
|
||||
Reference in New Issue
Block a user