Хм. Я не думаю, что делаю что-то особенное, кроме как просто оборачиваю обычный запрос curl к любому из публично документированных API-эндпоинтов. Однако, если команда @Discourse обидится на то, что я создал, пожалуйста, дайте мне знать.
Лично я не думаю, что сам пакет нарушает какие-либо Условия использования (ToS), поскольку ответственность за соблюдение условий форума всегда лежит на разработчике, использующем инструмент. Этот пакет обращается только к публичным и документированным API-эндпоинтам; если у разработчика есть злонамеренный умысел на скрапинг или мониторинг форума, это и так уже тривиальная задача.
Кстати, pydiscourse предлагает аналогичный функционал; единственное отличие — необходимость наличия API-ключа (я не знаю, насколько это легко сделать обычному пользователю), после чего его также можно использовать для нарушения условий использования любого форума. Так что если правило по умолчанию заключается в том, чтобы не автоматизировать доступ к форуму, не нарушают ли ToS и pydiscourse, и discourse2? discourse2 даже рекламирует доступ к общедоступным данным в списке своих функций, если API-ключ не предоставлен:
Работает как в серверной, так и в браузерной* среде (*полезно для запроса публичных данных без API-ключей и с соответствующего источника, например, последние темы и т. д.)
Скорее всего, существует множество других пакетов на других языках, которые уже поддерживают такой тип доступа.
Немного контекста: я создал это, чтобы легко извлекать данные с форума, который размещает один из наших клиентов (но у нас нет прямого доступа к базе данных). Это просто делает мой рабочий процесс чище, и я надеюсь помочь другим, оказавшимся в такой же ситуации.