このサイトでまだ誰も受け取っていないバッジのリストを取得します


8

誰もまだ受け取っていないバッジのリストを取得するコードを作成し(たとえば、このウェブサイトのAPI for Badgeを使用して)、そのようなバッジのソートされたリストを、それぞれの後に改行を付けて出力します。

出力例(このチャレンジをいつ行うかによって、より小さくなる場合があります):

Archaeologist
Caucus
Constituent
Copy Editor
Deputy
Electorate
Epic
Generalist
Hacker
Legendary
Marshal
Outspoken
Research Assistant
Sheriff
Steward
Strunk & White
Tenacious
Unsung Hero

最小のコードが優先されます。


素晴らしいアイデア、Stack Exchange Data Explorerがそれを実行できると疑っています(これまでのところこれに対する回答はありません)実際、おそらくWebクエリがSQLクエリを実行しているのかもしれません...
vzn

回答:


8

JavaScriptとjQuery(デフォルトでSEサイトにロードされます)、58

$('.badge',$('.badge-count:not(:has(*))').parent()).text()

https://codegolf.stackexchange.com/help/badgesで実行する必要があります。;)

厳密に準拠した出力、116文字:

[].join.call($('.badge',$('.badge-count:not(:has(*))').parent()).map(function(){return $(this).text()}).sort(),'\n')

コンソール出力のスクリーンショット(クリックして拡大):

コンソール出力のスクリーンショット


外部ライブラリの使用は許可されていますか?
Szymon Toda 2014

3
@Ultra jQueryはデフォルトでSEサイトにロードされます。
ドアノブ

6

バッシュ、173文字

curl "https://api.stackexchange.com/2.1/badges?page="{0..50}"&pagesize=100&order=desc&sort=type&site=codegolf"|gunzip|grep -Po '{"name".*?award_count":0.*?}'|cut -d'"' -f 4

ただし、URL短縮を使用して一部の文字を削ることができます。

警告:このスクリプトを数回実行すると、次のようになります。

{"error_name":"throttle_violation","error_message":"too many requests from this IP, more requests available in 84495 seconds","error_id":502}

codegolf.SEの出力:

code-golf
Informed
Research Assistant
Caucus
Constituent
Outspoken
Deputy
Vox Populi
Excavator
Analytical
Self-Learner
Hacker
Beta
Legendary
Electorate
Investor
Tenacious
Unsung Hero

編集:少し調整しました。


バッシュ-フエフエ。/dev/nullここでPSが本当に必要ですか?
Szymon Toda 2014

curl代わりに使用できますwget -O-
Konrad Borowski、2014年

うーん、テスト用に持っていた/ dev / nullを削除したと思いました。
Thom Wiggers 2014年

1

PHP- 92 86文字

<?=html_entity_decode(substr(file_get_contents("http://tinyurl.com/q9zlwfr"),12937,190));

ビクターのソリューションに触発されました。非常に揮発性。


0

Java- 280 267 260

class A{public static void main(String[]z)throws Exception{String s="";int y;java.io.InputStream x=new java.net.URL("http://tinyurl.com/q9zlwfr").openStream();while((y=x.read())!=-1)s+=(char)y;System.out.println(s.substring(12937,13126).replace("amp;",""));}}

1
それは...揮発性のようです。Stack ExchangeチームがWebサイトにほとんど変更を加えると(または私の質問が変更されると)、間違ったリストが返されます。また、リストが最新でない可能性があります。
Konrad Borowski、2014年

クラス名が長いのはなぜですか?mainの名前に対する議論がなぜそれほど長いのですか?後に不要な空白があるのはなぜInputStreamですか?
ドアノブ

@DoorknobofSnowよく知られています。これらは、私がゴルフしていないバージョンをゴルフバージョンに変換しているときにずれました。
Victor Stafusa 2014年

@xfixええ、非常に不安定です。それは意図的でした。
Victor Stafusa 2014年

私はあなたをトロールするためだけに1文字ずつ質問を編集したいと思っています:-D
Doorknob
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.