Initial git commit

This commit is contained in:
kappa 2020-01-03 12:48:26 +01:00
commit 7b74311278
6 changed files with 126 additions and 0 deletions

11
README.md Normal file
View file

@ -0,0 +1,11 @@
A fork of the original Youtube UnHooked, with soma added features, including the ability to toggle comment visibility in the extension preferences.
The content of the original README follows
# youtube-feed-hider
A Chrome extension for hiding the feed on Youtube.com
Install here:
https://chrome.google.com/webstore/detail/fkhfakakdbjcdipdgnbfngaljiecclaf/
Also see this related extension from Stanford:
https://habitlab.stanford.edu/

25
manifest.json Normal file
View file

@ -0,0 +1,25 @@
{
"name": "Youtube UnHooked",
"version": "0.9",
"description": "Hides parts of Youtube that are unneeded/addictive: recommendations, related videos, comments.",
"content_scripts": [
{
"matches": ["https://www.youtube.com/*"],
"css": ["styles.css"],
"js": ["styles.js"]
}
],
"browser_specific_settings": {
"gecko": {
"id": "youtube-unhooked@ffffff.gov"
}
},
"manifest_version": 2,
"options_ui": {
"page": "options.html",
"browser_style": true
},
"permissions": [
"storage"
]
}

17
options.html Normal file
View file

@ -0,0 +1,17 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
</head>
<body>
<form>
<hr>
<input type="checkbox" name="Disable" id="commentsRemoveCheck" value="Comments">Disable Comments?<br>
<hr>
<button id="submitbtn" type="submit">Save</button>
</form>
<script src="options.js"></script>
</body>
</html>

16
options.js Normal file
View file

@ -0,0 +1,16 @@
function saveOptions(e) {
browser.storage.sync.set({
commentsRemove: document.getElementById("commentsRemoveCheck").checked
});
e.preventDefault();
}
function restoreOptions() {
var gettingItem = browser.storage.sync.get({commentsRemove: false});
gettingItem.then((res) => {
document.getElementById("commentsRemoveCheck").checked = res.commentsRemove;
});
}
document.addEventListener('DOMContentLoaded', restoreOptions);
document.querySelector("form").addEventListener("submit", saveOptions);

40
styles.css Normal file
View file

@ -0,0 +1,40 @@
/** Youtube CSS overrides **/
/** FRONT PAGE FEED **/
/** Displayed while loading, grey boxes **/
#home-page-skeleton {
display: none !important;
}
/**
Must use visibility instead of display as otherwise
it thinks that the user has scrolled and tries to load
additional feed items repeatedly.
**/
ytd-browse[role="main"][page-subtype="home"] #contents {
visibility: hidden !important;
}
/** RELATED VIDEOS (SIDEBAR) **/
/** Displayed while loading, grey boxes **/
#related-skeleton, .watch-skeleton {
display: none !important;
}
ytd-watch-next-secondary-results-renderer {
visibility: hidden !important;
}
/** COMMENTS **/
/* changed
ytd-comments {
visibility: visible !important;
} */
/** RELATED VIDEOS (END OF VIDEO SCREEN) **/
.ytp-videowall-still, .ytp-endscreen-previous, .ytp-endscreen-next {
display: none !important;
}

17
styles.js Normal file
View file

@ -0,0 +1,17 @@
let gettingItem = browser.storage.sync.get({commentsRemove: false});
// Retrieves the storage variable to determine whether comments should be removed
function setComments(remove) {
document.getElementsByTagName("ytd-comments")[0].style.visibility = remove ? "hidden" : "visible";
}
function onGot(result) {
var remove = result.commentsRemove;
setComments(remove);
// Sets the visibility of the comments section depending on the storage vairable
}
function onFailure(error) {
alert(`Error: ${error}`);
}
gettingItem.then(onGot, onFailure);