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

Olá, peço desculpas se estou fazendo isso errado ou se está na categoria errada — é meu primeiro post. Sou moderador em um site que usa este software e notei que, quando seleciono ‘ignorar’ um usuário, as postagens dele ainda aparecem no meu feed, ou seja, na página inicial. Quando clico nelas, o conteúdo real é exibido como 'Conteúdo ignorado. Poderia isso ser corrigido para que usuários ignorados sejam completamente filtrados do feed das pessoas?

10 curtidas

Tenho quase certeza de que isso é intencional no momento, @david pode confirmar.

Acho que deveríamos alterar isso para que os tópicos de usuários ignorados sejam omitidos dos mais recentes.

7 curtidas

Isso mesmo — por enquanto, silenciar usuários apenas oculta o conteúdo dos posts, não oculta tópicos inteiros.

Acho que poderíamos fazer com que isso se aplique aos tópicos criados pelo usuário silenciado, mas isso significaria que você perderia todas as respostas de usuários “não silenciados” ao longo do caminho…

8 curtidas

@sam @david Apenas lendo este post, me veio uma ideia.

Seria possível extrair os posts de usuários silenciados/ignorados de um tópico e colocá-los em uma categoria no estilo TL3, sob uma flag específica TLX, visível apenas para usuários que foram bloqueados/ignorados?

Recentemente, alcancei o nível TL3 como usuário e ver essa categoria invisível que mal usamos é único, então reaproveitá-la como uma espécie de Sala de Tempo Limite/Resfriamento pode funcionar.

É só uma ideia, é claro.

E aí, você conseguiu pensar mais sobre isso? Ainda é um problema no nosso site.

Isso não está planejado no momento.

Ok! Consegui encontrar uma solução no final (:

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.


<script type="text/x-handlebars" data-template-name="components/latest-topic-list-item">
<div class="topic-poster" data-user-card="{{topic.creator.username}}">

Talvez tente adicionar a propriedade username/userid ao div do poster do tópico substituindo o template latest-topic-list-item e então você poderá ocultá-los através da folha de estilos do usuário.

Eu também tenho um componente para ocultar automaticamente usuários ignorados, se você quiser dar uma olhada.

Sou apenas um usuário do Discourse, não um administrador.
Não posso instalar plugins do Discourse em todos os sites do Discourse que uso.

Posso executar scripts de usuário e folhas de estilo de usuário, como em qualquer site, mas é limitado devido à falta de informações de op-usuário nas tags de tópico.
Então eu gostaria disso no próprio software. :slight_smile:

Tenho uma sugestão de solução alternativa que pode ser bastante fácil de implementar: Posts de usuários ignorados podem ser exibidos clicando em “Mostrar post oculto”, por que não pode ser o mesmo para o primeiro post (ou seja, para um tópico criado por um usuário ignorado)?

1 curtida

Alguma implementação possível disso? Acho que deveria ser considerado um bug. Se você quiser suprimir mensagens/chat de um usuário, você também não quer ver os tópicos dele… certo?

3 curtidas

Os tópicos poderiam ser ocultados do “mais recente” apenas quando a última postagem foi feita pelo usuário ignorado? Dessa forma, todos os novos tópicos de usuários ignorados seriam ocultados, mas quaisquer respostas de outros usuários ainda apareceriam no “mais recente”.

Isso se tornou um problema real aqui no meta ultimamente.

2 curtidas

Por curiosidade, por que você gostaria de ver as respostas de outras pessoas em vez de silenciar o tópico completamente? A conversa parcial não seria difícil de acompanhar?

2 curtidas

Você está perguntando para mim ou para o David, porque este foi o argumento dele? Eu não me importaria de qualquer maneira, mas seria melhor se isso fosse configurável por cada usuário.

Pelo que me diz respeito, os usuários são em grande parte ignorados por outros usuários com base em seu “comportamento” geral, que é difícil de quantificar exatamente, mas é apenas parcialmente baseado no conteúdo de suas postagens.

O que significa que a discussão posterior baseada em suas ‘contribuições’ pode ser às vezes bastante útil.

O que realmente me incomoda é que alguns usuários parecem apenas encontrar falhas, e vocalmente, sem investir tempo ou esforço para aprender primeiro, e depois enviam spam para vários tópicos ao mesmo tempo, o que sobrecarrega completamente o “latest”.

Simplesmente ignorar suas últimas postagens (e, portanto, não mostrar o tópico sendo atualizado no “latest” quando eles postam) resolveria isso. A forma como está implementado agora parece quebrada.

1 curtida

Para mim, os tópicos criados por usuários silenciados deveriam ser sempre ocultados.
Não tenho interesse nos tópicos deles, mesmo que outras pessoas não silenciadas participem.

2 curtidas

Uma configuração extra de bloqueio seria ótima, todas as principais redes sociais oferecem essa função.

Lembro-me de alguém aqui dizer que bloquear um usuário significa que algo está errado com os fóruns, então é inútil e não resolve o problema, mas acho que é apenas uma escolha pessoal para ocultar alguém, talvez outra pessoa goste desse usuário, mas eu não.

E se o usuário ofendeu muitas pessoas, elas provavelmente já foram denunciadas.

1 curtida

De fato, o objetivo de ignorar alguém geralmente é porque essa pessoa é irritante para você e/ou te envolve em discussões. Portanto, parece realmente anular o propósito quando elas são exibidas em /latest etc.

Felizmente, isso está disponível e parece funcionar bem:

Mas realmente parece que deveria ser um recurso principal do Discourse, pelo menos como uma opção, ou idealmente por padrão.

2 curtidas

Parece super legal, embora externo e exija ser administrador.
Você sabe se funciona ao navegar pelo smartphone?

Sim, faz

1 curtida