Меня очень раздражает, когда люди комментируют видео на YouTube, что они смотрят видео в «2018 году» или в каком бы то ни было году, или спрашивают других, кто делает то же самое. Такие комментарии обычно получают много лайков и поэтому остаются на вершине. Поэтому я начал делать скрипт, который удаляет все такие комментарии. Я сделал необходимый код и успешно протестировал с помощью консоли Chrome.
Проблема в том, что я не знаю , как сохранить его работающим / активным , чтобы при каждой загрузке новых комментариев или обновлении страницы такие комментарии автоматически отфильтровывались. Я использовал window.setTimeout , но он запускается только тогда, когда комментарии уже загружены. Не работает с вновь загруженными комментариями.
Любая помощь приветствуется. Вот мой сценарий:
// ==UserScript==
// @name YouTube Comment Cleaner
// @namespace iamMG
// @include *://www.youtube.com/*
// @description Remove keywords from YouTube comments.
// @author iamMG
// @license MIT
// @version 1.0
// ==/UserScript==
//Some code to detect when the element with id 'watch-discussion' becomes available.
//It is the parent element which contains all the comments.
window.setTimeout(function() {
var expr = /20(15|16|17|18|19|20)/; //The text I want to detect in comments
var commentText = document.getElementsByClassName('comment-renderer-text-content'); //The text element within each comment
for (var i =0; i<commentText.length; i++) {
if (expr.test(commentText[i].innerText)) { //tests for the substring inside the comment text.
var elem = commentText[i].parentNode.parentNode.parentNode.parentNode; //elem is the actual comment element.
console.log('removed '+ (i+1) + 'th comment');
elem.parentNode.removeChild(elem);
i--;
}
}
}, 4000)