Coub.com - blacklist

Blacklist

Versione datata 23/12/2020. Vedi la nuova versione l'ultima versione.

// ==UserScript==
// @name         Coub.com - blacklist
// @namespace    https://coub.com
// @version      0.1
// @description  Blacklist
// @author       puzzle
// @match        https://coub.com/*
// @run-at       document-start
// @grant        none
// ==/UserScript==

(async function () {
    "use strict";

    const BLACKLIST = [];

    let lastCleanedPageID = "-1";

    function cleanUp(targetNode) {
        const lastPage = document.querySelector(".coubs-list__inner .page:last-child");

        if (lastCleanedPageID === lastPage.dataset.pageId) {
            return;
        }

        lastCleanedPageID = lastPage.dataset.pageId;

        const coubs = lastPage.querySelectorAll("div[coub-block].coub--normal-card");

        coubs.forEach((coub) => {
            BLACKLIST.some((blacklistUsername) => {
                let coubDescription = coub.querySelector("a.description__stamp__user"),
                    coubAuthor = coubDescription?.title?.toLowerCase();

                if (coubAuthor && ~coubAuthor.indexOf(blacklistUsername.toLowerCase())) {
                    console.log(`[COUB.COM - BLACKLIST] Removed blacklisted coub: ${blacklistUsername}`);
                    coub.remove();
                }
            })
        })

    }

    async function waitUntilExists(selector) {
        return new Promise(function check(resolve, reject) {
            let el = document.querySelector(selector);

            if (el) {
                return resolve(el);
            }

            setTimeout(function () {
                check(resolve, reject);
            }, 100);
        });
    }

    await waitUntilExists(".coubs-list__inner > .page");

    cleanUp();

    window.addEventListener("scroll", cleanUp);
})();