Hallo zusammen! Wir lieben Discourse, es ist das Rückgrat unserer Community.
Wir sind ein Open-Source-Projekt mit einer starken Präsenz auf GitHub. Wir haben einen in Python geschriebenen Roboter, der unsere GitHub-Repositories verwaltet und Aufgaben wie das automatische Zusammenführen von Pull Requests übernimmt, sobald diese genehmigt wurden. Da wir viele Repositories haben und nicht jeder jedem Repository folgt, wäre es großartig, wenn der Roboter in den Foren posten könnte, wenn ein neues Projekt erstellt wird oder wenn ein Pull Request überprüft werden muss.
Kann mir jemand zeigen, wie ich die Discourse-API am besten aus Python aufrufen kann?
Ich sehe dieses Fehler über das Wochenende plötzlich auch, wenn ich versuche, ein Thema abzurufen. Der Code zum Abrufen des Themas hat sich seit über einem Jahr nicht geändert, also muss sich etwas an der API geändert haben. Ich untersuche das.
Ich weiß nichts über das oben genannte Projekt, aber hier ist der Status für bennylope’s Projekt. Vielleicht ist die gleiche Korrektur auch bei anderen Wrappern erforderlich.
Danke! Das hat funktioniert. Ich habe pydiscourse deinstalliert und eine lokale Kopie basierend auf deinem Vorschlag verwendet. Und jetzt funktioniert es!
Ich versuche, den Sentiment-Analysator von Python zu verwenden, um eine Sentiment-Analyse der neuesten Beiträge durchzuführen. Ich halte dich auf dem Laufenden, wie es läuft.
Ja, ich weiß, dass dies ein alter Beitrag ist, aber da er im Wesentlichen dem entspricht, was ich suche, macht es keinen Sinn, einen neuen Beitrag zu erstellen, wenn dieser funktioniert, aber nur auf den neuesten Stand gebracht werden muss.
Obwohl ich in vielen Programmiersprachen programmieren kann, muss ich leider sagen, dass Ruby nicht dazu gehört. Ich habe mich gefragt, ob es neuere oder bessere Antworten auf diese Frage gibt.
Mit Discourse aus Python interagieren?
Als Nebenfrage: Können Discourse-Plugins und/oder -Themes mit Python erstellt werden?
Ich verwende es in der Produktion für einen ganz bestimmten Zweck, da es kein gleichwertiges Modul im RoR-Ökosystem gibt, sodass ich nicht den gesamten spezialisierten Code in Ruby übersetzen und dann pflegen muss.
Es funktioniert überraschend gut.
Das Basis-Plugin ist jedoch immer noch in Ruby geschrieben.
Ich würde Ihnen empfehlen, einfach auch Ruby on Rails zu lernen – es ist wirklich eine sehr angenehme Sprache und meiner Meinung nach ist der Code schöner zu lesen als Python
Ich sollte mir auch die Zeit nehmen, mehr Python zu lernen, wenn die Notwendigkeit besteht.
Interessante Randnotiz: Ein Teil des Codes in Discourse Chatbot 🤖, der das Agentenverhalten erstellt, basierte auf einem Python-Agenten namens „Funkagent“, den ich zuerst in Ruby on Rails übersetzt (und dann modifiziert, erweitert) habe. Eine Übersetzung kann also natürlich eine Option sein, wenn sie sinnvoll ist. In diesem Fall war sie sinnvoll.
Ich habe mehrere Import-Skripte geschrieben, bevor ich Ruby wirklich „gelernt“ habe. Je nachdem, was Sie tun möchten, können Sie mit Ihren aktuellen Fähigkeiten möglicherweise mehr erreichen, als Sie denken. Es ist wahrscheinlich einfacher, Ruby zu verwenden, als herauszufinden, wie man etwas anderes benutzt.
Wenn Sie jedoch mit der API interagieren, können Sie jede beliebige Sprache verwenden.
Ruby ist schön gestaltet und meiner Meinung nach ein Kinderspiel zu lernen.
Ruby on Rails erfordert etwas mehr Lernaufwand und kann als Framework, das auf Konventionen basiert, manchmal fummelig sein, ist aber sehr leistungsfähig, wenn man den Dreh raus hat.
Wählen Sie etwas, das Sie tun möchten und das einfach erscheint. Wenn Sie etwas wie cakeday möchten, das die Definition eines Jubiläums ändert, dann könnte cakeday ein guter Ausgangspunkt sein. Sie würden eine kleine Sache auswählen, die Sie ändern möchten, und die Dinge Schritt für Schritt tun.
Hallo zusammen, ich bin auch daran interessiert, Daten von Discourse (hauptsächlich Statistiken zu Aufrufen und Benutzeranzahl) über Python abzurufen. Viele der hier aufgeführten Pakete scheinen nicht mehr aktiv zu sein. Gibt es 2026 eine neue Standardmethode, dies zu tun?
Sie müssen nicht immer die Schnittstelle eines anderen verwenden.
Es ist nicht zu umständlich, dies über die eingebaute requests-Bibliothek zu tun, und wenn Sie etwas verwenden (z. B. Postman, das ich bereits eingerichtet habe), können Sie unsere API-Spezifikation importieren und es dann Code generieren lassen: