Gostaria de saber quais posts no meu fórum receberam mais curtidas desde que começamos a usar o Discourse (há quase 4 anos).
Pesquisei aqui e encontrei isto, que parece ser a mesma pergunta, mas o tópico está fechado, então não posso adicionar a ele:
As soluções dadas nesse outro tópico por @dax não fornecem o que eu (ou aquele outro solicitante) estamos procurando:
discourse.example.com/?order=likes (likes dá em todos os tópicos)
ou discourse.example.com/search digite in:likes e ordene os resultados por “mais curtidos”
O primeiro não funciona de forma alguma (e apenas retorna à página inicial do meu fórum).
O segundo retorna apenas resultados para os posts mais curtidos que eu mesmo curti. Veja aqui:
Quando digito in:likes no campo de pesquisa, ele automaticamente marca a caixa “Eu curti”. Se eu desmarcar essa caixa, o texto in:likes no campo de pesquisa é apagado junto com ela. Não posso ter in:likes no campo de pesquisa e uma caixa “Eu curti” desmarcada.
Então – isso não me dá o que eu quero saber. Existe uma maneira de conseguir isso?
Acabei de criar esta consulta do Explorador de Dados com a ajuda do Gemini. Retorna os 10 posts mais curtidos, de todos os tempos.
-- Consulta os 10 posts mais curtidos de todos os tempos (para versões modernas do Discourse)
SELECT
p.id AS post_id,
p.like_count,
CONCAT('/t/', t.slug, '/', t.id, '/', p.post_number) AS url,
t.title AS topic_title,
p.user_id,
u.username
FROM posts AS p
JOIN topics AS t ON t.id = p.topic_id
JOIN users AS u ON u.id = p.user_id
WHERE p.deleted_at IS NULL
AND t.deleted_at IS NULL
AND p.post_type = 1 -- 1 para posts regulares
ORDER BY p.like_count DESC
LIMIT 10