Como os administradores encontram posts censurados/existe uma contagem de palavras censuradas por usuário?

Estou tentando fazer com que minha comunidade se autorregule e, por isso, coloquei a maioria das palavras/informações sensíveis (frases RegEx) na lista de palavras censuradas.

No entanto, notei que isso não notifica os administradores quando as postagens são censuradas. O ideal seria ter uma contagem de quantas vezes um usuário usou uma palavra/frase inadequada para que possamos silenciá-lo, se necessário, por muitas postagens inapropriadas.

O Discourse conta as postagens censuradas por usuário/como os administradores podem ser notificados sobre postagens censuradas?

@Nesha

2 curtidas

Ou de outro ângulo, é possível usar filtros de pesquisa avançada para listar posts censurados ou sinalizados?

E sim, fizemos nossa pesquisa primeiro:

Compilamos nossa própria lista do que (mais ou menos) funciona:

Mais dicas legais para listar tópicos

Liste todos os tópicos arquivados:
https://datalabcommonstrial.discourse.group/latest?status=archived

Liste todos os tópicos fechados:
https://datalabcommonstrial.discourse.group/latest?status=closed

Liste todos os tópicos excluídos:
https://datalabcommonstrial.discourse.group/latest?status=deleted

Liste todos os tópicos impulsionados:
https://datalabcommonstrial.discourse.group/latest?status=bumped

Liste todos os tópicos adiados:
https://datalabcommonstrial.discourse.group/latest?status=deferred

Liste todos os tópicos não listados:
https://datalabcommonstrial.discourse.group/latest?status=unlisted

Liste todos os tópicos atribuídos:
https://datalabcommonstrial.discourse.group/latest?status=assigned

Liste todos os tópicos não respondidos:
https://datalabcommonstrial.discourse.group/latest?max_posts=1

? visível ou invisível?

Mais:

Isso pode ser usado na Caixa de pesquisa:
Você pode fazer isso na pesquisa com in:pinned e status:archived

Ainda mais:

Como pesquisar/filtrar tópicos sem tags

advanced_filter(/^status:open$/) do |posts|
advanced_filter(/^status:closed$/) do |posts|
advanced_filter(/^status:archived$/) do |posts|
advanced_filter(/^status:noreplies$/) do |posts|
advanced_filter(/^status:single_user$/) do |posts|
advanced_filter(/^in:first|^f$/) do |posts|
advanced_filter(/^in:pinned$/) do |posts|
advanced_filter(/^in:unpinned$/) do |posts|
advanced_filter(/^in:(likes|bookmarks)/) do |posts, match| advanced_filter(/^in:posted/) do |posts|
advanced_filter(/^in:seen$/) do |posts|
advanced_filter(/^in:unseen$/) do |posts|
advanced_filter(/^in:wiki$/) do |posts, match|
advanced_filter(/^posts_count:(\d+)/) do |posts, match| advanced_filter(/^min_post_count:(\d+)/) do |posts, match|
advanced_filter(/^badge:()/) do |posts, match| advanced_filter(/^with:images/) do |posts|
advanced_filter(/^#([\p{L}0-9-:=]+)/) do |posts, match| advanced_filter(/^group:(.+)/) do |posts, match|
advanced_filter(/^user:(.+)/) do |posts, match| advanced_filter(/^@([a-zA-Z0-9_-.]+)/) do |posts, match|
advanced_filter(/^before:()/) do |posts, match| advanced_filter(/^after:(.*)/) do |posts, match|
advanced_filter(/^tags?:([\p{L}0-9,-+]+)/) do |posts, match| advanced_filter(/^-tags?:([\p{L}0-9,-<em>+]+)/) do |posts, match|
advanced_filter(/^filetypes?:([a-zA-Z0-9,-_]+)$/) do |posts, match|

3 curtidas

FYI: Construímos uma consulta relativamente simples que, no momento, é boa o suficiente para nossas necessidades:

SELECT
id, user_id, topic_id, post_number, cooked, raw
FROM posts p
WHERE cooked ~* ‘.*■’

Com resultados:

Um dos nossos Wizzzards de SQL está construindo uma consulta muito mais sofisticada, que encontra a posição exata da palavra censurada. Funciona mais ou menos, mas ele continua resmungando que raw e cooked não têm o mesmo comprimento… o que nos dá uma nova apreciação de quão difícil é armazenar e, especialmente, gerenciar os resultados do que foi encontrado por palavras vigiadas.

2 curtidas

Você conseguiu refinar isso no final?

Não, acho que era apenas um pesadelo demais encontrar a palavra censurada na versão markdown em vez da versão ao vivo e era mais fácil de escanear com os olhos (no momento para nossa nova plataforma). Se alguém mais encontrou uma maneira, me avise!

1 curtida