Temukan Reputasi SE Pengguna

10

Tantangan

Diberikan ID pengguna SE, hasilkan jumlah reputasi mereka dari seluruh jaringan Stack Exchange yang telah didaftar pengguna.

Aturan

Jika seorang pengguna memiliki 101 atau kurang reputasi di suatu situs, hitunglah itu sebagai nol.

Anda tidak boleh menghitung perwakilan Area 51 atau komunitas tersembunyi !!

Penyingkat URL tidak diizinkan.

Contohnya

Dapat berubah sewaktu-waktu

Pengguna 3244989 (Peluruhan Beta)

14141

Pengguna 918086 (Dennis)

204892

Pengguna 11683 (Jon Skeet)

1029180

Kemenangan

Kode terpendek dalam byte menang.

Peluruhan Beta
sumber

Jawaban:

1

curl, grep and awk, 106 bytes

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

Itu kotor tetapi tampaknya bekerja dengan baik. Saya tidak awksering menggunakan jadi saya tidak akan terkejut jika ada cara untuk bermain golf grepdengan itu.

Harun
sumber
3

Python 2 (dengan Permintaan), 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)

Saya meminta API, mengonversikan API ke JSON, lalu merangkum reputasinya melalui ekspresi generator. Generator tidak menghapus akun dengan reputasi kurang dari 101.

Kredit untuk meningkatkan kode: Jonathan Allan .

Neil
sumber
1

R dengan httr, 146 Bytes

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

Ruby 2.4, 136 + 20 = 156 byte

Membutuhkan -rjson -rnet/http -nbendera. Masukan dari STDIN (tidak ada baris baru). Ruby 2.4 diperlukan untuk sum.

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

JavaScript (ES6), 148 143 142 141 byte

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

Cobalah

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>

Shaggy
sumber
Apakah ini mengabaikan Area 51?
Beta Decay
@ BetaDecay, saya kira begitu. Saya sedang mengedit peringatan menjadi jawaban saya sekarang untuk menjelaskan.
Shaggy
Oh benar, saya tidak berpikir itu akan sangat mudah untuk disaring
Beta Decay
@ BetaDecay, apakah itu konfirmasi bahwa titik akhir itu tidak termasuk situs A51?
Shaggy
Apa yang Anda maksud dengan titik akhir? : /
Beta Decay