Obtenha apenas postagens de nível superior no tópico via API do Discourse

Gostaria de poder obter as 20 publicações mais recentes de nível superior em um tópico sem precisar buscar recursivamente e filtrar as respostas até atingir 20. Existe algum filtro para isso que eu possa ter perdido em algum lugar da API?

No momento, parece que o array “stream” na resposta inclui as respostas das publicações por número de postagem. Então, se eu tiver 4 publicações, [1, 2, 3, 4], e responder à publicação 1, o stream agora será [1, 2, 3, 4, 5], e a única maneira de saber que o 5 é uma resposta ao 1 é examinando a própria postagem, encontrando “reply_to_post_number” => 1 e filtrando-a. Estou perdendo algo?

1 curtida

That is correct. There is not a filter that can be added to the topic endpoint to get what you are after. However we do have the

which you could use to write a sql query to get what you are after. You can then save that query and hit the api endpoint for the saved query and pass it a topic_id as a param.

2 curtidas

There isn’t a real way to get what you actually want out of this, because the metadata is messy, and people are messy and don’t really care about your analytics too much :wink:

2 curtidas

Thanks, I will give this a shot.

Agora temos o parâmetro de consulta filter_top_level_replies=true que cuidará disso para você.

Aqui está um exemplo dele aqui no meta https://meta.discourse.org/t/linkify-words-in-post/82193.json?filter_top_level_replies=true