Interact with discourse from Python?

Чуть опоздал к этому разговору (ну, к его продолжению :p), но я тоже хотел получать данные из форума Discourse и не хотел возиться с настройкой API-ключа. Если вы (или кто-то ещё) хотите простое обёртку для извлечения постов с любого форума Discourse, можете посмотреть её здесь: GitHub - elninotech/discourse-reader: A simple Python wrapper for reading data from Discourse forums · GitHub

Библиотека опубликована на PyPi, поэтому легко устанавливается через pip/uv, автоматически обрабатывает ограничение частоты запросов и имеет статическую типизацию с помощью Pydantic (на мой взгляд, это улучшает опыт разработки). Пример использования:

from discourse_reader import DiscourseClient

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

# Просмотр категорий
for cat in client.categories():
    print(f"{cat.name}: {cat.topic_count} тем")

# Получение темы со всеми её постами
topic = client.topics.get(12345)
print(topic.title)
print(topic.opening_post.cooked)       # исходный пост (HTML)
print(topic.accepted_answer)           # принятый ответ или None
for reply in topic.posts.replies():
    print(reply.username, reply.cooked)

Конечно, это не даст лучших или более быстрых данных, чем плагин Data Explorer, но, на мой взгляд, это удобно, если нужно быстро получить пакет тем или простую статистику сайта :slight_smile: