Interaja com o Discourse a partir do Python?

Cheguei um pouco tarde a essa conversa (bem, à sua continuação :p), mas eu também queria extrair dados de um fórum Discourse e não queria a complicação de configurar uma chave de API. Se você (ou qualquer pessoa) quiser um wrapper simples para buscar posts de qualquer fórum Discourse, pode conferir aqui.

Lançado no PyPI, então é fácil instalar com pip/uv, lida com rate limiting automaticamente e é tipado com Pydantic (o que, na minha opinião, melhora a experiência do desenvolvedor). Uso:

from discourse_reader import DiscourseClient

client = DiscourseClient("https://meta.discourse.org")

# Navegar pelas categorias
for cat in client.categories():
    print(f"{cat.name}: {cat.topic_count} tópicos")

# Obter um tópico com todos os seus posts
topic = client.topics.get(12345)
print(topic.title)
print(topic.opening_post.cooked)       # o post original (HTML)
print(topic.accepted_answer)           # resposta aceita ou None
for reply in topic.posts.replies():
    print(reply.username, reply.cooked)

Não é tão abrangente quanto o pydiscourse, mas isso é intencional, já que funciona sem uma chave de API. Também certamente não oferecerá dados melhores ou mais rápidos do que o plugin Data Explorer, mas acho que é legal se você só quer extrair rapidamente um lote de threads ou estatísticas simples do site :slight_smile: