ユーザーのSEレピュテーションを見つける


10

チャレンジ

SEユーザーのIDを指定して、ユーザーがサインアップしたすべてのStack Exchangeネットワーク全体からの評判の合計を出力します。

ルール

ユーザーのサイトでの評判が101以下の場合、合計で0としてカウントします。

エリア51の担当者や非表示のコミュニティはカウントしないでください。

URL短縮文字は許可されていません。

変更の予定

ユーザー3244989(ベータ崩壊)

14141

ユーザー918086(デニス)

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未満のアカウントを削除します。

コードを改善した功績:Jonathan Allan


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

Ruby 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

JavaScriptの(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を無視しますか?
ベータ崩壊

@BetaDecay、私そう思います。説明のために、私の回答の警告を編集しています。
Shaggy

そうそう、フィルターをかけるのはそれほど簡単だとは思いませんでした
Beta Decay

@BetaDecay、そのエンドポイントにA51サイトが含まれていないという確認ですか?
シャギー

エンドポイントとはどういう意味ですか?:/
ベータ崩壊
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.