Desafio
Dado o nome de um usuário (não o ID, já temos esse desafio), mostre sua reputação atual e seu ID.
Entrada
A entrada será uma única sequência que é o nome de usuário do usuário. Você pode assumir que esse usuário existe.
Resultado
A saída será dois números inteiros para STDOUT ou STDERR, que serão a reputação e o ID do usuário. Eles devem estar nessa ordem específica e podem ser impressos em qualquer formato razoável
Específicos
- A saída da reputação não deve estar mais do que 10 minutos desatualizada.
- Seu programa não pode gerar erros durante a execução normal
- Aplicam-se brechas padrão (incluindo Sem encurtadores de URL)
- Se houver mais de um usuário com esse nome de usuário, você poderá gerar as estatísticas de qualquer usuário com esse nome de usuário. É também por isso que você deve gerar o ID.
- A reputação a ser gerada é a reputação do usuário no PPCG, não a pontuação total da rede.
O site da API do Stack Exchange pode ser encontrado aqui . Você pode ler a documentação de lá.
code-golf
stack-exchange-api
HyperNeutrino
fonte
fonte
Respostas:
Bash + JQ , 93 bytes
Retrocedeu a versão de 87 bytes, pois não estava lidando corretamente com as respostas de vários usuários.
Golfe
Produzirá a primeira identificação do usuário e reputação nas linhas separadas.
Como funciona ?
1)
curl + zcat
são usados para buscar a resposta da API formatada em JSON2)
jq ..|numbers
desdobra JSON recursivamente e imprime todos os valores numéricos, um por linha(os números de linha foram adicionados
nl
apenas para fins ilustrativos)3) Em seguida, usamos
sed
a pesquisa do primeiroaccount_id
ereputation
, por seus números absolutos de linhaTeste
fonte
JavaScript (ES6),
145 139 136 125 123 123117 bytesEconomizou 6 bytes graças a Shaggy e 6 bytes graças a Cyoce.
Não tenho certeza se deve gerar todos os usuários com o mesmo nome ou apenas um deles; esse código gera todos eles.
fonte
"//api.stackexchange.com/users?site=codegolf&inname="+a
._=>alert(_)
por apenasalert
?Python 2,
178169149 BytesEu usaria solicitações para isso:
Basicamente, ele usa a API da pilha para buscar as informações como JSON e, em seguida, obtém o item "reputação". Além disso, a API apresentava muitos parâmetros extras, eu os raspei também.
Contribuições generosas de: carusocomputing, ElPedro, Malivil, Keerthana Prabhakaran
fonte
["items"][0]
isso só obtém o primeiro resultado; no caso de vários usuários, ele ainda ignorará os extras se não me engano.import requests as r
er.get(...
salva 4 bytes.?site=codegolf&inname="
você pode economizar 3 bytes (+ "")from requests import*;a=get()
reduz um byte!Groovy,
144156 bytesFechamento anônimo.
EDIT: esqueceu de usar a importação de
groovy.json.
JSON Slurper + 14 bytes.Exemplo de saída
[[UserID, Reputation],...]
:fonte
Rápido,
225201 bytesSem golfe:
Exemplo de saída:
fonte