Ocultar tópicos de usuários ignorados

:information_source: Resumo Este componente permite ocultar tópicos de usuários que você ignorou
:hammer_and_wrench: Repositório GitHub - Lhcfl/discourse-hide-ignored-user-topics
:question: Guia de Instalação Como instalar um tema ou componente de tema
:open_book: Novo em Temas do Discourse? Guia para iniciantes sobre como usar Temas do Discourse

Instalar este componente de tema

Inspire-se neste post:

Este componente permite ocultar tópicos de usuários que você ignorou.

Ele faz exatamente o que parece, e seu princípio principal é muito simples, então colarei o código principal abaixo:

import { apiInitializer } from "discourse/lib/api";
export default apiInitializer("1.8.0", (api) => {
  const user = api.getCurrentUser();
  if (user == null) return;
  api.registerValueTransformer(
    "topic-list-item-class",
    ({ value, context }) => {
      if (user.ignored_users.includes(context.topic.creator.username)) {
        value.push("hidden");
      }
      return value;
    }
  );
});
12 curtidas

@Lhc_fl ,

Essencialmente, se o recurso deste componente de tema pudesse ser expandido para incluir uma opção adicional de ocultar com alternância.

Ignorar Padrão ocultará as postagens de dito usuário.

Poderia ser adicionada uma opção a este componente para ocultar respostas a um usuário ignorado. Como algumas pessoas excessivamente sensíveis reclamam que ainda podem ver outras pessoas respondendo ao usuário ignorado.

1 curtida

Não é difícil, mas não sei se é necessário…
Usuário ignorado postou. Eles não querem ver isso. Então alguém respondeu a este usuário. Eles também não querem ver isso. Então outra pessoa respondeu a esta resposta, e depois outra resposta à resposta à resposta… Isso não deveria ser visto?

  • Isso faz com que as discussões se desintegrem. Tudo bem, você silencia alguém, então você “nunca” vê as postagens dessa pessoa. Mas então outro usuário que você gosta cita o usuário silenciado em sua postagem, ou faz referência ao seu @nome, ou responde à sua postagem. Você então suprime apenas a seção citada? Suprime o @nome? Suprime todas as respostas às suas postagens também? Isso deixa grandes lacunas na conversa e apresenta muitos desafios técnicos complicados. Com mutes, bloqueios e ignorados pessoais suficientes, toda a conversa se torna um estranho mosaico de declarações parcialmente visíveis.
3 curtidas

@Lhc_fl
isso é necessário…
se A quer ignorar B, isso significa que todos os tópicos/posts, o que seria ideal

  1. tópicos de B são ignorados totalmente, isso é bom/feito

  2. em tópicos de outros, B respondeu,
    2.1 posts de B devem ser ocultados, feito
    2.2 o avatar de B deve ser removido da página da lista de posts (os participantes), isso não parece difícil de fazer?
    2.3 se o post de B for citado, não tenho certeza se essa parte é fácil de remover/ocultar?

obrigado por esses ótimos esforços, isso é realmente útil, espero que você possa considerar 2.2 e 2.3 se for possível fazer…

2 curtidas

Bem, como eu disse ou tive em um dos meus posts. Em alguns aspectos parece excessivo. Como membro, deveria ser possível pular respostas. Infelizmente, algumas pessoas parecem não ter essa habilidade.

Pessoalmente, acho que talvez apenas respostas diretas. No entanto, para esses usuários excessivamente sensíveis, a origem ao ponto final pode ser de valor.

Mesmo como um componente separado suplementar. Apenas algo que possa ser de valor não apenas para o usuário excessivamente sensível. Mas também para a equipe de moderação ter uma dor de cabeça a menos. Poderia talvez usar um campo de usuário para permitir que o usuário ative/desative isso, talvez?

Dan

No meu caso particular, a comunidade perdeu um membro valioso porque ele não conseguia ignorar/pular a leitura de respostas que, na opinião dele, estavam fazendo “gaslighting” com as pessoas. Então, em sua irritação, ele exigiu que eu banisse o usuário com quem ele tinha um problema.

Para ser claro, este usuário (o excessivamente sensível) em 2 ou 3 anos como membro nunca foi um problema e foi um forte contribuidor.

Este conceito também poderia ser um benefício para fóruns dedicados a ajudar pessoas com problemas de saúde mental.

Existem muitos desafios com isso, e as coisas podem dar errado quando há opiniões divergentes sobre quais são os problemas primários ou secundários.

Categorizar pessoas como excessivamente sensíveis ou com um problema de saúde mental pode ser considerado um insulto para elas, pode ser trágico o quão rapidamente uma conversa se transforma em uma discussão e, em seguida, alguém é identificado como um troll ou pessoa problemática.

Pode haver grande valor em ter um espaço para as pessoas discutirem livremente sem medo de serem censuradas ou editadas, mas isso pode precisar de um tipo específico de fórum ou local para que isso não cause problemas desnecessários para os outros.

2 curtidas

Eu esperaria que não fosse uma necessidade comum, mas pessoalmente senti a necessidade e me faltaram as ferramentas para evitar ser lembrado da existência e das opiniões de uma pessoa que me incomodou muito. Pode-se dizer que fui provocado, pode-se dizer que fui trollado ou que estava sendo provocado. Mas tive uma resposta fisiológica muito real e indesejada, e se eu quisesse continuar sendo um membro ativo do fórum, teria preferido não ter conhecimento dessa pessoa. Pelo menos por um tempo.

Portanto, às vezes estamos exclusivamente na companhia de pessoas robustas, às vezes estamos em uma subcultura que valoriza muito todas as formas de expressão pessoal, mas às vezes somos indivíduos vulneráveis que ainda precisam participar ou sentir um senso de pertencimento.

Editar: isso também aconteceu comigo na vida real, no trabalho, uma pessoa com quem eu sempre estaria em conflito, minha frequência cardíaca aumentaria e eu experimentaria uma resposta de luta ou fuga se ele sequer entrasse na sala. Ele nem era agressivo ou desagradável - era a minha resposta que me afetava.

7 curtidas

Eu sinto que bloquear (pelo menos não poder ler/ter uma sugestão constante para ler) respostas diretas para si mesmo de um usuário bloqueado é um bom passo

honestamente, em certo sentido, você deveria ser capaz de bloquear todo o conteúdo de um usuário bloqueado, não consigo ver como isso não é justificado em alguns casos (trolling excessivo e tal)

3 curtidas

Isso oculta a notificação de novos tópicos de usuários ignorados? Pelo código, acho que a resposta é não?

1 curtida

Isto é apenas para novos tópicos, não para posts.

2 curtidas

Sim, o padrão oculta postagens e respostas. Isso adiciona novos tópicos

1 curtida

Obrigado pelo plugin.
Infelizmente, ele não parece ocultar tópicos da visualização de categoria, quando configurado para mostrar os tópicos mais recentes em cada categoria.
Isso poderia ser corrigido?

2 curtidas

Este componente precisa ser atualizado para Tests-passed

3 curtidas

Isso está funcionando, mas apenas no tópico. Alguma ideia de ocultar na ‘lista de tópicos’ na página inicial?

script type="text/discourse-plugin" version="1.6.0"

const { alias } = require("@ember/object/computed");

api.modifyClass("component:topic-list-columns", {
    pluginId: "remove-ignored-users-topic",
    attributeBindings: ["data-topic-id", "role", "ariaLevel:aria-level", "data-creator-name"],
    "data-creator-name": alias("topic.creator.username"),
});

if (api.registerValueTransformer()) {
const s = document.createElement("style");

for (const u of api.registerValueTransformer()?.ignored_users) {
    s.innerHTML += `tr.topic-list-columns[data-creator-name="${u}"] { display: none; }`;
}

document.body.appendChild(s);
}

/script

1 curtida

Atualizado, agora será compatível com a nova lista de tópicos do Discourse

4 curtidas

Muito obrigado @Lhc_fl por atualizar isso, posso confirmar que funciona como descrito.

Como observação, essa funcionalidade deveria realmente fazer parte do Discourse core, pelo menos como uma opção ou talvez até como o comportamento padrão quando um usuário é ignorado, é exatamente o que um usuário esperaria razoavelmente de uma função de “ignorar”.

2 curtidas

Parece que há um pequeno bug ou limitação, não tenho certeza se é novo desde que este componente foi portado para Glimmer, porque anteriormente eu estava usando um componente diferente para esta funcionalidade.

O problema é que quando um usuário ignorado posta em um tópico observado/rastreado, ele ainda mostra o (1) para novas postagens ao lado de seu título na lista de tópicos. E como a postagem está oculta do usuário, mesmo após clicar no tópico e rolar até o final, ele ainda mostra a notificação de nova postagem na lista de tópicos. Presumo que seja porque a nova postagem é invisível e, portanto, não é marcada como lida.

Só para informar: isso me deu um aviso de administrador no frontend.

Olá Jagster, tem certeza que não é este componente similar?

Com certeza.