Kullanıcının SE Saygınlığı Bul


10

Meydan okuma

Bir SE kullanıcı kimliği verildiğinde, itibarlarının toplamını, kullanıcının kaydolduğu tüm Stack Exchange ağlarında yayınlayın.

kurallar

Bir kullanıcının bir sitede 101 veya daha az saygınlığı varsa, toplamda sıfır olarak sayın.

Alan 51 temsilcisi veya gizli toplulukları saymamalısınız!

URL kısaltıcılarına izin verilmiyor.

Örnekler

Değişebilir

Kullanıcı 3244989 (Beta Bozulması)

14141

Kullanıcı 918086 (Dennis)

204892

Kullanıcı 11683 (Jon Skeet)

1029180

Kazanan

Bayt cinsinden en kısa kod kazanır.

Yanıtlar:


1

kıvırmak, grep ve awk, 106 bayt

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

Kirli ama iyi çalışıyor gibi görünüyor. awkSık kullanmayın, bu yüzden grepuzakta golf oynamak için bir yol olsaydı şaşırmazdım .


3

Python 2 (İstekli), 149 Bayt

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)

Ben API istedi, API JSON dönüştürdü, daha sonra bir jeneratör ifadesi ile itibarını topladı. Jeneratör 101'den az itibara sahip hesapları kaldırır.

Kodu geliştirmek için teşekkür ederiz: Jonathan Allan .


1

Httr ile R, 146 Bayt

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

0

Yakut 2.4, 136 + 20 = 156 bayt

-rjson -rnet/http -nBayrak gerektirir . Giriş STDIN'den (son satırsonu yok). Ruby 2.4 için gereklidir 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 bayt

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

Dene

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>


Bu Alan 51'i görmezden geliyor mu?
Beta Çürümesi

@BetaDecay, sanırım . Şimdi açıklamak için cevabımda bir uyarı düzenliyorum.
Shaggy

Doğru, filtrelemenin o kadar kolay olacağını düşünmemiştim
Beta Çürümesi

@BetaDecay, bu uç noktanın A51 siteleri içermediğine dair bir onay mı?
Shaggy

Uç nokta ile ne demek istiyorsun? : /
Beta Çürümesi
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.