Получение данных (например, постов темы) через кроссплатформенную утилиту Go

‘discourse-reader’ извлекает данные (например, сайт, категорию, тему) с форума Discourse от имени пользователя. Утилиту можно найти здесь:

discourse-reader                                                                       

Программа:
  Имя       : discourse-reader
  Релиз     : v1.0.0 - 2022/11/18
  Назначение: Discourse Reader
  Инфо      : Извлекает данные (например, сайт, категорию, тему) с форума Discourse.

Использование:
  discourse-reader -forum=string -query=string -category=int -topic=int -pages=int -output=string -userapikey -sleeptime=int

Примеры для общего запроса:
  discourse-reader
  discourse-reader -query=community.openstreetmap.org/site.json -output=community.openstreetmap.org.json
  discourse-reader -query=community.openstreetmap.org/site.json -output=community.openstreetmap.org.json -userapikey=bd38603815e3f2562c3eb3988c69eb77
  discourse-reader -query=meta.discourse.org/site.json -output=meta.discourse.org.json
  discourse-reader -query=meta.discourse.org/session/current.json -output=session-current.json

Примеры для категории:
  discourse-reader -forum=community.openstreetmap.org -category=56 -output=category-56.json
  discourse-reader -forum=community.openstreetmap.org -category=56 -output=category-56.json -userapikey=bd38603815e3f2562c3eb3988c69eb77
  discourse-reader -forum=meta.discourse.org -category=67 -pages=99 -sleeptime=6 -output=category-67.json

Примеры для темы:
  discourse-reader -forum=community.openstreetmap.org -topic=4120 -output=topic-4120.json
  discourse-reader -forum=community.openstreetmap.org -topic=4120 -pages=99 -sleeptime=6 -output=topic-4120.json
  discourse-reader -forum=community.openstreetmap.org -topic=4120 --output=topic-4120.json -userapikey=bd38603815e3f2562c3eb3988c69eb77
  discourse-reader -forum=meta.discourse.org -topic=112837 -output=topic-112837.json

Параметры:
  -category int
    	извлечь данные (список тем) для категории с идентификатором (по умолчанию -1)
  -forum string
    	URL форума Discourse
  -output string
    	имя файла вывода JSON
  -pages int
    	количество страниц данных для извлечения (по умолчанию 19)
  -query string
    	общий запрос на извлечение данных (полный URL)
  -sleeptime int
    	время ожидания в секундах перед извлечением следующей страницы (избегает ограничения скорости пользователя) (по умолчанию 2)
  -topic int
    	извлечь данные (список сообщений) для темы с идентификатором (по умолчанию -1)
  -userapikey string
    	личный ключ API пользователя (также может быть установлен как переменная окружения 'USER_API_KEY')

Примечания:
  - Ключ API пользователя можно установить как переменную окружения [USER_API_KEY].
  - Интернет-прокси можно установить как переменную окружения [HTTPS_PROXY].
  - Примеры для Linux:
    export USER_API_KEY=bd38603815e3f2562c3eb3988c69eb77
    export HTTPS_PROXY=http://user:password@194.114.63.23:8080
  - Примеры для Windows:
    set USER_API_KEY=bd38603815e3f2562c3eb3988c69eb77
    set HTTPS_PROXY=http://user:password@194.114.63.23:8080

Ограничение скорости со стороны сервиса форума:
  - Эта программа функционально не отличается от пользователя в браузере. Однако данные извлекаются несколько быстрее. Это может привести к отказам (ограничению скорости) со стороны сервиса. Чтобы предотвратить это, программа может делать паузу между получением страниц. Время паузы можно указать с помощью параметра '-sleeptime=int'.
  - Типичные настройки ограничения скорости пользователя:
    - запросов в минуту : 20
    - запросов в день   : 2880
1 лайк