Hi everyone! Love discourse, it’s the backbone of our community.
We are an open source project with a strong presence on Github. We have a robot written in Python which manages our Github repositories and does things like merge pull requests automatically if they have been approved. Since we have a lot of repositories and not everyone follows every repository it would be awesome if the robot could post in the forums when a new project is created or when a pull request needs to be reviewed.
Can anyone point me in the direction of how I could best call the Discourse API from Python?
I’m suddenly seeing this error too over the weekend when attempting to fetch a topic. This topic fetch code hasn’t changed in over a year, so something about the API must have changed. I’m investigating.
I don’t know about the project mentioned above, but here is the status for bennylope’s project. Maybe the same fix is needed on other wrappers as well.
Thanks! This worked. I uninstalled pydiscourse, and used a local copy based on what you suggested. And now, it works!
I am trying to use Python’s Sentiment analyzer to get a sentiment analysis of the latest posts. I will keep you updated on how it goes.
Oui, je sais que c’est un vieux post, mais comme il correspond essentiellement à ce que je cherche, il n’y a aucun intérêt à créer un nouveau post quand celui-ci fonctionne, il suffit juste de le mettre à jour.
Bien que je sache programmer dans de nombreux langages de programmation, désolé de dire que Ruby n’en fait pas partie. Je me demandais s’il existait des réponses plus récentes ou meilleures à cette question.
Interagir avec Discourse depuis Python ?
En tant que question secondaire, les plugins et/ou thèmes Discourse peuvent-ils être créés en utilisant Python ?
Je l’utilise en production pour un objectif très spécifique car il n’existe pas de module équivalent maintenu dans l’écosystème RoR, ce qui m’évite d’avoir à traduire puis maintenir tout ce code spécialisé en Ruby.
Cela fonctionne étonnamment bien.
Cela dit, la base de ce plugin est toujours écrite en Ruby.
Je vous recommanderais simplement d’apprendre également Ruby on Rails - c’est vraiment un langage très agréable et, à mon avis, le code est plus agréable à lire que Python
Je devrais également prendre le temps d’apprendre davantage Python si/quand le besoin s’en fera sentir.
Note annexe intéressante : une partie du code dans Discourse Chatbot 🤖 qui crée le comportement de l’agent était basée sur un agent Python appelé “Funkagent” que j’ai d’abord traduit en Ruby on Rails (puis modifié, amélioré.). La traduction peut donc être une option, bien sûr, si cela a du sens. Dans ce cas, cela avait du sens.
J’ai écrit plusieurs scripts d’importation avant de vraiment « apprendre » Ruby. Selon ce que vous voulez faire, vous pourriez être en mesure de faire plus avec vos compétences actuelles que vous ne le pensez. Il est probablement plus facile d’utiliser Ruby que de comprendre comment utiliser autre chose.
Cependant, si vous interagissez avec l’API, vous pouvez utiliser le langage de votre choix.
Ruby est magnifiquement conçu et un jeu d’enfant à apprendre, à mon humble avis.
Ruby on Rails demande un peu plus d’apprentissage et, en tant que framework reposant sur des conventions, peut être délicat par moments mais très puissant une fois que vous l’avez maîtrisé.
Choisissez quelque chose que vous voulez faire qui semble simple. Si vous voulez quelque chose comme cakeday qui change la définition d’un anniversaire, alors cakeday pourrait être un bon point de départ. Vous sélectionneriez une petite chose que vous voulez changer et feriez les choses une petite étape à la fois.