Recuperar dados (ex: posts de tópicos) via utilitário Go (independente de SO)

‘discourse-reader’ recupera dados (por exemplo, site, categoria, tópico) do fórum Discourse em nome do usuário. A utilidade pode ser encontrada aqui:

discourse-reader                                                                       

Programa:
  Nome    : discourse-reader
  Versão : v1.0.0 - 2022/11/18
  Propósito : Leitor do Discourse
  Info    : Recupera dados (por exemplo, site, categoria, tópico) do fórum Discourse.

Uso:
  discourse-reader -forum=string -query=string -category=int -topic=int -pages=int -output=string -userapikey -sleeptime=int

Exemplos para consulta geral:
  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

Exemplos para categoria:
  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

Exemplos para tópico:
  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

Opções:
  -category int
    	recupera dados (lista de tópicos) para a categoria com identificador (padrão -1)
  -forum string
    	URL do fórum Discourse
  -output string
    	nome do arquivo de saída JSON
  -pages int
    	páginas de dados a serem recuperadas (padrão 19)
  -query string
    	consulta geral de recuperação de dados (URL completa)
  -sleeptime int
    	tempo de espera em segundos antes de recuperar a próxima página (evita limitação de taxa do usuário) (padrão 2)
  -topic int
    	recupera dados (lista de posts) para o tópico com identificador (padrão -1)
  -userapikey string
    	chave de API de usuário pessoal (também pode ser definida como variável de ambiente 'USER_API_KEY')

Observações:
  - A chave de API do usuário pode ser definida como variável de ambiente [USER_API_KEY].
  - O proxy da Internet pode ser definido como variável de ambiente [HTTPS_PROXY].
  - Exemplos para Linux:
    export USER_API_KEY=bd38603815e3f2562c3eb3988c69eb77
    export HTTPS_PROXY=http://user:password@194.114.63.23:8080
  - Exemplos para Windows:
    set USER_API_KEY=bd38603815e3f2562c3eb3988c69eb77
    set HTTPS_PROXY=http://user:password@194.114.63.23:8080

Limitação de taxa pelo serviço de fórum:
  - Este programa não difere funcionalmente de um usuário através de um navegador. No entanto, os
    dados são recuperados um pouco mais rápido. Isso pode levar a rejeições (limitação de taxa) pelo
    serviço. Para evitar isso, o programa pode pausar entre a busca de páginas. O tempo de pausa
    pode ser especificado com a opção '-sleeptime=int'.
  - Configurações típicas de limite de taxa de usuário são:
    - requisições por minuto : 20
    - requisições por dia    : 2880
1 curtida