Tópicos criados por usuários ignorados aparecendo na página inicial

Olá @BeBe, que solução alternativa você encontrou?

Tenho um usuário para o qual tudo bem ver suas postagens em outros tópicos, mas eu gostaria de ocultar os tópicos criados por ele.

Seus tópicos sempre giram em torno dos mesmos assuntos (chatos). :wink:

Existe uma maneira via CSS de ocultar postagens de usuários dentro de tópicos:

Mas, infelizmente, as listas de tópicos não incluem o ID do usuário criador, então não há como ocultar os tópicos criados por um usuário.

Vamos pegar o nome de usuário abc e ID 123.

Eu dei uma olhada no código-fonte para ver se havia uma maneira de fazer isso com CSS do usuário.

A tag do tópico está atualmente assim:

<tr data-topic-id="123" id="ember123" class="topic-list-item … ember-view">

Dentro dela, com certeza eu poderia consultar a célula dos pôsteres, mas isso exigiria JavaScript, pois eu quero ocultar seu pai:

tr > td.posters > a:first-child[data-user-card='abc']

Agora, se tivéssemos o atributo adicional data-op-user-id="123", diretamente no tr do tópico:

<tr data-topic-id="123" id="ember123" data-op-user-id="123" class="topic-list-item … ember-view">

Poderíamos usar CSS simples do usuário para fazer uma ótima filtragem por ID de usuário, para quem preferimos não ver seus tópicos:

tr.topic-list-item[data-op-user-id='123']

Seria possível ter um novo data-op-user-id nas tags tr.topic-list-item de entrada do tópico?

Só funciona no modo desktop, veja abaixo.


Para quem possa se interessar, escrevi um pequeno userscript para community.metabrainz.org.
Primeiro tentei com MutationObserver, como aconselhado, mas ficou excessivamente complexo, então usei apenas um setInterval simples.

Não o tornei dinâmico e com configurações de usuário, etc.
Cada atualização apagará sua lista negra e seu @include (veja mais tarde).

Porque espero que um novo atributo data-op-user-id seja adicionado aos tópicos no Discourse genuíno, então não precisarei mais deste userscript.

Você pode adaptá-lo a qualquer outro fórum Discourse, alterando seu @include para sua URL (a única linha específica).


Não funciona na visualização móvel, pois (infelizmente), por design, o Discourse não mostra o avatar do OP na visualização móvel.

Portanto, ainda seria muito conveniente em termos de spam ter isso sugerido tr.topic-list-item[data-op-user-id='123'].

Agora as atualizações não redefinirão minha lista negra, adicionei um editor básico de lista negra e a lista é salva localmente.

Mas eu realmente adoraria, adoraria, adoraria que o Discourse incluísse um ID de usuário OP em todas as linhas de tópico <TR data-op-user-id="123">, para que uma folha de estilo de usuário super simples fosse suficiente para ocultar os tópicos de usuários ignorados:

tr.topic-list-item[data-op-user-id='123'] { display: none; }

Ou eu adoraria, adoraria, adoraria ainda mais que o Discourse simplesmente ocultasse os tópicos de usuários ignorados por conta própria.

Eu não entendo o propósito de usuários ignorados se seus tópicos poluem minha navegação.