¡Hola a todos! Nos encanta Discourse, es la columna vertebral de nuestra comunidad.
Somos un proyecto de código abierto con una fuerte presencia en Github. Tenemos un robot escrito en Python que gestiona nuestros repositorios de Github y realiza tareas como fusionar automáticamente las solicitudes de extracción (pull requests) si han sido aprobadas. Dado que tenemos muchos repositorios y no todos siguen cada uno, sería increíble que el robot publicara en los foros cuando se crea un nuevo proyecto o cuando una solicitud de extracción necesita revisión.
¿Alguien puede indicarme cómo puedo llamar mejor a la API de Discourse desde Python?
¡También estoy viendo repentinamente este error durante el fin de semana al intentar obtener un tema. El código para obtener el tema no ha cambiado en más de un año, por lo que algo debe haber cambiado en la API. Estoy investigando.
No tengo información sobre el proyecto mencionado anteriormente, pero aquí está el estado del proyecto de bennylope. Es posible que se necesite la misma corrección en otros wrappers también.
¡Gracias! Esto funcionó. Desinstalé pydiscourse y usé una copia local basada en lo que sugeriste. ¡Y ahora funciona!
Estoy intentando usar el analizador de sentimientos de Python para obtener un análisis de sentimiento de las últimas publicaciones. Te mantendré al tanto de cómo avanza.
Sí, sé que esta es una publicación antigua, pero dado que es esencialmente lo que busco, no tiene sentido crear una nueva publicación cuando esta funciona, pero solo necesita actualizarse.
Si bien sé programar en muchos lenguajes de programación, lamento decir que Ruby no es uno de ellos. Me preguntaba si hay respuestas más nuevas o mejores a esta pregunta.
¿Interactuar con Discourse desde Python?
Como pregunta secundaria, ¿se pueden crear complementos y/o temas de Discourse usando Python?
Lo uso en producción para un propósito muy específico, ya que no existe un módulo equivalente mantenido en el ecosistema RoR, por lo que me evita tener que traducir y luego mantener todo ese código especializado en Ruby.
Funciona sorprendentemente bien.
Dicho esto, la base de ese complemento todavía está escrita en Ruby.
Te recomendaría que simplemente aprendieras Ruby on Rails también; realmente es un lenguaje muy agradable y, en mi opinión, el código es más agradable de leer que Python
También debería tomarme el tiempo para aprender más Python si/cuando sea necesario.
Nota secundaria interesante: parte del código en Discourse Chatbot 🤖 que crea el comportamiento del agente se basó en un agente de Python llamado “Funkagent”, que primero traduje a Ruby on Rails (y luego modifiqué, mejoré). Por lo tanto, la traducción puede ser una opción, por supuesto, si tiene sentido hacerlo. En ese caso, tuvo sentido.
Escribí varios scripts de importación antes de “aprender” realmente ruby. Dependiendo de lo que quieras hacer, podrías hacer más con tus habilidades actuales de lo que crees. Probablemente sea más fácil usar ruby que averiguar cómo usar otra cosa.
Sin embargo, si estás interactuando con la API, puedes usar el lenguaje que quieras.
Ruby está bellamente diseñada y es pan comido de aprender, en mi humilde opinión.
Ruby on Rails requiere un poco más de aprendizaje y, como framework que se basa en convenciones, puede ser complicado a veces, pero muy potente una vez que le coges el truco.
Elige algo que quieras hacer que parezca simple. Si quieres algo como cakeday que cambia la definición de un aniversario, entonces cakeday podría ser un buen lugar para empezar. Seleccionarías una cosa pequeña que quieras cambiar y harías las cosas un paso a la vez.
Hola a todos, también estoy interesado en obtener datos de Discourse (principalmente estadísticas sobre vistas y número de usuarios) desde Python. Muchos de los paquetes enumerados aquí no parecen estar activos ya. ¿Hay una nueva forma estándar de hacer esto en 2026?
No siempre necesitas usar la interfaz de otra persona.
No es demasiado problemático hacer esto a través de la biblioteca requests incorporada, y si usas algo (por ejemplo, Postman, que ya tengo configurado), puedes importar nuestra especificación de API y luego hacer que genere código: