Geben Sie unter Angabe einer PPCG-Benutzer-ID den aktuellen Benutzernamen des Benutzers aus.
Beispiele
Input -> Output
61563 -> MD XF
2 -> Geoff Dalgas
12012 -> Dennis
foo ->
-3 ->
Regeln
- Die Ein- / Ausgabe kann mit allen zulässigen Mitteln erfolgen.
- Die Ausgabe muss der vollständige Benutzername mit der richtigen Groß- und Kleinschreibung und dem richtigen Abstand sein, nicht mehr und nicht weniger.
- Wenn die Eingabe keine gültige Benutzer-ID ist oder der Benutzer nicht vorhanden ist, sollte Ihr Programm nichts oder eine Fehlerausgabe ausgeben.
- Ihr Programm muss für jeden gültigen Benutzer funktionieren, auch für einen, der nach dieser Herausforderung erstellt wurde.
- Ihr Programm muss nicht für den Community-Benutzer funktionieren.
- Ihr Programm muss nicht für gelöschte Benutzer funktionieren.
- URL-Shortener sind nicht zulässig.
Wertung
Der kürzeste Code in jeder Sprache gewinnt.
Okx
. Ja, das ist mein Name.xxx.stackexchange.com/u/123
Weiterleitung anxxx.stackexchange.com/users/123
Antworten:
05AB1E ,
3534 BytesFunktioniert aufgrund von Internetbeschränkungen nicht online.
Code
Erläuterung
Die komprimierte Zeichenfolge:
drückt die folgende Zeichenfolge:
Während
<input>
ist die Benutzereingabe. Danach lesen wir alle Daten mit.w
und führen einige Tricks zur Manipulation von Zeichenfolgen durch:Bei lokaler Ausführung erhalte ich folgende Ausgabe:
quelle
„ -¡¬
.Bash,
120112106102807674 Bytes-8 Bytes da
wget
ist intelligent genug , um zu Umleitung von HTTP auf HTTPS , wenn notwendig-6 dank einen anderen Bytes
sed
Vorschlag von Kühen Quack-26 dank Digital - Trauma Bytes
-4 dank Gilles Bytes -
codegolf.stackexchange.com/u/123
Umleitungen-2 dank Digital - Trauma der Antwort des Bytes
wget
FlagsKeine TIO-Verbindung, da die TIO-Arenen nicht auf das Internet zugreifen können.
Vielen Dank an die Antworten hier und an die Leute im Chat, die mir dabei geholfen haben. Ich habe einen ähnlichen Ansatz wie HyperNeutrino verwendet.
wget -qO- codegolf.stackexchange.com/users/$1
lädt die Profilseite des Benutzers herunter und druckt die Datei in STDOUT.-q
macht es leise (keine Geschwindigkeitsinformationen).sed -nr 's/.*User (.*) -.*/\1/p'
sucht nach der ersten ZeichenfolgeUser<space>
und druckt dann bis zum Ende des Namens, der mitsed
Magie gefunden wurde.Vorherige Antwort, die ich unabhängiger geschrieben habe (102 Bytes):
wget codegolf.stackexchange.com/users/$1 2>y
Speichert das Benutzerprofil-HTML in einer Datei mit dem Titel "Benutzer-ID" und gibt STDERR ausy
.cat $1
leitet die Datei in die Teile weiter, die den nutzlosen HTML-Code entfernen.sed '6!d'
(anstelle vonhead -6 | tail -1
) erhält die sechste Zeile von selbst.cut -c 13-
entfernt die ersten 13 Zeichen, sodass der Benutzername beim ersten Zeichen der Zeichenfolge beginnt.cut -d '&' -f1
schneidet alles nach dem&
. Dies beruht auf der Tatsache, dass ein kaufmännisches Und weder in einem Benutzernamen noch in einem HTML-Titel enthalten sein darf.Jetzt ist die Zeichenfolge
<username> - Programming Puzzles
sed 's/.\{23\}$//'
war ein Vorschlag von Kühen Quacksalber, die letzten 15 Bytes einer Datei zu entfernen. Dies erhält den Benutzernamen von selbst.Hier ist ein vollständiges Bash-Skript.
quelle
...TIO arenas can't access the internet
Sie können, so können Sie darauf zugreifen. : P Vom Benutzer übermittelter Code ist kein Zugriff auf das Internet gestattet.</nitpick>
Digital Trauma - Progr
sed
Bytecount zu korrigieren.Bash + GNU-Dienstprogramme, 66
Verwendet die
-P
CRE-Regex-Variante, um einen\K
Match-Start-Reset für eine viel kürzere Ausgabefilterung durchzuführen.Wenn Ihr System bereits
curl
installiert ist, können wir den Vorschlag von @Gilles verwenden:Bash + Curl + GNU-Dienstprogramme, 64
quelle
O-
?-O-
sendet die heruntergeladene Ausgabe anstelle einer Datei an STDOUT, sodass sie einfach angrep
grep -Po '"User \K[^"]+'
3 Bytes speichern.curl -L
ist kürzer alswget -qO-
. Sie können/u
anstelle von verwenden/users
.Python 2 + -Anfragen, 112 Bytes
Hinweis
Sobald SE vollständig ist
https
,http
muss das geändert werdenhttps
, wodurch diese 113 Bytes entstehen.Der Anfang eines Benutzerprofils sieht folgendermaßen aus:
Der Benutzername beginnt bei Index 49 und das kaufmännische Und steht 23 Zeichen rechts von der Stelle, an der es endet (
- Programming Puzzles
)-3 Bytes dank StepHen / Mego durch Entfernen des nicht verwendeten
re
Imports-1 Bytes dank Uriel
quelle
re
so können Sie 3 Byteshttp
vorerst auch verwenden, aber das wird irgendwann auslaufen, wenn SE volles HTTPS hat.from requests import*
undr.
für 113 Bytes fallen lassenJavaScript (ES6),
11175 ByteFunktioniert nur, wenn die PPCG-Domäne ausgeführt wird. Gibt ein
Promise
Objekt zurück, das den Benutzernamen enthält.quelle
i=>fetch(`/users/${i}`).then(r=>r.text()).then(s=>/"User ([^"]+)/.exec(s)[1])
i=>$.get(`/users/${i}`).done(s=>alert(/"User ([^"]+)/.exec(s)[1]))
fetch
, um 2 Bytes zu speichernfetch
die Benutzerseite so zu gestalten, dachte aber, dass dies mein Glück schieben könnte. Aber da Sie es auch vorgeschlagen haben, werde ich es bearbeiten. Unterstützt derzeit ein Browser.done()
? Ich habe es schnell in Chrome & FF getestet, aber dort hat es nicht funktioniert.Swift 3 , 233 Bytes
Probeläufe:
quelle
Python 2 , 116 Bytes
Ich dachte nur, es ist schön, eine Standard-Bibliotheksantwort zu haben (die eigentlich ziemlich anständig ist).
Wenn SE voll geht
https
, müssen wir ein weiteres Byte hinzuzufügen, Schaltenurlopen('http://...
miturlopen('https://...
.quelle
Cubically + Bash,
165413361231 Bytes-423 Bytes dank TehPers
Dies muss drei Kubisch Skripte (benannt
1
,2
und3
) und 1 Bash - Skript.Die kubischen Skripte sind sehr lang, da ich mir noch keine gute Möglichkeit ausgedacht habe, Schleifen zu implementieren.
Bash (84 Bytes):
Dadurch wird das erste Cubically-Skript weitergeleitet
wget
, dann die gespeicherte Datei in das zweite Cubically-Skript. Anschließend wird diese Ausgabe umgekehrt, in das dritte Cubically-Skript weitergeleitet und anschließend umgekehrt.1
(385 Bytes):Dies druckt
https://codegolf.stackexchange.com/users/
dann die erste Ganzzahl der Eingabe.2
(680505 Bytes):Dadurch werden die unnötigen Daten aus der gespeicherten Datei als Eingabe gelesen und bis zum kaufmännischen Und-Zeichen gedruckt
Programming Puzzles & Code Golf
.~7@7
liest ein Zeichen und druckt es aus.F1R1
und:5=7
prüfen Sie, ob der Eingang das kaufmännische Und ist.&6
wird beendet, wenn es ist.~7@7:5=7&6
wird 45 Mal wiederholt, da 15 Bytes unnötiger Daten und ein maximal 30-Byte-StackExchange-Benutzername vorhanden sind.3 (
505446342 Bytes):Sehr ähnlich wie beim letzten Skript werden die ersten unnötigen Bytes gelesen, dann
cat
s bis EOF. Dies funktioniert auch aufgrund des maximalen SE-Benutzernamens.quelle
:0-1/1
anstelle von Datei 3 verwenden:4+4/1-1
? Die erste Instanz kann auch nur sein,-1/1
weil der Notizblock bei 0 beginnt./bin/r
überschrieben wird.F1R1
am Anfang tun , dann im+5
gesamten Programm anstelle von+2/1+4
PHP, 163 Bytes
quelle
Powershell,
165142137127 Bytes232838 Bytes dank AdmBorkBork gespeichert !Erstellt eine Datei mit dem Namen "
0
Nebeneffekt".Gehen Sie zur richtigen Webseite, wählen Sie das Element "Benutzerkartenname" aus und extrahieren Sie den richtigen Text aus dem Innerhtml.
Testen
quelle
Python +
requests
, 126 BytesDer Zugriff auf die API ist anscheinend länger als das Lesen der eigentlichen Seite ...
quelle
requests
Gelee , 37 Bytes
Eine Portierung der Python 2-Antwort von HyperNeutrino - geben Sie Kredit!
Ein monadischer Link, der eine Nummer nimmt und eine Liste von Zeichen zurückgibt. als volles Programm druckt das Ergebnis.
Hinweis: Ich bin mir nicht sicher, warum das Ergebnis von
ŒG
gezwungen werden muss, eine Zeichenfolge zu werden (hier mitṾ
): /Wie?
codegolf.stackexchange.com/users/
quelle
Stack Exchange Data Explorer , 47 Byte
Probieren Sie es online aus!
quelle
Mathematica, 126 Bytes
Eingang
Ausgabe
quelle
Stratos , 22 Bytes
Versuch es!
Erläuterung:
quelle