Discourse Functionality Query: User blocking

Here’s a Greasemonkey script that seems to work for me

// ==UserScript==
// @name     Discourse user blocking
// @version  1
// @grant    none
// @include  https://swi-prolog.discourse.group/*
// ==/UserScript==

const blockNames = ["USERNAMES", "HERE"];

const hideElements = () => {
  for (username of blockNames) {
    document.querySelectorAll(
      `article.onscreen-post .first.username [data-user-card="${username}"]`
    ).forEach((elt) => {
     do { elt = elt.parentElement } while (elt.tagName !== "ARTICLE")
     elt.style.display = "none" 
    });
  }
};

const MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;

const observer = new MutationObserver((mutations) => {
  hideElements();
});

observer.observe(document.body, 
                 {attributes: true, childList: true, subtree: true})
1 Like