Finden Sie die SE-Reputation eines Benutzers


10

Herausforderung

Geben Sie anhand der ID eines SE-Benutzers die Summe seiner Reputation aus allen Stack Exchange-Netzwerken aus, bei denen sich der Benutzer angemeldet hat.

Regeln

Wenn ein Benutzer auf einer Website eine Reputation von 101 oder weniger hat, zählen Sie diese als Null in der Summe.

Sie sollten Area 51 rep oder versteckte Communities nicht zählen !!

URL-Shortener sind nicht zulässig.

Beispiele

Änderungen vorbehalten

Benutzer 3244989 (Beta-Zerfall)

14141

Benutzer 918086 (Dennis)

204892

Benutzer 11683 (Jon Skeet)

1029180

Gewinnen

Der kürzeste Code in Bytes gewinnt.

Antworten:


1

Curl, Grep und Awk, 106 Bytes

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

Es ist schmutzig, scheint aber gut zu funktionieren. Ich benutze es nicht awkoft, daher wäre ich nicht überrascht, wenn es eine Möglichkeit gäbe, damit Golf grepzu spielen.


3

Python 2 (mit Anfragen), 149 Bytes

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)

Ich habe die API angefordert, die API in JSON konvertiert und dann die Reputation über einen Generatorausdruck summiert. Der Generator entfernt Konten mit weniger als 101 Reputation.

Dank für die Verbesserung des Codes: Jonathan Allan .


1

R mit httr, 146 Bytes

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

0

Ruby 2.4, 136 + 20 = 156 Bytes

Benötigt die -rjson -rnet/http -nFlags. Die Eingabe erfolgt über STDIN (kein nachfolgender Zeilenumbruch). Ruby 2.4 wird benötigt für 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

JavaScript (ES6), 148 143 142 141 Bytes

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)))

Versuch es

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>


Ignoriert dies Area 51?
Beta-Zerfall

@BetaDecay, ich denke schon. Ich bearbeite jetzt eine Einschränkung in meiner Antwort, um sie zu erklären.
Shaggy

Oh, richtig, ich dachte nicht, dass es so einfach wäre herauszufiltern
Beta Decay

@BetaDecay, ist das eine Bestätigung, dass dieser Endpunkt keine A51-Sites enthält?
Shaggy

Was meinst du mit Endpunkt? : /
Beta Decay
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.