Holen Sie sich eine Liste der Abzeichen auf dieser Website, die noch niemand erhalten hat


8

Erstellen Sie einen Code, der eine Liste der Ausweise abruft, die noch niemand erhalten hat (z. B. mithilfe dieser Website-API für Ausweise ), und geben Sie die sortierte Liste dieser Ausweise mit jeweils einer neuen Zeile aus.

Beispielausgabe (kann kleiner sein, je nachdem, wann Sie diese Herausforderung ausführen):

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

Der kleinste Code gewinnt.


Gute Idee, auch der Verdacht, dass Stack Exchange Data Explorer dies tun könnte (bisher keine Antworten). Vielleicht führt die
— Webanfrage

Antworten:


8

JavaScript mit jQuery (standardmäßig auf SE-Sites geladen), 58

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

Muss unter https://codegolf.stackexchange.com/help/badges ausgeführt werden . ;)

Streng konforme Ausgabe, 116 Zeichen:

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

Screenshot der Konsolenausgabe (zum Vergrößern anklicken):

Screenshot der Konsolenausgabe


Ist die Verwendung externer Bibliotheken erlaubt?
— Szymon Toda

3
@Ultra jQuery wird standardmäßig auf SE-Sites geladen.
— Türknauf

6

Bash, 173 Zeichen

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

Obwohl Sie wahrscheinlich einige Zeichen durch URL-Verkürzung rasieren könnten.

WARNUNG: Beachten Sie, dass das mehrmalige Ausführen dieses Skripts Folgendes zur Folge hat:

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

Ausgabe für 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: ein bisschen optimiert.


Bash - huehuehue. PS wird hier /dev/nullwirklich gebraucht?
— Szymon Toda

Sie können curlanstelle von verwenden wget -O-.
— Konrad Borowski

Hmm, ich dachte, ich hätte das / dev / null entfernt, das ich zum Testen hatte.
— Thom Wiggers

1

PHP - 92 86 Zeichen

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

Inspiriert von Victors Lösung. Sehr flüchtig.


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
Das scheint ... volatil. Wenn das Stack Exchange-Team fast Änderungen an seiner Website vornehmen würde (oder wenn meine Frage geändert würde), würde die falsche Liste zurückgegeben. Außerdem ist die Liste möglicherweise nicht aktuell.
— Konrad Borowski

Warum ist der Klassenname so lang? Warum ist das Argument für mainden Namen so lang? Warum gibt es danach unnötige Leerzeichen InputStream?
— Doorknob

@ DoorknobofSnow Gut bemerkt. Diese sind ausgerutscht, als ich die ungolfed Version in eine golfed Version umwandelte.
— Victor Stafusa

@xfix Ja, sehr flüchtig. Das war beabsichtigt.
— Victor Stafusa

Ich bin versucht, die Frage durch einen Buchstaben zu bearbeiten, nur um Sie zu trollen :-D
— Türknauf
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.