Schreiben Sie ein Programm / eine Funktion, die die Stimmenzahl ihrer eigenen Stack Exchange-Antwort zum Zeitpunkt ihrer Ausführung zurückgibt.
- Ihr Programm / Ihre Funktion kann jedoch über das Internet auf diese Seite ( codegolf.stackexchange.com/questions/82609 ) zugreifen :
- Ihr Programm / Ihre Funktion akzeptiert möglicherweise keine Benutzereingaben und
- Die Verwendung von URL-Kürzern ist nicht gestattet
- Ihr Programm / Ihre Funktion verwendet möglicherweise nur die eigene Quelle als Bezugspunkt für die Anzahl der Stimmen (zum Beispiel: keine Verweise auf Textfolgen in der enthaltenen Antwort, aber nicht in der eigenen Quelle).
- Ihr Programm / Ihre Funktion muss eine eigene Stimmenzahl und nur eine eigene Stimmenzahl ausgeben (zum Beispiel: keine Rückgabe aller Stimmenzahlen auf dieser Seite).
Das ist Code-Golf, der kürzeste Code gewinnt.
code-golf
quine
internet
stack-exchange-api
Dendrobium
quelle
quelle
perl -e'($_)=`curl -s http://api.stackexchange.com/2.2/posts/123?site=codegolf`;/score":(\d+)/&&print$1'
sieht aus wie es funktionieren sollte, tut es aber nicht. Aber vielleicht kann das jemand nutzen.using its own source
Bit hinzugefügt , um Benutzer daran zu hindern, die Seite einzurichten, damit sie leichter zu finden ist, ohne zur Byte-Anzahl beizutragen, falls die Antwort nicht die Post-ID-Methode verwendet.Antworten:
jQuery + JavaScript, 85 Byte
Geschichte
data
anstelle von verwendet habed
.Empfohlene Verwendung
Bonus!!
Wem gefällt ein Bonus nicht?
Geben Sie die ID in den Bonus ein und es wird Ihnen die Punktzahl angezeigt.
Noch mehr Bonus !! Führen Sie dieses Snippet aus, um das Programm automatisch zu starten, zu aktualisieren und erneut auszuführen! (Benötigt rep> 15, auth). Wenn es nicht funktioniert, sag es mir bitte.quelle
posts
stattanswers
undhttp
statthttps
spart man drei bytes (oder kann man das vielleichthttp:
ganz weglassen ?). (Ungetestet)http://
und es wird 301 nochhttps://
besser umleiten , entfernen Sie einfach die http insgesamt//api.stackexchange.com...
$.get
anstelle von$.getJSON
. Der Inhaltstyp der API istapplication/json
und jQuery behandelt die Antwort automatisch als JSON.JavaScript ES6, 107 Bytes
Echte Programmierer nutzen das nicht
XMLHttpRequest
. Echte Programmierer verwenden die Fetch-API .quelle
fetch
nicht definiert istBash,
80797569 BytesFür Bewertungszwecke
\t
sollte durch ein TAB-Zeichen ersetzt werden.Dies erfordert
w3m
, die standardmäßig auf den meisten Linux-Distributionen verfügbar sein sollte.Danke an @NoOneIsHere für -2 Bytes!
Wie es funktioniert
w3m
ist ein Befehlszeilen-Webbrowser. Es fragt die URL ab und zeigt ihren Inhalt (normalerweise) in einem lesbaren Format an. Hier haben wir nur (ab) verwenden es um den Anruf zu vermeiden,zcat
dasscurl
erfordern würde, da SE die API - Antwort gzip-komprimierte dient.tr ,: \^I
Ersetzt alle Kommas und Doppelpunkte durch Tabulatoren, diecut
das Standardfeldtrennzeichen darstellen.Schließlich
cut -f20
entfernt alles außer dem zwanzigsten Feld, das die Stimmenzahl ist.quelle
--compressed
was ist noch länger alszcat
.JavaScript ES6,
175165160145 BytesDank Optimizer und Dendrobium viele Bytes gespart! Das sind alles Vielfache von fünf!
Verwenden von einfachem altem Javascript. Wer braucht diese neuen Bibliotheken? Echte Programmierer nutzen
XMLHttpRequest()
Probieren Sie es aus
quelle
prompt
?"g"
nicht als Option für mich.with(new XMLHttpRequest)(open("get","//api.stackexchange.com/2.2/posts/82614?site=codegolf"),onload=_=>alert(response.items[0].score),send(responseType="json"))
für -5 Byteswith
TypeError: response.split(...)[12] is undefined",
Bash + JQ , 69 Bytes
Ich habe
curl
undzcat
vor;w3m
ist inspiriert von Dennis '(auffallend ähnlicher) Antwort. Es stellt sich herausjq
undtr
/ odercut
hat die gleichen Bytekosten!quelle
Konvex 0,5, 63 Bytes
Dadurch wird die Punktzahl von der Suchseite anstelle der API abgerufen, insbesondere von der Abfrage https://codegolf.stackexchange.com/search?q=inquestion:82714 . Zum Glück klappt das
inquestion
auch bei Antworten.Nachprüfung
Wie es funktioniert
quelle
05AB1E ,
898781 BytesVielen Dank, Python ...
Verwendet die CP-1252- Codierung.
quelle
MATLAB, 103 Bytes
quelle
JavaScript (Node.js + Unirest ), 123 Byte
Diese Bibliothek gefällt mir, weil sie JSON automatisch analysiert.
quelle
Julia,
128107 BytesDies ist eine Funktion, die keine Eingabe akzeptiert und die Punktzahl dieses Beitrags als Zeichenfolge zurückgibt. Das
Requests
Paket muss installiert sein.Wie es funktioniert:
get
sendet eine GET-Anforderung an die SE-APIreadall
Liest die rohen Bytes in der Antwort und gibt eine Zeichenfolge zurücksplit
Teilt die Zeichenfolge in Doppelpunkte und Kommas21 Bytes gespart dank Dennis!
quelle
JavaScript (Node.js), 166 Bytes
-1 Byte, weil @ CᴏɴᴏʀO'Bʀɪᴇɴ mir das Zählen beigebracht hat;)
-4 Bytes dank @NoOneIsHere
Das ist etwas peinlich. Verdammt SE, dass du deine API gezippt hast! / s
Verbesserungen sind sehr willkommen.
quelle
PHP, 137 Bytes
Ziemlich einfach. Das Dekomprimieren benötigt viele Bytes:
Ungolfed
quelle
PHP, 121 Bytes
Ohne api.
Ruft den gesamten Beitrag ab und extrahiert die Stimmenzahl mit Regex. (HTML nicht mit Regex parsen!)
Ungolfed:
quelle
http:
?05AB1E , 45 Bytes
Kein TIO für das gesamte Programm, da der
.w
eingebaute Internetzugang bei TIO nicht funktioniert.Erläuterung:
Wir beginnen damit, die URL zu erstellen und darauf zuzugreifen:
Probieren Sie es online (ohne die
.w
).Danach extrahieren wir die Punktzahl aus dem JSON:
Probieren Sie es online aus.
Eine 10- Byte- Alternative für diesen zweiten Teil könnte sein:
Probieren Sie es online aus.
Sehen Sie diese 05AB1E Spitze von mir (Abschnitte Wie das Wörterbuch zu benutzen? Und Wie große natürliche Zahlen zu komprimieren? ) Zu verstehen , warum
•2íЕ
ist190437
,’¸¸.‚‹º.ŒŒ/„¤/ÿ?€¼=ƒËŠˆ’
ist"api.stackexchange.com/posts/ÿ?site=codegolf"
,'ŒÂ
ist"score"
, und„ŒÂ‚¡
ist"score after"
.PS / EDIT: Mir ist klar, dass ich durch die Verwendung von
þ
niemals eine negative Bewertung erhalten werde. ;)quelle