Dapatkan daftar lencana di situs ini yang belum diterima siapa pun

8

Buat kode yang mendapat daftar lencana yang belum diterima siapa pun (misalnya, dengan menggunakan API situs web ini untuk lencana ), dan tampilkan daftar yang diurutkan dari lencana tersebut, dengan baris baru setelah masing-masing.

Contoh output (mungkin lebih kecil, tergantung pada saat Anda melakukan tantangan ini):

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

Kode terkecil menang.

Konrad Borowski
sumber
ide yang bagus, juga curiga Stack Exchange Data Explorer bisa melakukannya (tidak ada jawaban sejauh itu) sebenarnya mungkin kueri web sedang melakukan query SQL di hati ...
vzn

Jawaban:

8

JavaScript dengan jQuery (dimuat ke situs SE secara default), 58

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

Harus dijalankan di https://codegolf.stackexchange.com/help/badges . ;)

Hasil yang benar-benar sesuai, 116 karakter:

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

Tangkapan layar keluaran konsol (klik untuk memperbesar):

tangkapan layar keluaran konsol

Gagang pintu
sumber
Apakah menggunakan lib eksternal diizinkan?
Szymon Toda
3
@Ultra jQuery dimuat ke situs SE secara default.
Gagang Pintu
6

Bash, 173 karakter

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

Meskipun Anda mungkin bisa mencukur beberapa karakter dengan menggunakan pemendek url.

PERINGATAN: Perhatikan bahwa menjalankan skrip ini beberapa kali akan menghasilkan ini:

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

Output untuk 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

EDIT: tweak sedikit.

Thom Wiggers
sumber
Bash - huehuehue. PS /dev/nullbenar-benar dibutuhkan di sini?
Szymon Toda
Anda bisa menggunakan curlbukan wget -O-.
Konrad Borowski
Hmm saya pikir saya telah menghapus / dev / null yang saya miliki untuk pengujian.
Thom Wiggers
1

PHP - 92 86 karakter

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

Terinspirasi oleh solusi Victor. Sangat fluktuatif.

Konrad Borowski
sumber
0

Jawa - 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;",""));}}
Victor Stafusa
sumber
1
Tampaknya ... volatile. Jika tim Stack Exchange akan membuat hampir semua perubahan pada situs web mereka (atau jika pertanyaan saya akan diubah), itu akan mengembalikan daftar yang salah. Selain itu, daftarnya mungkin tidak mutakhir.
Konrad Borowski
Mengapa nama kelas begitu lama? Mengapa argumen untuk mainnama begitu lama? Mengapa setelah itu tidak perlu spasi putih InputStream?
Gagang Pintu
@DoorknobofSnow Diperhatikan dengan baik. Yang satu ini tergelincir ketika saya mengonversi versi yang tidak dikoleksi menjadi yang golf.
Victor Stafusa
@ perbaikan Ya, sangat fluktuatif. Itu disengaja.
Victor Stafusa
Saya tergoda untuk mengedit pertanyaan dengan satu huruf hanya untuk menjebak Anda :-D
Gagang Pintu