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?
Я тоже внезапно столкнулся с этой ошибкой в выходные при попытке получить тему. Код получения темы не менялся более года, значит, что-то в API изменилось. Я разбираюсь.
Спасибо! Это сработало. Я удалил pydiscourse и использовал локальную копию на основе ваших рекомендаций. Теперь всё работает!
Я пытаюсь использовать анализатор тональности Python для анализа тональности последних сообщений. Буду держать вас в курсе результатов.
Да, я знаю, что это старый пост, но поскольку он по сути отвечает на мой вопрос, нет смысла создавать новый, если этот работает, но его нужно просто актуализировать.
Хотя я умею программировать на многих языках, к сожалению, Ruby не входит в их число. Хотелось бы узнать, есть ли более новые или лучшие ответы на этот вопрос.
Взаимодействие с Discourse из Python?
В качестве дополнительного вопроса: можно ли создавать плагины и/или темы для Discourse с помощью Python?
Я использую это в продакшене для очень специфичной задачи, так как в экосистеме RoR нет аналогичного модуля. Это избавляет меня от необходимости переводить и затем поддерживать весь этот специализированный код на Ruby.
Работает это удивительно хорошо.
Тем не менее, основа этого плагина всё ещё написана на Ruby.
Я бы порекомендовал вам также изучить Ruby on Rails — это действительно приятный язык, и, на мой взгляд, код на нём читается лучше, чем на Python
Мне тоже стоит найти время, чтобы больше узнать о Python, если возникнет такая необходимость.
Интересный побочный факт: часть кода в Discourse Chatbot 🤖, отвечающая за поведение агента, была основана на Python-агенте под названием “Funkagent”, который я сначала перевёл на Ruby on Rails (а затем модифицировал и улучшил). Так что перевод, конечно, может быть вариантом, если это имеет смысл. В данном случае это имело смысл.
Я написал несколько скриптов импорта, прежде чем действительно «научился» Ruby. В зависимости от того, что вы хотите сделать, вы, возможно, сможете сделать больше с вашим текущим набором навыков, чем думаете. Скорее всего, проще использовать Ruby, чем разбираться, как использовать что-то другое.
Однако, если вы взаимодействуете с API, то можете использовать любой язык программирования, какой захотите.
Ruby имеет прекрасный дизайн и, на мой взгляд, её очень легко изучить.
Ruby on Rails требует чуть больше времени на обучение, и как фреймворк, основанный на соглашениях, иногда может быть капризным, но при этом очень мощным, как только вы в нём разберётесь.
Выберите задачу, которую вы хотите решить, и которая кажется вам простой. Если вы хотите что-то вроде cakeday, которое меняет определение годовщины, то cakeday может стать хорошей отправной точкой. Выберите одну небольшую вещь, которую вы хотите изменить, и двигайтесь шаг за шагом.
Всем привет! Меня тоже интересует получение данных из Discourse (в основном статистики по просмотрам и количеству пользователей) через Python. Многие из перечисленных здесь пакетов, похоже, больше не поддерживаются. Есть ли новый стандартный способ решения этой задачи в 2026 году?
Вам не всегда нужно использовать интерфейс кого-то другого.
Это не слишком сложно сделать с помощью встроенной библиотеки requests, и если вы используете какой-то инструмент (например, Postman, который у меня уже настроен), вы можете импортировать нашу спецификацию API в него, а затем сгенерировать код: