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.