Plots2: Oculte respostas a comentários que foram spam ou ainda não foram moderados

Criado em 15 dez. 2020  ·  23Comentários  ·  Fonte: publiclab/plots2

Parece que as respostas aos comentários não são filtradas para spam. Devemos ver esta mensagem:

"Tem certeza? O usuário não poderá mais fazer login ou publicar, e seu conteúdo ficará oculto, exceto comentários. ” parece errado

Exemplo disso acontecendo: https://publiclab.org/notes/bhamster/09-02-2020/public-lab-virtual-event-on-all-things-microplastics

Veja esta resposta a um comentário:

image

Em vez disso, ele deve ter uma mensagem como esta, que funciona para comentários regulares (aqueles que respondem a uma postagem, não a outro comentário:

image

EDIÇÃO

(Isso pode estar corrigido agora ... vamos escrever um teste para confirmar isso e corrigir quaisquer falhas que possam surgir do teste):

As respostas aos comentários não estão filtrando os comentários de spam. Usamos este método replied_comments em vários lugares, portanto, podemos precisar fazer essa correção várias vezes.

https://github.com/publiclab/plots2/search?q=replied_comments

Não podemos fazer isso na definição porque é na verdade uma relação ActiveRecord, não um método personalizado ao qual podemos adicionar filtros: https://github.com/publiclab/plots2/blob/828321c2a8fd91e7a55140a511ed4e6dda718b61/app/models/comment.rb# L10

Devemos filtrar status = 0 na definição de comment.replied_comments , e também para status = 4 mostrar a mensagem acima.

Então, devemos escrever alguns testes básicos:

https://github.com/publiclab/plots2/blob/876d0fc084064aaecc23f8003630d7d1ab858fa1/test/functional/comment_controller_test.rb#L57 -L61

Ruby help wanted testing

Comentários muito úteis

@ 17sushmita Sim, definitivamente, vá em frente, isso seria muito apreciado!

Todos 23 comentários

Isso parece um pouco na minha casa do leme! Posso dividi-lo em subproblemas no momento em que me sentir à frente do meu trabalho.

Eu estava testando isso localmente para dividi-lo em um ftos, parece que o problema já foi corrigido. Alguém poderia confirmar que o mesmo é o caso dele ... @ noi5e talvez você tenha resolvido em algum lugar do seu projeto ..

@cesswairimu Hmm !! Eu acho que outra pessoa fez 😅

@cesswairimu Alguém poderia escrever um teste para isso, se eu não conseguir? Isso é um pouco complicado para um FTO, mas acho que escrever testes pode ensinar muito aos candidatos. Além disso, talvez não devamos encerrar este problema até que um teste seja escrito

@ noi5e Eu concordo, vou atualizar isso para ser mais um problema de redação de teste. Obrigado

Hmm, não tenho certeza - talvez o teste possa vir primeiro para confirmar se está realmente corrigido.

Porque só podemos filtrar conforme o uso, não na definição has_many , ao que parece, e não vejo um .where.not(status: 0) nestes:

https://github.com/publiclab/plots2/blob/ebf57e0cdd1dcc9d5cc884a15e7cd5b5bbe78390/app/views/notes/_comments.html.erb#L8

https://github.com/publiclab/plots2/blob/401874455490c6300270ef54490fe9452e0ca522/app/views/questions/show.html.erb#L69

https://github.com/publiclab/plots2/blob/ebf57e0cdd1dcc9d5cc884a15e7cd5b5bbe78390/app/views/notes/_comment.html.erb#L162

O que você acha?

Obrigado a todos !!! 💯

ah e eu acho que naqueles includes() , ele teria que ser nomeado, então talvez ... .where('comments.status != 0') ?

Sim, acho que está correto, veja o uso aqui:

https://github.com/publiclab/plots2/blob/672d63ab11c2159e28d2cc502c47a3b3c83730b9/app/models/node.rb#L1114

@jywarren @cesswairimu @ noi5e Posso trabalhar escrevendo testes para isso?

@ 17sushmita Sim, definitivamente, vá em frente, isso seria muito apreciado!

Parece que as respostas aos comentários não são filtradas para spam. Devemos ver esta mensagem:

"Tem certeza? O usuário não poderá mais fazer login ou publicar, e seu conteúdo ficará oculto, exceto comentários. ” parece errado

@jywarren O que significa dizer que esta mensagem parece errada? Não deveria ser exibido quando o moderador tenta marcar o comentário como spam? Por favor, dê um pouco mais de contexto a isso.

@ 17sushmita Estou um pouco confuso com isso também. Acho que Jeffrey quis dizer que o texto estava aparecendo em amarelo na imagem abaixo, em vez de Moderate first-time comment ? Nesse caso, isso parece errado.

102243313-05b48f80-3ec9-11eb-919a-d2dd39d84c45

Enquanto esperamos por esclarecimentos, você ainda pode prosseguir e escrever um teste. Vou postar aqui algumas sugestões que podem ser úteis.

Para começar, você pode inserir um comentário de spam / postador pela primeira vez no banco de dados de teste que seja uma resposta a outro comentário:

nodes(node_name).add_comment({
  uid: user_id,
  body: comment_text
  reply_to: parent_comment_id
  status: 0 # comment status: 0 for banned, 4 for first-time poster (a moderator has to approve the comment)
})

Em seguida, escreva o resto do teste a partir daí, certificando-se de que o método que usamos para recuperar comentários não está obtendo respostas de comentários com status 0 ou 4.

Algo parecido! Você provavelmente terá que fazer alguma pesquisa. Definitivamente, deixe um comentário aqui se você tiver dúvidas ou precisar de algumas dicas sobre onde procurar na base de código. Nós estamos aqui para ajudar!

@ noi5e , Muito obrigado por ajudar 😃️ !! Preciso de mais um esclarecimento. Preciso criar um novo arquivo para testes de resposta a comentários ou fazer alterações em talvez /plots2/test/functional/admin_controller_test.rb ou /plots2/test/system/spam2_test.rb ou /plots2/test/functional/comment_controller_test.rb ou qualquer outro arquivo?

@ 17sushmita Não tenho 100% de certeza sobre isso, mas estou pensando em /test/functional/comment_controller_test.rb . O outro lugar que eu estava pensando era um teste de unidade para comentários. Pensamentos de mais alguém?

Nesse ínterim, sinta-se à vontade para começar a trabalhar nisso enquanto esperamos que outros opinem.

@ 17sushmita Não tenho 100% de certeza sobre isso, mas estou pensando em /test/functional/comment_controller_test.rb . O outro lugar que eu estava pensando era um teste de unidade para comentários. Pensamentos de mais alguém?

Nesse ínterim, sinta-se à vontade para começar a trabalhar nisso enquanto esperamos que outros opinem.

Obrigado, comecei a escrever os testes, mas uma coisa que observei é que mesmo depois de marcar o comentário como spam, ele aparece e de acordo com o software está correto porque ao marcá-lo como spam, gera um aviso como mencionado por @jywarren acima de "Tem certeza? O usuário não poderá mais fazer login ou publicar, e seu conteúdo ficará oculto, exceto os comentários ." mas é realmente apropriado exibir comentários marcados como spam? 🤔️

é realmente apropriado exibir comentários marcados como spam? 🤔️

Acho que não!

Este texto que você mencionou é muito interessante:

"Tem certeza? O usuário não poderá mais fazer login ou publicar, e seu conteúdo ficará oculto, exceto os comentários. "

Isso me faz pensar que talvez naquela época não moderávamos comentários. Acho que esse pedaço de texto está desatualizado.

Seja qual for o caso, acho que todos concordamos que definitivamente devemos filtrar todos os comentários! Assim, podemos evitar os spambots que @jywarren mencionou originalmente .

Acabei de testar isso localmente e, para mim, parece que isso não foi corrigido. No momento, não estamos filtrando spam ou comentários moderados pela primeira vez RESPOSTAS ... Lembre-se de que os comentários regulares (que não são RESPOSTAS a outros comentários) estão sendo filtrados, portanto, isso se aplica apenas às respostas. (Eu testei os comentários que NÃO são respostas e estão sendo moderados)

Vou quebrar isso um pouco mais. Localmente, criei uma nova conta e postei um comentário em uma nota. Isso é o que vejo quando posto um comentário. Até agora tudo bem:

Screen Shot 2021-03-22 at 11 39 30 AM

Como usuário, a mensagem _ "Aprovação pendente pelos moderadores da comunidade" _ me faz pensar que meu comentário não aparecerá publicamente.

No entanto, o comentário não aparecer publicamente! Quando eu visito a mesma nota em uma janela anônima que está desconectada do site, o comentário aparece exatamente como apareceu para o usuário _cisco_:

Screen Shot 2021-03-22 at 11 43 21 AM

Banir o usuário _cisco_ não parece mudar muito as coisas também. A mensagem _ "Aprovação pendente" _ desaparece, mas o comentário ainda pode ser visualizado em uma janela anônima:

Screen Shot 2021-03-22 at 11 46 06 AM

Então, sim, isso definitivamente precisa mudar.

@ 17sushmita Vá em frente e continue trabalhando nisso!

Além disso, se você ainda não o encontrou, temos um usuário _spammer_ banido já criado em /test/fixtures/users.yml

@ noi5e Essa foi uma explicação muito clara. Eu também testei de forma muito semelhante no meu sistema local e os resultados foram os mesmos, o que me fez pensar assim. Portanto, primeiro vou trabalhar para remover os comentários de spam e, em seguida, escrever um teste para saber se está corrigido ou não.

À parte, parece que as respostas a comentários não aparecem atualmente no painel de moderação de spam do administrador:

Screen Shot 2021-03-22 at 11 40 21 AM

E se o usuário Cisco postar uma resposta de comentário, isso não os fará aparecer em Usuários ativos:

Screen Shot 2021-03-22 at 11 40 35 AM

Problema em potencial para o projeto de moderação de spam Outreachy mencionado em # 9257?

Obrigado @ 17sushmita e @ noi5e por desempacotar isto tão completamente. Minhas desculpas pela nota pouco clara em minha mensagem original, mas @ noi5e está completamente correto - precisamos apenas da mensagem mais simples "Moderar o primeiro comentário".

filtragem de spam ou comentário moderado pela primeira vez REPLIES

E grande captura que ainda não foi resolvida para REPLIES.

Agradeço muito toda a ajuda, vocês dois. 🎉

Vou observar o problema do painel de spam na nova descrição do projeto !!!

Olá @jywarren @ noi5e , Desculpe por perguntar novamente, mas tive mais uma confusão. Devemos mostrar um comentário que não seja spam, mas o usuário foi banido? O que fazer nesses casos?

Sim, atualmente o status de usuários banidos não afeta a visibilidade de seus
comentários. Obrigado!

Na Quarta, 24 de março de 2021, 8:17 AM Sushmita @ . * > escreveu:

Olá @jywarren https://github.com/jywarren @ noi5e
https://github.com/noi5e , Desculpe por perguntar de novo, mas eu tinha mais um
confusão. Devemos exibir um comentário que não seja spam, mas o usuário seja
banido? O que fazer nesses casos?

-
Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/publiclab/plots2/issues/8854#issuecomment-805774370 ,
ou cancelar
https://github.com/notifications/unsubscribe-auth/AAAF6J4WSMFWF64K72GXR5TTFHJ6NANCNFSM4U4TWDIQ
.

À parte, parece que as respostas a comentários não aparecem atualmente no painel de moderação de spam do administrador:

Screen Shot 2021-03-22 at 11 40 21 AM

E se o usuário Cisco postar uma resposta de comentário, isso não os fará aparecer em Usuários ativos:

Screen Shot 2021-03-22 at 11 40 35 AM

Problema em potencial para o projeto de moderação de spam Outreachy mencionado em # 9257?

@ noi5e Não consigo reproduzir o problema de respostas a comentários localmente. Efetuei login como um novo usuário, respondi com um comentário, desconectei e efetuei login como administrador e marquei a resposta do comentário como spam. Eu fui para a página de moderação de spam e encontrei a resposta do comentário nos comentários.

image

image

Tem algo que estou perdendo?

Olá @TildaDares , acredito que este problema foi corrigido em # 9381

Obrigado @jcads

Esta página foi útil?
0 / 5 - 0 avaliações