Étant donné un ID utilisateur PPCG, affichez le nom d'utilisateur actuel de cet utilisateur.
Exemples
Input -> Output
61563 -> MD XF
2 -> Geoff Dalgas
12012 -> Dennis
foo ->
-3 ->
Règles
- L'entrée / sortie peut être prise par n'importe quel moyen autorisé.
- La sortie doit être le nom d'utilisateur complet avec une majuscule et un espacement corrects, ni plus ni moins.
- Si l'entrée n'est pas un ID utilisateur valide ou si l'utilisateur n'existe pas, votre programme ne doit rien générer ou une sortie d'erreur.
- Votre programme doit fonctionner pour tout utilisateur valide, même celui créé après ce défi.
- Votre programme ne doit pas nécessairement fonctionner pour l'utilisateur de la communauté.
- Votre programme ne doit pas fonctionner pour les utilisateurs supprimés.
- Les raccourcisseurs d'URL sont interdits.
Notation
Le code le plus court dans chaque langue gagne.
Okx
. Oui, c'est mon nom.xxx.stackexchange.com/u/123
redirige versxxx.stackexchange.com/users/123
Réponses:
05AB1E ,
3534 octetsNe fonctionne pas en ligne en raison de restrictions Internet.
Code
Explication
La chaîne compressée:
pousse la chaîne suivante:
Considérant que
<input>
l'entrée utilisateur. Après cela, nous lisons toutes les données en utilisant.w
et faisons quelques astuces de manipulation de chaînes sur les données:Lorsqu'il est exécuté localement, j'obtiens la sortie suivante:
la source
„ -¡¬
.Bash,
120112106102807674 octets-8 octets car
wget
est assez intelligent pour rediriger HTTP vers HTTPS lorsque cela est nécessaire-6 octets grâce à une autre
sed
suggestion de Cows quack-26 octets grâce à Digital Trauma
-4 octets grâce à Gilles -
codegolf.stackexchange.com/u/123
redirige-2 octets grâce aux
wget
indicateurs de réponse de Digital TraumaPas de lien TIO car les arènes TIO ne peuvent pas accéder à Internet.
Merci aux réponses ici et aux gens du chat pour m'avoir aidé avec ça. J'ai utilisé une approche similaire à celle d'HyperNeutrino.
wget -qO- codegolf.stackexchange.com/users/$1
télécharge la page de profil de l'utilisateur et imprime le fichier sur STDOUT.-q
le fait tranquillement (aucune information de vitesse).sed -nr 's/.*User (.*) -.*/\1/p'
recherche la première chaîneUser<space>
, puis imprime jusqu'à ce qu'elle atteigne la fin du nom, trouvé en utilisant lased
magie.Réponse précédente que j'ai écrite de manière plus indépendante (102 octets):
wget codegolf.stackexchange.com/users/$1 2>y
enregistre le profil utilisateur HTML dans un fichier intitulé avec leur ID utilisateur et sauvegarde STDERR dansy
.cat $1
dirige le fichier dans les parties qui suppriment le HTML inutile.sed '6!d'
(à la place dehead -6 | tail -1
) obtient la sixième ligne d'elle-même.cut -c 13-
supprime les 13 premiers caractères, obtenant le nom d'utilisateur pour commencer au premier caractère de la chaîne.cut -d '&' -f1
coupe tout après le&
. Cela repose sur le fait qu'une esperluette n'est pas autorisée à figurer dans un nom d'utilisateur ni dans un titre HTML.Maintenant, la chaîne est
<username> - Programming Puzzles
sed 's/.\{23\}$//'
était une suggestion de vaches charlatan pour supprimer les 15 derniers octets d'un fichier. Cela obtient le nom d'utilisateur par lui-même.Voici un script bash complet.
la source
...TIO arenas can't access the internet
Ils le peuvent, c'est ainsi que vous pouvez y accéder. : P Le code soumis par l'utilisateur n'est pas autorisé à accéder à Internet.</nitpick>
Digital Trauma - Progr
sed
bytecount.Utilitaires Bash + GNU, 66
Utilise l'
-P
arôme regex CRE pour effectuer une\K
réinitialisation de début de correspondance pour un filtrage de sortie beaucoup plus court.Si votre système est déjà
curl
installé, nous pouvons utiliser la suggestion de @Gilles:Utilitaires Bash + curl + GNU, 64
la source
O-
?-O-
envoie la sortie téléchargée à STDOUT au lieu d'un fichier, il peut donc être simplement redirigé versgrep
grep -Po '"User \K[^"]+'
pour économiser 3 octets.curl -L
est plus court quewget -qO-
. Vous pouvez utiliser à la/u
place de/users
.Python 2 + requêtes, 112 octets
Remarque
une fois que SE est complètement installé
https
, leshttp
besoins doivent être changés enhttps
, ce qui fera ces 113 octets.Le début d'un profil utilisateur ressemble à ceci:
Le nom d'utilisateur commence à l'index 49 et l'esperluette apparaît 23 caractères à droite de l'endroit où il se termine (
- Programming Puzzles
)-3 octets grâce à StepHen / Mego en supprimant l'
re
import non utilisé-1 octet grâce à Uriel
la source
re
, vous pouvez donc laisser tomber 3 octetshttp
pour le moment, mais cela sera finalement supprimé lorsque SE passera en HTTPS complet.from requests import*
et baisser.
de 113 octetsJavaScript (ES6),
11175 octetsFonctionne uniquement lorsqu'il est exécuté via le domaine PPCG. Renvoie un
Promise
objet contenant le nom d'utilisateur.la source
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
pour économiser 2 octetsfetch
créer la page de l'utilisateur de cette façon, mais je pensais que cela pourrait pousser ma chance. Mais comme vous l'avez suggéré aussi, je vais le modifier. Est-ce qu'un navigateur prend actuellement en charge.done()
? Je l'ai testé rapidement dans Chrome et FF mais cela n'a pas fonctionné.Swift 3 , 233 octets
Exemples de cycles:
la source
Python 2 , 116 octets
Je pensais juste que c'était bien d'avoir une réponse de bibliothèque standard (qui est en fait assez correcte)
Lorsque SE va complètement
https
, nous devons ajouter 1 octet de plus, en changeanturlopen('http://...
avecurlopen('https://...
.la source
Cubiquement + Bash,
165413361231 octets-423 octets grâce à TehPers
Cela a besoin de trois scripts (nom cubiquement
1
,2
et3
) et 1 script bash.Les scripts Cubically sont vraiment longs car je n'ai pas encore trouvé de bonne façon de mettre en place des boucles.
Bash (84 octets):
Cela redirige le premier script Cubically dans
wget
, puis le fichier enregistré dans le deuxième script Cubically, puis inverse cette sortie, le redirige vers le troisième script Cubically, puis l'inverse.1
(385 octets):Ceci imprime
https://codegolf.stackexchange.com/users/
, puis le premier entier d'entrée.2
(680505 octets):Cela lit les données inutiles du fichier enregistré en entrée, puis imprime jusqu'à l'esperluette
Programming Puzzles & Code Golf
.~7@7
lit un caractère et l'imprime.F1R1
et:5=7
vérifiez si l'entrée est l'esperluette.&6
quitte si c'est le cas.~7@7:5=7&6
est répété 45 fois car il y a 15 octets de données inutiles et un nom d'utilisateur StackExchange max de 30 octets.3 (
505446342 octets):Très similaire au dernier script, il lit les premiers octets inutiles, puis
cat
s jusqu'à EOF. Cela fonctionne également en raison du nom d'utilisateur max SE.la source
:0-1/1
place de:4+4/1-1
? De plus, la première instance peut être simplement-1/1
parce que le bloc-notes commence à 0./bin/r
est écrasé.F1R1
au début, puis utiliser+5
tout au long du programme à la place de+2/1+4
PHP, 163 octets
la source
PowerShell,
165142137127 octets232838 octets économisés grâce à AdmBorkBork !Crée un fichier nommé
0
comme effet secondaire.Fonctionne en accédant à la page Web appropriée et en sélectionnant l'élément "user-card-name", puis en extrayant le texte approprié hors du fichier HTML interne.
Essai
la source
Python +
requests
, 126 octetsApparemment, l'accès à l'API est plus long que la lecture de la page réelle ...
la source
requests
: pGelée , 37 octets
Un port de la réponse Python 2 d' HyperNeutrino - allez donner du crédit!
Un lien monadique prenant un numéro et renvoyant une liste de personnages; comme un programme complet imprime le résultat.
Remarque: je ne sais pas exactement pourquoi le résultat de
ŒG
doit être forcé pour devenir une chaîne (fait ici avecṾ
): /Comment?
codegolf.stackexchange.com/users/
la source
Explorateur de données Exchange Stack , 47 octets
Essayez-le en ligne!
la source
Mathematica, 126 octets
contribution
production
la source
Stratos , 22 octets
Essayez!
Explication:
la source