NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// Enhance titles - YouTube
//
// Hide watched videos on YouTube
//
// https://greasyfork.org/scripts/390633-enhance-titles-youtube
// Copyright (C) 2019, Guido Villa
//
// For information/instructions on user scripts, see:
// https://greasyfork.org/help/installing-user-scripts
//
// --------------------------------------------------------------------
//
// ==UserScript==
// @name Enhance titles - YouTube
// @description Hide watched videos on YouTube
// @version 1.4
// @author guidovilla
// @date 01.11.2019
// @copyright 2019, Guido Villa (https://greasyfork.org/users/373199-guido-villa)
// @license GPL-3.0-or-later
// @homepageURL https://greasyfork.org/scripts/390633-enhance-titles-youtube
// @supportURL https://gitlab.com/gv-browser/userscripts/issues
// @contributionURL https://tinyurl.com/gv-donate-72
//
// @namespace https://greasyfork.org/users/373199-guido-villa
// @downloadURL https://greasyfork.org/scripts/390633/code/enhance-titles-youtube.user.js
// @updateURL https://greasyfork.org/scripts/390633/code/enhance-titles-youtube.meta.js
// @downloadURL https://openuserjs.org/install/guidovilla/Enhance_titles_-_YouTube.user.js
// @updateURL https://openuserjs.org/meta/guidovilla/Enhance_titles_-_YouTube.meta.js
//
// @match https://www.youtube.com/*
//
// @require https://greasyfork.org/scripts/391648/code/userscript-utils.js
// @require https://greasyfork.org/scripts/390248/code/entry-list.js
// ==/UserScript==
//
// --------------------------------------------------------------------
//
// To-do (priority: [H]igh, [M]edium, [L]ow):
// - [L] hide selective titles?
//
// Changelog:
// ----------
// 2019.11.01 [1.4] Cleanups&optimizations
// 2019.10.05 [1.3] Fix completion status appearing later (after ELProcessed)
// 2019.10.03 [1.2] Refactor using EntryList library
// 2019.09.30 [1.1] First public version, correct @namespace and other headers
// 2019.06.17 [1.0] First version
//
// --------------------------------------------------------------------
/*jshint -W008 */
/* global EL: readonly */
(function() {
'use strict';
/* BEGIN CONTEXT DEFINITION */
var youtube = EL.newContext('YouTube');
youtube.getPageEntries = function() {
return document.querySelectorAll('a#thumbnail');
};
youtube.isValidEntry = function(entry) {
var st = entry.querySelector('#overlays');
return !!(st && st.innerHTML);
};
youtube.determineType = function(_I_lists, _I_entryData, entry) {
var st = entry.querySelector('#overlays #progress');
return (st && st.style.width == "100%");
};
youtube.processItem = function(entry, _I_entryData, _I_processingType) {
entry.style.opacity = .1;
};
/* END CONTEXT DEFINITION */
//-------- "main" --------
EL.startup(youtube);
})();