Создание пользовательского сценария, который удаляет определенные комментарии с YouTube - PullRequest
0 голосов
/ 04 мая 2018

Меня очень раздражает, когда люди комментируют видео на 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)

1 Ответ

0 голосов
/ 04 мая 2018

Лучше написать это как расширение. Вы можете использовать chrome.alarms, чтобы запланировать код. Также определите изменения DOM, чтобы определить, добавляются ли новые комментарии, если они добавляются с помощью веб-сокетов.

...