Qual a melhor maneira, na sua opinião, de buscar 10% das mensagens privadas (PMs) entre usuários nos últimos 30 dias? Estou tentando encontrar uma função de “aleatorização” que possa ser invocada para isso.
Gerencio um site onde as pessoas discutem assuntos em grande parte ilegais — principalmente drogas. Como plataforma, não permitimos explicitamente vendas ou qualquer coisa semelhante. Estou procurando algum tipo de “chamada aleatória” (desculpe, não sou programador e não sei articular exatamente o que estou pedindo) — uma forma aleatória e justa de poder defender que fazemos “verificações pontuais” nas PMs para garantir que as regras estão sendo seguidas.
Obviamente, não quero escolher pessoas arbitrariamente para isso. Temos palavras e frases sinalizadas, e isso funciona, mas algumas pessoas estão contornando isso acidentalmente. Gostaria (provavelmente preciso) poder afirmar que temos denúncias da comunidade, moderadores, palavras monitoradas e essa “verificação pontual” — só não tenho certeza de onde obter o parâmetro de aleatoriedade, caso exista.
Não estou pedindo código ou scripts gratuitos, aliás. Só não tenho certeza de como formular o que quero, seja para buscar no mercado ou para verificar se é viável.
Você chamaria a API para obter as mensagens desse usuário. E as mensagens não são armazenadas como registros de mensagem; elas são apenas postagens normais, vinculadas a tópicos, então você precisa distinguir entre postagens comuns e postagens de mensagem.
Hmmmmmmmmmmmmmm
Certo, acho que vamos chamar uma função randômica criptográfica para buscar tópicos que tenham apenas, digamos, 2 usuários e ver como isso funciona. Retornarei com os resultados se houver mais alguém que gerencia comunidades e possa ter necessidade legal de fazer verificações pontuais nas PMs de forma justa.
Que massa, cara! Posso exportar esses resultados e depois fazer a sorteio usando o random.org, verificando as mensagens privadas desses usuários para ver se estão sendo safados. Acho que o random permite salvar a lista de sorteio para referência, se você pagar uma pequena taxa, o que serve como prova de que não houve má-fé da parte dos administradores.
E se você pudesse “buscar” nos MPs termos como “buy” ou “drugs”
Dê uma olhada:
-- [params]
-- int :limit = 10
-- string :term = %term%
SELECT p.user_id, p.topic_id, p.post_number, p.raw, p.created_at::date
FROM posts p
LEFT JOIN topics t on t.id = p.topic_id
WHERE t.archetype = 'private_message'
AND t.title <> 'WELCOME-TITLE-from-discobot'
AND p.created_at::date > now()::date - 8
AND p.raw ILIKE :term
ORDER BY p.created_at DESC
LIMIT :limit
Substitua WELCOME-TITLE-from-discobot pelo título exato da sua mensagem de boas-vindas, para que todas as mensagens de boas-vindas geradas automaticamente sejam excluídas.
Ele tropeçou na forma de lidar com o emoji; nosso cumprimento é Greeetings! Então, simplesmente deixamos como “saudações” e deixamos rodar, e funciona bem em grande parte — embora tenhamos mais de 20 frases de captura geral na seção de registro/bandeira de palavras monitoradas.
Porque, por exemplo, alguém pode estar apenas conversando sobre a melhor experiência com LSD que já teve com um amigo, o que é fine; o que não é fine é “Onde eu consigo”, “Como eu faço”, “Quem tem o melhor?”. Por isso, usamos o sistema de sinalização embutido para pegar esses casos, e para esse fim funciona bem.
Legalmente, porém, como há “mais” que poderíamos estar fazendo para cumprir tudo o que é “razoavelmente” esperado de nós, caso algo aconteça, agora posso dizer que a comunidade sinaliza conteúdo inadequado (já que são bons e conhecem as regras), nós moderamos, temos sinalizações automáticas do sistema, frases e termos monitorados e verificamos aleatoriamente mensagens privadas (PMs) em busca de comportamentos suspeitos.
Então — sim, o seu segundo funciona, mas é (sem soar mal-educado) redundante para nós especificamente, já que falar sobre drogas não é ilegal — pelo menos onde estamos —, mas tentar conseguir, fabricar ou qualquer outra coisa relacionada sim, e não queremos ter nada a ver com isso.
Obrigado novamente, amigo. A primeira triagem exige trabalho manual mínimo, pode ser delegada a um membro da equipe para tratar e é sistemática.