¿Interactuar con Discourse desde Python?

Un poco tarde para esta conversación (bueno, para su continuación :p), pero también quería extraer datos de un foro de Discourse y no quería el problema de configurar una clave de API. Si tú (o alguien más) quiere un envoltorio sencillo para obtener publicaciones de cualquier foro de Discourse, puedes echarle un vistazo aquí.

Liberado en PyPi, por lo que es fácil de instalar con pip/uv, maneja la limitación de velocidad por ti y está tipado con Pydantic (lo que mejora la experiencia de desarrollo, en mi opinión). Uso:

from discourse_reader import DiscourseClient

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

# Navegar por categorías
for cat in client.categories():
    print(f"{cat.name}: {cat.topic_count} temas")

# Obtener un tema con todas sus publicaciones
topic = client.topics.get(12345)
print(topic.title)
print(topic.opening_post.cooked)       # la publicación original (HTML)
print(topic.accepted_answer)           # respuesta aceptada o None
for reply in topic.posts.replies():
    print(reply.username, reply.cooked)

No es tan extenso como pydiscourse, pero eso es intencional ya que funciona sin una clave de API. Tampoco ofrecerá datos mejores o más rápidos que el complemento Data Explorer, pero creo que es útil si solo quieres extraer rápidamente un lote de hilos o estadísticas simples del sitio :slight_smile: