Plugin para excluir tópicos não respondidos

O plugin Excluir Tópicos Sem Respostas escaneia categorias designadas em busca de tópicos com mais de x dias que não receberam nenhuma resposta e os exclui. Isso mantém seu fórum limpo de tópicos que, por qualquer motivo, não ganharam tração.

Configurações:

  • delete_unreplied_topics_categories: as categorias em que o plugin atuará
  • delete_unreplied_topics_days: o número de dias após os quais um tópico sem nenhuma resposta será excluído
  • delete_unreplied_topics_dry_run: um recurso de segurança para testar e garantir que o plugin não excluirá partes indesejadas do seu fórum

O plugin registra suas ações em /logs.

O repositório pode ser encontrado aqui.

Este trabalho foi patrocinado por @outofthebox.

14 curtidas

Amazing work @RGJ! Your skillful development of this plugin is a huge time saver and greatly improves our community.

8 curtidas

Obrigado por escrever isso.

Seria bom se também registrasse o título do tópico, além do ID (DeleteUnrepliedTopics removendo ID do Tópico #{t.id}).

E seria mais tranquilizador se delete_unreplied_topics_dry_run tivesse como padrão true :slight_smile:

2 curtidas

Obrigado, essas são sugestões muito úteis. Fiz essas alterações.

5 curtidas

Finalmente instalei este plugin, até agora no modo de execução simulada. Parece identificar corretamente os tópicos para exclusão.

Nos logs, cada linha como DeleteUnrepliedTopics removeria o ID do Tópico *número* (*título do tópico*) (modo de execução simulada) é precedida pelo indicador X para um “Erro”. Eu esperaria que fosse “Info” ou até mesmo “Aviso”.

@RGJ Isso é esperado? Obrigado. Estou usando a versão mais recente do Discourse.

1 curtida

Sim, parece que é intencional. Lembro vagamente que houve algum problema com os níveis de debug, então mudei para error. Desculpe por qualquer confusão!

4 curtidas

Obrigado por esclarecer isso. O plugin funciona como esperado, obrigado — embora, curiosamente, os tópicos não listados sejam exibidos pelo Discourse como tendo pelo menos uma resposta (ou seja, o ato de não listar), o que significa que seu plugin não os exclui.

1 curtida

Acabei de notar que seu plugin também não exclui tópicos fixados, pois o ato de fixar um tópico é considerado uma resposta. Isso acaba sendo uma coisa boa.

2 curtidas


Você sabe por que essas mensagens de erro aparecem?

Quando isso estiver habilitado, o plugin apenas registrará suas ações e não as executará de fato.

2 curtidas

Olá,
este plugin parece ser exatamente o que estou procurando, mas estou um pouco apreensivo em instalá-lo, pois não há atividade no repositório há 4 anos.
Você acha que ele ainda deve funcionar com a versão atual do Discourse, ou é provável que quebre alguma coisa?

1 curtida

Estava muito bem escrito :sunglasses:

E é um plugin muito específico. Tenho 99,9% de certeza de que ainda funciona corretamente.
Você pode configurá-lo primeiro para "dry run" para que não quebre nada, se isso te conforta.

4 curtidas

Perfeito. Obrigado pela resposta rápida!

1 curtida

@RGJ com base em várias solicitações de outros usuários:

este seu plugin não poderia ser usado como base para um novo plugin que exclui tópicos em uma categoria específica se eles forem mais antigos que N dias, definidos pelo usuário?

Se o seu plugin já está escaneando tópicos, não seria possível definir algumas regras que dizem:
Se a categoria for X, escaneie por tópicos onde a data de criação e a data atual sejam superiores a N dias e, se for o caso, exclua-os.

Eu não sei os detalhes de como criar e modificar plugins, mas esta seria uma ótima adição.

Seria uma questão de remover uma única linha. (Ou, obviamente, criar uma configuração max_replies, padrão 0, que pode então ser definida como 99999 para alcançar o efeito desejado).

Dito isso, estou com dificuldade em pensar em um bom caso de uso para isso.

4 curtidas

Um caso de uso que eu poderia pensar seria talvez um lounge fora do tópico que reinicia a cada mês. Como se destina talvez a um tipo de “desabafo” livre para todos.

Caso contrário, também não tenho certeza de muitos casos de uso. Além disso, no momento, acho que é apenas manual, a menos que uma automação possa ser feita. Para simplesmente aplicar um temporizador de tópico com a função de exclusão? Não me lembro se ele dá a opção de excluir o tópico ou se são apenas as respostas.

1 curtida

Há uma discussão sobre diferentes casos aqui:

Para o meu caso específico (semelhante a um dos usuários no tópico acima), eu gostaria de ter uma categoria chamada “Classificados” para músicos (por exemplo, cantores que querem encontrar produtores e vice-versa), mas não quero que os tópicos fiquem disponíveis para sempre, ou que sejam renovados apenas com a adição de uma nova resposta. Eu quero definir um temporizador, por exemplo, onde todos os tópicos dentro dessa categoria que têm 2 semanas de idade sejam excluídos, independentemente das respostas. Dessa forma, os usuários sabem que precisam criar um novo tópico, em vez de apenas adicionar uma resposta sem sentido, como um emoji, caso contrário, o tópico ficará cheio de respostas de 1 emoji, o que fica feio. Isso também força os usuários que realmente querem encontrar pessoas para trabalhar, a se esforçar e criar um novo tópico. Isso meio que filtra as pessoas que são muito preguiçosas para criar um novo tópico, salvar seu texto em seus computadores ou telefones, etc.

Espero que faça sentido?

Então, se isso realmente se tornar um plugin e eu estiver usando o Communiteq para minha hospedagem, em qual plano eu precisaria estar para poder instalar o plugin?

Você poderia definir o fechamento automático dos tópicos?

Esse seria o plano Profissional.

2 curtidas

Isso seria menos eficaz do que o seu plugin, pois permitiria que tópicos antigos ficassem visíveis quando não fossem mais relevantes. Por que eu gostaria de tópicos de pessoas procurando músicos de 3 anos atrás? Eu quero que eles sejam excluídos.

Além disso, fechar o tópico é o mesmo que o seu plugin: depende de respostas, o que não é o que eu gostaria. Como mencionei, isso seria propenso a usuários apenas adicionando um comentário tipo emoji para manter o tópico ativo.

Basicamente, eu só quero que os tópicos sejam excluídos após N dias/semanas, não importa o quê. E como você pode ver no tópico que compartilhei, outros usuários têm a mesma necessidade. Como seu plugin já está fazendo algo semelhante, eu assumiria que criar uma versão para excluir independentemente das respostas não seria um grande problema e cada administrador poderia escolher o que deseja para o seu fórum com base em suas necessidades.

Pergunta errada, aliás. O que você quer é totalmente irrelevante. O que um usuário quer é relevante. E tópicos não custam nada.

1 curtida