사용자의 SE 평판 찾기


10

도전

SE 사용자의 ID가 주어지면 사용자가 가입 한 모든 Stack Exchange 네트워크에서 평판의 합계를 출력합니다.

규칙

사용자가 사이트에서 평판이 101 이하인 경우 합계에서 0으로 계산하십시오.

Area 51 담당자 또는 숨겨진 커뮤니티를 계산해서는 안됩니다 !!

URL 단축기는 허용되지 않습니다.

변경 될 수 있습니다

사용자 3244989 (베타 부패)

14141

사용자 918086 (Dennis)

204892

사용자 11683 (Jon Skeet)

1029180

승리

바이트 단위의 가장 짧은 코드가 이깁니다.

답변:


1

curl, grep 및 awk, 106 바이트

curl http://api.stackexchange.com/users/$1/associated|grep -o n\"[^,]*|awk -F: '$2>101{s+=$2}END{print s}'

지저분하지만 잘 작동하는 것 같습니다. 나는 awk자주 사용하지 않기 때문에 골프를 치르는 방법이 있다면 놀라지 않을 grep것입니다.


3

Python 2 (요청 포함), 149 바이트

from requests import*
lambda i,r="reputation":sum(u[r]for u in get("http://api.stackexchange.com/users/"+i+"/associated").json()["items"]if u[r]>101)

API를 요청하고 API를 JSON으로 변환 한 다음 생성기 표현식을 통해 평판을 합산했습니다. 생성기는 101 미만의 평판을 가진 계정을 제거합니다.

: 코드 개선을위한 신용 조나단 앨런을 .


1

httr이있는 R, 146 바이트

library(httr)
a=sapply(content(GET(paste0("http://api.stackexchange.com/users/",readline(),"/associated")))$items,'[[','reputation')
sum(a[a>101])

0

루비 2.4, 136 + 20 = 156 바이트

-rjson -rnet/http -n플래그가 필요합니다 . 입력은 STDIN (후행 줄 바꿈 없음)에서 가져옵니다. 에는 Ruby 2.4가 필요합니다 sum.

p JSON.parse(Net::HTTP.get URI"http://api.stackexchange.com/users/#$_/associated")["items"].map{|i|i["reputation"]}.select{|i|i>101}.sum

0

자바 스크립트 (ES6) 148 143 142 141 바이트

u=>fetch(`//api.stackexchange.com/users/${u}/associated`).then(j=>j.json(s=0)).then(i=>(i.items.map(r=>s+=(r=r.reputation)>101&&r),alert(s)))

시도 해봐

f=

u=>fetch(`//api.stackexchange.com/users/${u}/associated`).then(j=>j.json(s=0)).then(i=>(i.items.map(r=>s+=(r=r.reputation)>101&&r),alert(s)))

i.addEventListener("submit",e=>{e.preventDefault();(v=+i.firstChild.value)&&f(v)})
<form id=i><input type=number><button>Calc.</button></form>


이것은 51 구역을 무시합니까?
Beta Decay

@BetaDecay, 그렇게 생각 합니다. 설명을 위해 지금 답변에주의를 기울이고 있습니다.
Shaggy

아 맞다, 나는 필터링하는 것이 그렇게 간단하지 않다고 생각했다
Beta Decay

@BetaDecay, 해당 엔드 포인트에 A51 사이트가 포함되어 있지 않다는 확인 입니까?
Shaggy

엔드 포인트 란 무엇을 의미합니까? : /
Beta Decay
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.